From 1bbe72de522512f68b58cf80a7dbf322840708bf Mon Sep 17 00:00:00 2001 From: kimwalisch Date: Mon, 8 Apr 2024 21:18:34 +0200 Subject: [PATCH] Refactor --- CMakeLists.txt | 41 +++++++++++++++--------------- cmake/multiarch_avx512_vbmi2.cmake | 4 +++ 2 files changed, 25 insertions(+), 20 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 38d83a4d..34fde7ae 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -33,23 +33,6 @@ if(NOT BUILD_SHARED_LIBS AND NOT BUILD_STATIC_LIBS) message(FATAL_ERROR "One or both of BUILD_SHARED_LIBS or BUILD_STATIC_LIBS must be set to ON") endif() -# Set default build type to Release ################################## - -if(NOT CMAKE_VERSION VERSION_LESS 3.9) - get_property(isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) -elseif(CMAKE_CONFIGURATION_TYPES) - set(isMultiConfig TRUE) -endif() - -if(NOT isMultiConfig AND NOT CMAKE_BUILD_TYPE) - set(CMAKE_BUILD_TYPE Release CACHE STRING - "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE) -endif() - -if(CMAKE_BUILD_TYPE STREQUAL "Debug") - set(ENABLE_ASSERT "ENABLE_ASSERT") -endif() - # primesieve binary source files ##################################### set(BIN_SRC src/app/CmdOptions.cpp @@ -111,9 +94,27 @@ endif() if(WITH_MULTIARCH) include("${PROJECT_SOURCE_DIR}/cmake/multiarch_avx512_vbmi2.cmake") - if(multiarch_avx512_vbmi2) - set(ENABLE_MULTIARCH_AVX512 "ENABLE_MULTIARCH_AVX512") - endif() +endif() + +# Set default build type to Release ################################## + +# We do this after the C++ compilation tests above (include *.cmake) +# so that those tests are compiled without optimization flags +# which should speed up the cmake configure step. + +if(NOT CMAKE_VERSION VERSION_LESS 3.9) + get_property(isMultiConfig GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG) +elseif(CMAKE_CONFIGURATION_TYPES) + set(isMultiConfig TRUE) +endif() + +if(NOT isMultiConfig AND NOT CMAKE_BUILD_TYPE) + set(CMAKE_BUILD_TYPE Release CACHE STRING + "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel." FORCE) +endif() + +if(CMAKE_BUILD_TYPE STREQUAL "Debug") + set(ENABLE_ASSERT "ENABLE_ASSERT") endif() # libprimesieve (shared library) ##################################### diff --git a/cmake/multiarch_avx512_vbmi2.cmake b/cmake/multiarch_avx512_vbmi2.cmake index 38a345c5..2f52c479 100644 --- a/cmake/multiarch_avx512_vbmi2.cmake +++ b/cmake/multiarch_avx512_vbmi2.cmake @@ -52,3 +52,7 @@ check_cxx_source_compiles(" return 0; } " multiarch_avx512_vbmi2) + +if(multiarch_avx512_vbmi2) + set(ENABLE_MULTIARCH_AVX512 "ENABLE_MULTIARCH_AVX512") +endif()