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("$<$:-O3>$<$:-O0>$<$:-Os>$<$:-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} -Wno-unknown-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()