From 8db084194984dfd35683d3508df1a5ff3717847b Mon Sep 17 00:00:00 2001 From: BZLZHH Date: Fri, 2 Jan 2026 18:14:44 +0800 Subject: [PATCH] [Improvement] (CMake): Unify CMake options. --- .github/workflows/benchmark.yml | 4 ++-- .github/workflows/test.yml | 4 ++-- CMakeLists.txt | 22 ++++++++++++++-------- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index ff2e531a..395dd8c1 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -45,7 +45,7 @@ jobs: - name: Configure CMake working-directory: ${{env.BENCH_ROOT}} - run: cmake -S . -B build-bench -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang-20 -DCMAKE_CXX_COMPILER=clang++-20 -DBENCHMARK_DOWNLOAD_DEPENDENCIES=ON -DBENCHMARK_ENABLE_TESTING=OFF -DBUILD_TEST=OFF -DBUILD_BENCHMARK=ON -DCMAKE_POLICY_VERSION_MINIMUM=3.5 + run: cmake -S . -B build-bench -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=clang-20 -DCMAKE_CXX_COMPILER=clang++-20 -DBENCHMARK_DOWNLOAD_DEPENDENCIES=ON -DBENCHMARK_ENABLE_TESTING=OFF -DMOBILEGL_BUILD_TEST=OFF -DMOBILEGL_BUILD_BENCHMARK=ON -DCMAKE_POLICY_VERSION_MINIMUM=3.5 - name: Build working-directory: ${{env.BENCH_ROOT}}/build-bench @@ -53,4 +53,4 @@ jobs: - name: Benchmark working-directory: ${{env.BENCH_ROOT}}/build-bench/MobileGL/MG_Benchmark - run: ctest -V -C Release \ No newline at end of file + run: ctest -V -C Release diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ba64d64a..ac316d62 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -47,9 +47,9 @@ jobs: working-directory: ${{env.TEST_ROOT}} run: | if [ "${{ secrets.ACTIONS_STEP_DEBUG }}" == "true" ]; then - cmake -S . -B build-test -G Ninja -DCMAKE_C_COMPILER=clang-20 -DCMAKE_CXX_COMPILER=clang++-20 -DCMAKE_BUILD_TYPE=Debug -DBUILD_TEST=ON -DBUILD_BENCHMARK=OFF -DCMAKE_POLICY_VERSION_MINIMUM=3.5 + cmake -S . -B build-test -G Ninja -DCMAKE_C_COMPILER=clang-20 -DCMAKE_CXX_COMPILER=clang++-20 -DCMAKE_BUILD_TYPE=Debug -DMOBILEGL_BUILD_TEST=ON -DMOBILEGL_BUILD_BENCHMARK=OFF -DCMAKE_POLICY_VERSION_MINIMUM=3.5 else - cmake -S . -B build-test -G Ninja -DCMAKE_C_COMPILER=clang-20 -DCMAKE_CXX_COMPILER=clang++-20 -DCMAKE_BUILD_TYPE=Release -DBUILD_TEST=ON -DBUILD_BENCHMARK=OFF -DCMAKE_POLICY_VERSION_MINIMUM=3.5 + cmake -S . -B build-test -G Ninja -DCMAKE_C_COMPILER=clang-20 -DCMAKE_CXX_COMPILER=clang++-20 -DCMAKE_BUILD_TYPE=Release -DMOBILEGL_BUILD_TEST=ON -DMOBILEGL_BUILD_BENCHMARK=OFF -DCMAKE_POLICY_VERSION_MINIMUM=3.5 fi - name: Build diff --git a/CMakeLists.txt b/CMakeLists.txt index 02fd54c8..34598f81 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,15 @@ cmake_minimum_required(VERSION 3.22.1) project("MobileGL") -option(MOBILEGL_FORCE_RELEASE_OPT "Enable Release optimization flags in Debug build" ON) +option(MOBILEGL_BUILD_TEST "Build MobileGL tests" ON ) +option(MOBILEGL_BUILD_BENCHMARK "Build MobileGL benchmarks" ON ) +option(MOBILEGL_FORCE_RELEASE_OPT "Enable Release optimization flags in Debug build" ON ) +option(MOBILEGL_ENABLE_TRANCY "Enable trancy for profiling" OFF) + +if (ANDROID) + set(MOBILEGL_BUILD_TEST OFF CACHE BOOL "Build MobileGL tests" FORCE) + set(MOBILEGL_BUILD_BENCHMARK OFF CACHE BOOL "Build MobileGL benchmarks" FORCE) +endif() if (NOT CMAKE_BUILD_TYPE STREQUAL "Debug" OR MOBILEGL_FORCE_RELEASE_OPT) include(CheckIPOSupported) @@ -77,7 +85,7 @@ set(SPIRV_CROSS_STATIC ON CACHE BOOL "Prefer static libs" FORCE) add_subdirectory(3rdparty/glslang) add_subdirectory(3rdparty/SPIRV-Cross) -option(TRACY_ENABLE "Enable Tracy" OFF) +set(TRACY_ENABLE ${MOBILEGL_ENABLE_TRACY} CACHE BOOL "Enable Tracy, this is an internal variable" FORCE) if (TRACY_ENABLE) set(TRACY_ON_DEMAND ON CACHE BOOL "Enable profiling only connected" FORCE) @@ -281,12 +289,10 @@ if (ANDROID) log) endif() -if (NOT ANDROID) - - set(BUILD_TEST ON CACHE BOOL "Build the tests") - set(BUILD_BENCHMARK ON CACHE BOOL "Build the benchmarks") - +if (MOBILEGL_BUILD_TEST) add_subdirectory(MobileGL/MG_Test) +endif() + +if (MOBILEGL_BUILD_BENCHMARK) add_subdirectory(MobileGL/MG_Benchmark) - endif()