Start refactoring CMakeLists.txt

This commit is contained in:
2023-11-24 22:17:11 +01:00
parent 60d3547edc
commit 5bcbef65bb
4 changed files with 92 additions and 72 deletions

View File

@@ -0,0 +1,31 @@
function(SetOptimisationSettings)
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
if (LINUX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -mtune=native" PARENT_SCOPE)
elseif (APPLE)
add_compile_options("$<$<CONFIG:Release>:-O3>$<$<CONFIG:Debug>:-O0>$<$<CONFIG:MinSizeRel>:-Os>$<$<CONFIG:RelWithDebInfo>:-O2>")
set(CMAKE_Swift_FLAGS_DEBUG "-Onone" PARENT_SCOPE)
set(CMAKE_Swift_FLAGS_RELEASE "-O" PARENT_SCOPE)
set(CMAKE_Swift_FLAGS_MINSIZEREL "-Osize" PARENT_SCOPE)
endif ()
endfunction()
function(SetWarningSettings TARGET)
if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wunknown-pragmas" PARENT_SCOPE)
endif ()
if (LINUX)
#target_compile_options(${TARGET} PRIVATE -Wall)
endif()
endfunction()
function(SetOutputDirs BASE_DIR)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "${BASE_DIR}" PARENT_SCOPE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELEASE "${BASE_DIR}/release" PARENT_SCOPE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_MINSIZEREL "${BASE_DIR}/minsizerel" PARENT_SCOPE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_RELWITHDEBINFO "${BASE_DIR}/relwithdebinfo" PARENT_SCOPE)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_DEBUG "${BASE_DIR}/debug" PARENT_SCOPE)
set(CMAKE_DEBUG_POSTFIX "d" PARENT_SCOPE)
endfunction()