From fb54341a1f1e80cacf85213b2bb3595e218e20c0 Mon Sep 17 00:00:00 2001 From: Tony Wasserka Date: Thu, 11 Sep 2025 13:56:11 +0200 Subject: [PATCH] CMake: Merge BUILD_TESTS into BUILD_TESTING BUILD_TESTING is provided by CMake, so the separate toggle is just redundant. --- .github/workflows/mingw_build.yml | 2 +- .github/workflows/wine_dll_artifacts.yml | 4 ++-- CMakeLists.txt | 18 ++++++++---------- Data/Dockerfile | 2 +- Data/nix/WineOnArm/shell.nix | 2 +- Data/nix/cmake_configure_woa32.sh | 2 +- Data/nix/cmake_configure_woa64.sh | 2 +- Data/nix/cmake_enable_flt.sh | 2 +- FEXCore/CMakeLists.txt | 2 +- Source/Tools/CMakeLists.txt | 2 +- docs/Readme_CN.md | 2 +- 11 files changed, 19 insertions(+), 21 deletions(-) diff --git a/.github/workflows/mingw_build.yml b/.github/workflows/mingw_build.yml index 8524dc404..088b790c7 100644 --- a/.github/workflows/mingw_build.yml +++ b/.github/workflows/mingw_build.yml @@ -78,7 +78,7 @@ jobs: # Note the current convention is to use the -S and -B options here to specify source # and build directories, but this is only available with CMake 3.13 and higher. # The CMake binaries on the Github Actions machines are (as of this writing) 3.12 - run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/Data/CMake/toolchain_mingw.cmake -DMINGW_TRIPLE=$MINGW_TRIPLE -G Ninja -DENABLE_LTO=False -DENABLE_ASSERTIONS=True -DENABLE_X86_HOST_DEBUG=True -DBUILD_TESTS=False -DCMAKE_INSTALL_PREFIX=${{runner.workspace}}/build/install + run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/Data/CMake/toolchain_mingw.cmake -DMINGW_TRIPLE=$MINGW_TRIPLE -G Ninja -DENABLE_LTO=False -DENABLE_ASSERTIONS=True -DENABLE_X86_HOST_DEBUG=True -DBUILD_TESTING=False -DCMAKE_INSTALL_PREFIX=${{runner.workspace}}/build/install - name: Build working-directory: ${{runner.workspace}}/build diff --git a/.github/workflows/wine_dll_artifacts.yml b/.github/workflows/wine_dll_artifacts.yml index 2ba174f2d..ba46110fc 100644 --- a/.github/workflows/wine_dll_artifacts.yml +++ b/.github/workflows/wine_dll_artifacts.yml @@ -46,12 +46,12 @@ jobs: - name: Configure CMake arm64ec shell: bash working-directory: ${{runner.workspace}}/build_arm64ec - run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/Data/CMake/toolchain_mingw.cmake -DMINGW_TRIPLE=arm64ec-w64-mingw32 -DCMAKE_INSTALL_LIBDIR=/usr/lib/wine/aarch64-windows -G Ninja -DENABLE_LTO=False -DENABLE_ASSERTIONS=False -DENABLE_JEMALLOC_GLIBC_ALLOC=False -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_TESTS=False -DCMAKE_INSTALL_PREFIX=/usr + run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/Data/CMake/toolchain_mingw.cmake -DMINGW_TRIPLE=arm64ec-w64-mingw32 -DCMAKE_INSTALL_LIBDIR=/usr/lib/wine/aarch64-windows -G Ninja -DENABLE_LTO=False -DENABLE_ASSERTIONS=False -DENABLE_JEMALLOC_GLIBC_ALLOC=False -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_TESTING=False -DCMAKE_INSTALL_PREFIX=/usr - name: Configure CMake wow64 shell: bash working-directory: ${{runner.workspace}}/build_wow64 - run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/Data/CMake/toolchain_mingw.cmake -DMINGW_TRIPLE=aarch64-w64-mingw32 -DCMAKE_INSTALL_LIBDIR=/usr/lib/wine/aarch64-windows -G Ninja -DENABLE_LTO=False -DENABLE_ASSERTIONS=False -DENABLE_JEMALLOC_GLIBC_ALLOC=False -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_TESTS=False -DCMAKE_INSTALL_PREFIX=/usr + run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DCMAKE_TOOLCHAIN_FILE=$GITHUB_WORKSPACE/Data/CMake/toolchain_mingw.cmake -DMINGW_TRIPLE=aarch64-w64-mingw32 -DCMAKE_INSTALL_LIBDIR=/usr/lib/wine/aarch64-windows -G Ninja -DENABLE_LTO=False -DENABLE_ASSERTIONS=False -DENABLE_JEMALLOC_GLIBC_ALLOC=False -DCMAKE_INSTALL_PREFIX=/usr -DBUILD_TESTING=False -DCMAKE_INSTALL_PREFIX=/usr - name: Build arm64ec working-directory: ${{runner.workspace}}/build_arm64ec diff --git a/CMakeLists.txt b/CMakeLists.txt index 94f2b8f85..7ddec9349 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -4,7 +4,6 @@ project(FEX C CXX ASM) INCLUDE (CheckIncludeFiles) CHECK_INCLUDE_FILES ("gdb/jit-reader.h" HAVE_GDB_JIT_READER_H) -option(BUILD_TESTS "Build unit tests to ensure sanity" TRUE) option(BUILD_FEX_LINUX_TESTS "Build FEXLinuxTests, requires x86 compiler" FALSE) option(BUILD_THUNKS "Build thunks" FALSE) option(BUILD_FEXCONFIG "Build FEXConfig" TRUE) @@ -304,7 +303,8 @@ set (CMAKE_LINKER_FLAGS_RELEASE "${CMAKE_LINKER_FLAGS_RELEASE} -fomit-frame-poin include_directories(External/robin-map/include/) -if (BUILD_TESTS OR ENABLE_VIXL_DISASSEMBLER OR ENABLE_VIXL_SIMULATOR) +include(CTest) +if (BUILD_TESTING OR ENABLE_VIXL_DISASSEMBLER OR ENABLE_VIXL_SIMULATOR) add_subdirectory(External/vixl/) include_directories(SYSTEM External/vixl/src/) endif() @@ -335,7 +335,7 @@ endif() add_definitions(-Wno-trigraphs) add_definitions(-DGLOBAL_DATA_DIRECTORY="${DATA_DIRECTORY}/") -if (BUILD_TESTS) +if (BUILD_TESTING) find_package(Catch2 3 QUIET) if (NOT Catch2_FOUND) add_subdirectory(External/Catch2/) @@ -345,6 +345,9 @@ if (BUILD_TESTS) endif() include(Catch) +else () + # Override any previously generated test list to avoid running stale test binaries + file(GENERATE OUTPUT CTestTestfile.cmake CONTENT "# No tests since BUILD_TESTING is disabled") endif() find_package(fmt QUIET) @@ -455,13 +458,8 @@ endif() add_compile_options(-Wall) -include(CTest) -if (BUILD_TESTS) +if (BUILD_TESTING) message(STATUS "Unit tests are enabled") - if (NOT BUILD_TESTING) - # CMake checks this variable before generating CTestTestfile.cmake - message(SEND_ERROR "Unit tests require BUILD_TESTING to be enabled") - endif() set (TEST_JOB_COUNT "" CACHE STRING "Override number of parallel jobs to use while running tests") if (TEST_JOB_COUNT) @@ -495,7 +493,7 @@ foreach(CONFIG_SRC ${CONFIG_SOURCES}) DESTINATION ${DATA_DIRECTORY}/) endforeach() -if (BUILD_TESTS) +if (BUILD_TESTING) add_subdirectory(unittests/) endif() diff --git a/Data/Dockerfile b/Data/Dockerfile index 07d9ea643..292060038 100644 --- a/Data/Dockerfile +++ b/Data/Dockerfile @@ -14,7 +14,7 @@ RUN mkdir build ARG CC=clang-13 ARG CXX=clang++-13 -RUN cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DUSE_LINKER=lld -DENABLE_LTO=True -DBUILD_TESTS=False -DENABLE_ASSERTIONS=False -G Ninja . +RUN cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DUSE_LINKER=lld -DENABLE_LTO=True -DBUILD_TESTING=False -DENABLE_ASSERTIONS=False -G Ninja . RUN ninja WORKDIR /FEX/build diff --git a/Data/nix/WineOnArm/shell.nix b/Data/nix/WineOnArm/shell.nix index 04b76365a..9ca25ad0f 100644 --- a/Data/nix/WineOnArm/shell.nix +++ b/Data/nix/WineOnArm/shell.nix @@ -45,7 +45,7 @@ pkgs.mkShell { fi ''; - # E.g. cmake $FEX_CMAKE_TOOLCHAIN_ARM64EC -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_LTO=False -DBUILD_TESTS=False + # E.g. cmake $FEX_CMAKE_TOOLCHAIN_ARM64EC -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_LTO=False -DBUILD_TESTING=False FEX_CMAKE_TOOLCHAIN_ARM64EC = "--toolchain ${cmakeToolchainFile} -DMINGW_TRIPLE=arm64ec-w64-mingw32 -DCMAKE_INSTALL_LIBDIR=/usr/lib/wine/aarch64-windows"; FEX_CMAKE_TOOLCHAIN_WOW64 = "--toolchain ${cmakeToolchainFile} -DMINGW_TRIPLE=aarch64-w64-mingw32 -DCMAKE_INSTALL_LIBDIR=/usr/lib/wine/aarch64-windows"; FEX_MESON_CROSSFILE = "--cross-file ${mesonCrossFile}"; diff --git a/Data/nix/cmake_configure_woa32.sh b/Data/nix/cmake_configure_woa32.sh index 45295cacc..2d4407e5f 100755 --- a/Data/nix/cmake_configure_woa32.sh +++ b/Data/nix/cmake_configure_woa32.sh @@ -18,4 +18,4 @@ then fi set -o xtrace -cmake $FEX_CMAKE_TOOLCHAIN_WOW64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_LTO=False -DBUILD_TESTS=False $@ +cmake $FEX_CMAKE_TOOLCHAIN_WOW64 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_LTO=False -DBUILD_TESTING=False $@ diff --git a/Data/nix/cmake_configure_woa64.sh b/Data/nix/cmake_configure_woa64.sh index 1a8f5f230..080417c19 100755 --- a/Data/nix/cmake_configure_woa64.sh +++ b/Data/nix/cmake_configure_woa64.sh @@ -18,4 +18,4 @@ then fi set -o xtrace -cmake $FEX_CMAKE_TOOLCHAIN_ARM64EC -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_LTO=False -DBUILD_TESTS=False $@ +cmake $FEX_CMAKE_TOOLCHAIN_ARM64EC -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_LTO=False -DBUILD_TESTING=False $@ diff --git a/Data/nix/cmake_enable_flt.sh b/Data/nix/cmake_enable_flt.sh index 22077e657..1d723abf2 100755 --- a/Data/nix/cmake_enable_flt.sh +++ b/Data/nix/cmake_enable_flt.sh @@ -14,4 +14,4 @@ fi rm -rf unittests/FEXLinuxTests set -o xtrace -cmake . $FEX_CMAKE_TOOLCHAINS -DBUILD_TESTS=ON -DBUILD_FEX_LINUX_TESTS=ON +cmake . $FEX_CMAKE_TOOLCHAINS -DBUILD_TESTING=ON -DBUILD_FEX_LINUX_TESTS=ON diff --git a/FEXCore/CMakeLists.txt b/FEXCore/CMakeLists.txt index 92a40fb7f..90a14210c 100644 --- a/FEXCore/CMakeLists.txt +++ b/FEXCore/CMakeLists.txt @@ -78,6 +78,6 @@ install (DIRECTORY include/FEXCore ${CMAKE_BINARY_DIR}/include/FEXCore DESTINATION include COMPONENT Development) -if (BUILD_TESTS) +if (BUILD_TESTING) add_subdirectory(unittests/) endif() diff --git a/Source/Tools/CMakeLists.txt b/Source/Tools/CMakeLists.txt index 0101bf319..ebf35bc26 100644 --- a/Source/Tools/CMakeLists.txt +++ b/Source/Tools/CMakeLists.txt @@ -25,6 +25,6 @@ if (NOT MINGW_BUILD) add_subdirectory(pidof/) endif() -if (BUILD_TESTS) +if (BUILD_TESTING) add_subdirectory(TestHarnessRunner/) endif() diff --git a/docs/Readme_CN.md b/docs/Readme_CN.md index 876ea81bf..994d898ce 100644 --- a/docs/Readme_CN.md +++ b/docs/Readme_CN.md @@ -46,7 +46,7 @@ cd FEX git submodule update --init mkdir Build cd Build -CC=clang CXX=clang++ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DENABLE_LTO=True -DBUILD_TESTS=False -G Ninja .. +CC=clang CXX=clang++ cmake -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -DENABLE_LTO=True -DBUILD_TESTING=False -G Ninja .. ninja ```