stellarUCI Chess engine written in C++20 |
git clone git://git.dimitrijedobrota.com/stellar.git |
Log | Files | Refs | README | LICENSE | |
CMakeLists.txt (1863B)
1 cmake_minimum_required(VERSION 3.25.2) 2 set(CMAKE_EXPORT_COMPILE_COMMANDS ON) 3 4 project( 5 Stellar 6 VERSION 9.0.4 7 DESCRIPTION "Chess engine written in C++" 8 HOMEPAGE_URL https://git.dimitrijedobrota.com/stellar.git 9 LANGUAGES CXX 10 ) 11 enable_testing() 12 13 set(CMAKE_CXX_STANDARD 20) 14 set(CMAKE_CXX_STANDARD_REQUIRED ON) 15 set(CMAKE_CXX_EXTENSIONS OFF) 16 17 set(CMAKE_CXX_FLAGS_PROFILE "-pg" CACHE STRING 18 "Enable profileing for the project" 19 FORCE 20 ) 21 22 mark_as_advanced(CMAKE_CXX_FLAGS_PROFILE) 23 set(CMAKE_BUILD_TYPE "${CMAKE_BUILD_TYPE}" CACHE STRING 24 "Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel Profile" 25 FORCE 26 ) 27 28 29 include(CheckCXXCompilerFlag) 30 31 option(STELLAR_ENABLE_PCH "Build using pre-compiled headers" ON) 32 function(stellar_target_precompile_headers) 33 if(STELLAR_ENABLE_PCH) 34 target_precompile_headers(${ARGV}) 35 endif() 36 endfunction() 37 38 CHECK_CXX_COMPILER_FLAG("-flto" COMPILER_SUPPORTS_LTO) 39 if(COMPILER_SUPPORTS_LTO) 40 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -flto") 41 endif() 42 43 CHECK_CXX_COMPILER_FLAG("-fno-fat-lto-objects" COMPILER_SUPPORTS_LTO_NOFAT) 44 if(COMPILER_SUPPORTS_LTO_NOFAT) 45 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-fat-lto-objects") 46 endif() 47 48 CHECK_CXX_COMPILER_FLAG("-fconstexpr-ops-limit=10000000000" COMPILER_SUPPORTS_CONSTEXPR_OPS_LIMIT) 49 if(COMPILER_SUPPORTS_CONSTEXPR_OPS_LIMIT) 50 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fconstexpr-ops-limit=1000000000") 51 endif() 52 53 CHECK_CXX_COMPILER_FLAG("-fconstexpr-steps=1000000000" COMPILER_SUPPORTS_CONSTEXPR_STEPS) 54 if(COMPILER_SUPPORTS_CONSTEXPR_STEPS) 55 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fconstexpr-steps=1000000000") 56 endif() 57 58 CHECK_CXX_COMPILER_FLAG("-march=native" COMPILER_SUPPORTS_MARCH_NATIVE) 59 if(COMPILER_SUPPORTS_MARCH_NATIVE) 60 set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native") 61 endif() 62 63 add_subdirectory(src)