chore(ci): update CMake configuration for Linux and macOS builds
- Modified CI configuration to use the D-Bus portal for file dialogs on Linux for improved reliability. - Updated CMake commands in both CI and release workflows to include the NFD_PORTAL option. - Removed OpenSSL from vcpkg.json to streamline dependencies. Benefits: - Enhances build reliability across different platforms. - Simplifies dependency management in the project.
This commit is contained in:
28
.github/workflows/ci.yml
vendored
28
.github/workflows/ci.yml
vendored
@@ -261,17 +261,31 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
set -e
|
set -e
|
||||||
echo "::group::CMake Configuration"
|
echo "::group::CMake Configuration"
|
||||||
cmake -B build -G Ninja \
|
if [[ "${{ runner.os }}" == "Linux" ]]; then
|
||||||
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
|
# Linux: Use portal backend for file dialogs (more reliable in CI)
|
||||||
-DCMAKE_C_COMPILER=${{ matrix.cc }} \
|
cmake -B build -G Ninja \
|
||||||
-DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \
|
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
|
||||||
-DYAZE_BUILD_TESTS=ON \
|
-DCMAKE_C_COMPILER=${{ matrix.cc }} \
|
||||||
-DYAZE_BUILD_EMU=OFF \
|
-DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \
|
||||||
-DYAZE_ENABLE_ROM_TESTS=OFF 2>&1 | tee cmake_config.log
|
-DYAZE_BUILD_TESTS=ON \
|
||||||
|
-DYAZE_BUILD_EMU=OFF \
|
||||||
|
-DYAZE_ENABLE_ROM_TESTS=OFF \
|
||||||
|
-DNFD_PORTAL=ON 2>&1 | tee cmake_config.log
|
||||||
|
else
|
||||||
|
# macOS: Use default GTK backend
|
||||||
|
cmake -B build -G Ninja \
|
||||||
|
-DCMAKE_BUILD_TYPE=$BUILD_TYPE \
|
||||||
|
-DCMAKE_C_COMPILER=${{ matrix.cc }} \
|
||||||
|
-DCMAKE_CXX_COMPILER=${{ matrix.cxx }} \
|
||||||
|
-DYAZE_BUILD_TESTS=ON \
|
||||||
|
-DYAZE_BUILD_EMU=OFF \
|
||||||
|
-DYAZE_ENABLE_ROM_TESTS=OFF 2>&1 | tee cmake_config.log
|
||||||
|
fi
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
# Note: Full-featured build to match release configuration
|
# Note: Full-featured build to match release configuration
|
||||||
# Note: YAZE_BUILD_EMU=OFF disables standalone emulator executable
|
# Note: YAZE_BUILD_EMU=OFF disables standalone emulator executable
|
||||||
# but yaze_emulator library is still built for main app/tests
|
# but yaze_emulator library is still built for main app/tests
|
||||||
|
# Note: NFD_PORTAL=ON uses D-Bus portal instead of GTK on Linux (more reliable in CI)
|
||||||
|
|
||||||
- name: Report Configure Failure
|
- name: Report Configure Failure
|
||||||
if: failure() && (steps.configure_windows.outcome == 'failure' || steps.configure_unix.outcome == 'failure')
|
if: failure() && (steps.configure_windows.outcome == 'failure' || steps.configure_unix.outcome == 'failure')
|
||||||
|
|||||||
4
.github/workflows/release.yml
vendored
4
.github/workflows/release.yml
vendored
@@ -287,11 +287,13 @@ jobs:
|
|||||||
-DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \
|
-DCMAKE_BUILD_TYPE=${{ env.BUILD_TYPE }} \
|
||||||
-DYAZE_BUILD_EMU=OFF \
|
-DYAZE_BUILD_EMU=OFF \
|
||||||
-DYAZE_BUILD_TESTS=ON \
|
-DYAZE_BUILD_TESTS=ON \
|
||||||
-DYAZE_ENABLE_ROM_TESTS=OFF 2>&1 | tee cmake_config.log
|
-DYAZE_ENABLE_ROM_TESTS=OFF \
|
||||||
|
-DNFD_PORTAL=ON 2>&1 | tee cmake_config.log
|
||||||
echo "::endgroup::"
|
echo "::endgroup::"
|
||||||
# Note: YAZE_BUILD_EMU=OFF disables standalone emulator executable
|
# Note: YAZE_BUILD_EMU=OFF disables standalone emulator executable
|
||||||
# but yaze_emulator library is still built for main app
|
# but yaze_emulator library is still built for main app
|
||||||
# Note: Tests enabled for pre-1.0 releases to catch issues before publishing
|
# Note: Tests enabled for pre-1.0 releases to catch issues before publishing
|
||||||
|
# Note: NFD_PORTAL=ON uses D-Bus portal instead of GTK for file dialogs (more reliable in CI)
|
||||||
|
|
||||||
- name: "Report Configure Failure"
|
- name: "Report Configure Failure"
|
||||||
if: |
|
if: |
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ message(STATUS " - GFX Tier: gfx_backend configured")
|
|||||||
set(GFX_RESOURCE_SRC
|
set(GFX_RESOURCE_SRC
|
||||||
app/gfx/resource/arena.cc
|
app/gfx/resource/arena.cc
|
||||||
app/gfx/resource/memory_pool.cc
|
app/gfx/resource/memory_pool.cc
|
||||||
|
app/gfx/render/background_buffer.cc
|
||||||
)
|
)
|
||||||
add_library(yaze_gfx_resource STATIC ${GFX_RESOURCE_SRC})
|
add_library(yaze_gfx_resource STATIC ${GFX_RESOURCE_SRC})
|
||||||
configure_gfx_library(yaze_gfx_resource)
|
configure_gfx_library(yaze_gfx_resource)
|
||||||
@@ -122,7 +123,6 @@ set(GFX_RENDER_SRC
|
|||||||
app/gfx/render/atlas_renderer.cc
|
app/gfx/render/atlas_renderer.cc
|
||||||
app/gfx/render/texture_atlas.cc
|
app/gfx/render/texture_atlas.cc
|
||||||
app/gfx/render/tilemap.cc
|
app/gfx/render/tilemap.cc
|
||||||
app/gfx/render/background_buffer.cc
|
|
||||||
)
|
)
|
||||||
add_library(yaze_gfx_render STATIC ${GFX_RENDER_SRC})
|
add_library(yaze_gfx_render STATIC ${GFX_RENDER_SRC})
|
||||||
configure_gfx_library(yaze_gfx_render)
|
configure_gfx_library(yaze_gfx_render)
|
||||||
|
|||||||
@@ -47,6 +47,10 @@ if(YAZE_BUILD_TESTS)
|
|||||||
message(STATUS "Configuring Windows stack size for ${suite_name} to 16MB")
|
message(STATUS "Configuring Windows stack size for ${suite_name} to 16MB")
|
||||||
if(MSVC)
|
if(MSVC)
|
||||||
target_link_options(${suite_name} PRIVATE /STACK:16777216)
|
target_link_options(${suite_name} PRIVATE /STACK:16777216)
|
||||||
|
# Force whole-archive linking for protobuf to ensure all symbols are included
|
||||||
|
if(YAZE_WITH_GRPC)
|
||||||
|
target_link_options(${suite_name} PRIVATE /WHOLEARCHIVE:libprotobuf)
|
||||||
|
endif()
|
||||||
else()
|
else()
|
||||||
target_link_options(${suite_name} PRIVATE -Wl,--stack,16777216)
|
target_link_options(${suite_name} PRIVATE -Wl,--stack,16777216)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -18,10 +18,6 @@
|
|||||||
{
|
{
|
||||||
"name": "zlib",
|
"name": "zlib",
|
||||||
"platform": "windows"
|
"platform": "windows"
|
||||||
},
|
|
||||||
{
|
|
||||||
"name": "openssl",
|
|
||||||
"platform": "windows"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"overrides": [
|
"overrides": [
|
||||||
|
|||||||
Reference in New Issue
Block a user