68 lines
2.4 KiB
CMake
68 lines
2.4 KiB
CMake
######################### COMPILE SETTINGS ################################
|
|
IF(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(NOT CMAKE_BUILD_TYPE)
|
|
|
|
MESSAGE(STATUS "===============================================================")
|
|
MESSAGE(STATUS "============ Configuring CompileSettings =====================")
|
|
|
|
|
|
IF(CMAKE_COMPILER_IS_GNUCC)
|
|
|
|
SET (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
|
|
SET (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
|
|
SET (CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -march=native -funroll-loops -ffast-math")
|
|
SET (CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -march=native -funroll-loops")
|
|
|
|
OPTION (USE_PEDANTIC_FLAGS "Use Pedantic Flags in GCC" ON)
|
|
IF(USE_PEDANTIC_FLAGS)
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -pedantic -Wno-long-long -Wno-variadic-macros")
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -pedantic -Wno-long-long -Wno-variadic-macros")
|
|
ENDIF()
|
|
|
|
OPTION (USE_DEBUG_SYMBOLS "Use Debug Symbols" OFF)
|
|
IF(USE_DEBUG_SYMBOLS)
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g")
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_C_FLAGS} -g")
|
|
ENDIF()
|
|
|
|
ENDIF(CMAKE_COMPILER_IS_GNUCC)
|
|
|
|
IF(NOT MSVC)
|
|
OPTION (USE_CPP_11 "Use C++11 Compiler" ON)
|
|
IF(USE_CPP_11)
|
|
INCLUDE(CheckCXXCompilerFlag)
|
|
CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11)
|
|
CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X)
|
|
|
|
IF(COMPILER_SUPPORTS_CXX11)
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
|
ELSEIF(COMPILER_SUPPORTS_CXX0X)
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x")
|
|
ELSE()
|
|
SET(USE_CPP_11 OFF)
|
|
MESSAGE(STATUS "Compiler ${CMAKE_CXX_COMPILER} has no C++11 support.")
|
|
ENDIF()
|
|
ENDIF()
|
|
ENDIF()
|
|
|
|
IF(CMAKE_BUILD_TYPE MATCHES Debug)
|
|
SET(CMAKE_BUILD_TYPE_FLAGS ${CMAKE_CXX_FLAGS_DEBUG})
|
|
ELSEIF(CMAKE_BUILD_TYPE MATCHES RelWithDebInfo)
|
|
SET(CMAKE_BUILD_TYPE_FLAGS ${CMAKE_CXX_FLAGS_RELWITHDEBINFO})
|
|
ELSEIF(CMAKE_BUILD_TYPE MATCHES Release)
|
|
SET(CMAKE_BUILD_TYPE_FLAGS ${CMAKE_CXX_FLAGS_RELEASE})
|
|
ENDIF()
|
|
|
|
OPTION (USE_OpenMP "Use OpenMP" ON)
|
|
IF(USE_OpenMP)
|
|
FIND_PACKAGE(OpenMP)
|
|
IF(OPENMP_FOUND)
|
|
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
|
|
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
|
|
ENDIF()
|
|
ENDIF()
|
|
|
|
MESSAGE(STATUS "===============================================================") |