diff --git a/CMakeLists.txt b/CMakeLists.txt index 60de236..531bd6f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,13 +2,6 @@ cmake_minimum_required(VERSION 3.21) project(static-subid C) -# ############################################################################## -# CMake modules -include(GNUInstallDirs) -include(CheckCSourceCompiles) -include(CheckCCompilerFlag) -enable_testing() - # ############################################################################## # Require out-of-source builds if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) @@ -21,12 +14,14 @@ if(CMAKE_SOURCE_DIR STREQUAL CMAKE_BINARY_DIR) endif() # ############################################################################## -# Compiler Sanity Test -check_c_source_compiles("int main(void) { return 0; }" CAN_COMPILE) -if(NOT CAN_COMPILE) - message(FATAL_ERROR "C compiler is non-functional") -endif(NOT CAN_COMPILE) +# CMake modules +include(GNUInstallDirs) +include(CheckCSourceCompiles) +include(CheckCCompilerFlag) +enable_testing() +# ############################################################################## +# Compiler Sanity Test set(CMAKE_C_STANDARD 23) set(CMAKE_C_STANDARD_REQUIRED ON) set(CMAKE_C_EXTENSIONS ON) @@ -81,7 +76,7 @@ if(CMAKE_C_COMPILER_ID STREQUAL "GNU") -Wstringop-overflow # String operations writing past buffer end -Wtrampolines # Nested functions requiring executable stack ) -endif(CMAKE_C_COMPILER_ID STREQUAL "GNU") +endif() # ############################################################################## # Find our source code version string @@ -103,19 +98,19 @@ if(NOT DEFINED CMAKE_INSTALL_SYSTEMD_UNITDIR) set(CMAKE_INSTALL_SYSTEMD_UNITDIR "/usr/lib/systemd/system" CACHE PATH "systemd unit directory") -endif(NOT DEFINED CMAKE_INSTALL_SYSTEMD_UNITDIR) +endif() if(NOT DEFINED CMAKE_INSTALL_SYSTEMD_USERUNITDIR) set(CMAKE_INSTALL_SYSTEMD_USERUNITDIR "/usr/lib/systemd/user" CACHE PATH "systemd user unit directory") -endif(NOT DEFINED CMAKE_INSTALL_SYSTEMD_USERUNITDIR) +endif() if(NOT DEFINED CMAKE_INSTALL_POLKIT_RULESDIR) set(CMAKE_INSTALL_POLKIT_RULESDIR "/usr/share/polkit-1/rules.d" CACHE PATH "polkit rules directory") -endif(NOT DEFINED CMAKE_INSTALL_POLKIT_RULESDIR) +endif() if(NOT DEFINED USERMOD_PATH) set(USERMOD_PATH @@ -170,7 +165,7 @@ if(NOT MAX_RANGES MATCHES "^[0-9]+$") "MAX_RANGES must be a non-negative integer (got: '${MAX_RANGES}')") else() math(EXPR MAX_RANGES_INT "${MAX_RANGES}") -endif(NOT MAX_RANGES MATCHES "^[0-9]+$") +endif() # ############################################################################## # task focused cmake diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 6f16ac1..94c7dd3 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -26,7 +26,7 @@ if(CMAKE_C_COMPILER_ID STREQUAL "GNU") set(COVERAGE_LINK_FLAGS --coverage) message(STATUS "Coverage enabled: GCC + lcov") - endif(LCOV_EXEC AND GENHTML_EXEC) + endif() elseif(CMAKE_C_COMPILER_ID MATCHES "Clang") @@ -47,12 +47,9 @@ elseif(CMAKE_C_COMPILER_ID MATCHES "Clang") set(COVERAGE_LINK_FLAGS -fprofile-instr-generate) message(STATUS "Coverage enabled: Clang + llvm-cov") - endif( - LLVM_PROFDATA_EXEC - AND LLVM_COV_EXEC - AND GENHTML_EXEC) + endif() -endif(CMAKE_C_COMPILER_ID STREQUAL "GNU") +endif() # ############################################################################## # Helper macros @@ -74,7 +71,7 @@ macro(add_unit_test TEST_NAME) if(HAVE_COVERAGE_TOOLS) target_compile_options(${TEST_NAME} PRIVATE ${COVERAGE_COMPILE_FLAGS}) target_link_options(${TEST_NAME} PRIVATE ${COVERAGE_LINK_FLAGS}) - endif(HAVE_COVERAGE_TOOLS) + endif() # keep a record of the binary list(APPEND UNIT_TEST_BINARIES ${TEST_NAME}) @@ -84,7 +81,7 @@ macro(add_unit_test TEST_NAME) CACHE INTERNAL "") add_test(NAME ${TEST_NAME} COMMAND ${TEST_NAME}) -endmacro(add_unit_test TEST_NAME) +endmacro() # ############################################################################## # Tests @@ -100,7 +97,7 @@ if(BUILD_TESTING) test_binaries DEPENDS ${UNIT_TEST_BINARIES} COMMENT "Building every unit test binary") -endif(BUILD_TESTING) +endif() # ############################################################################## # Coverage target @@ -167,6 +164,6 @@ if(BUILD_TESTING AND HAVE_COVERAGE_TOOLS) "Running tests and generating Clang coverage report in ${COVERAGE_OUTPUT_DIR}/index.html" ) - endif(CMAKE_C_COMPILER_ID STREQUAL "GNU") + endif() -endif(BUILD_TESTING AND HAVE_COVERAGE_TOOLS) +endif()