Skip to content
Snippets Groups Projects
Commit ebcc27f4 authored by Lars Bilke's avatar Lars Bilke
Browse files

Introduced ConfigureCompiler cmake script.

parent 7419fa78
No related branches found
No related tags found
No related merge requests found
...@@ -4,8 +4,9 @@ cmake_minimum_required(VERSION 2.6) ...@@ -4,8 +4,9 @@ cmake_minimum_required(VERSION 2.6)
# Project name # Project name
project( OGS-6 ) project( OGS-6 )
### CMake setup ### ### CMake includes ###
INCLUDE(scripts/cmake/CMakeSetup.cmake) INCLUDE(scripts/cmake/CMakeSetup.cmake)
INCLUDE(scripts/cmake/CompilerSetup.cmake)
# Finds # Finds
FIND_PACKAGE(OpenMP) FIND_PACKAGE(OpenMP)
...@@ -14,35 +15,6 @@ IF(OPENMP_FOUND) ...@@ -14,35 +15,6 @@ IF(OPENMP_FOUND)
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}") SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
ENDIF() ENDIF()
### For GNU C/CXX
IF(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC)
get_gcc_version(GCC_VERSION)
IF( NOT CMAKE_BUILD_TYPE STREQUAL "Debug" )
MESSAGE(STATUS "Set GCC release flags")
IF(APPLE AND GCC_VERSION VERSION_LESS "4.3" AND NOT "${CMAKE_GENERATOR}" STREQUAL "Xcode" )
# -march=native does not work here when on normal gcc compiler
# see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33144
SET(CMAKE_CXX_FLAGS "-O3 -mtune=native -msse4.2 -DNDEBUG")
ELSE()
SET(CMAKE_CXX_FLAGS "-O3 -march=native -mtune=native -msse4.2 -DNDEBUG")
ENDIF()
ENDIF()
# -g
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated -Wall -Wextra -fno-nonansi-builtins")
ADD_DEFINITIONS(
-DGCC
)
ENDIF(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC)
IF (${CMAKE_C_COMPILER} MATCHES "icc.*$" OR ${CMAKE_CXX_COMPILER} MATCHES "icpc.*$")
IF( NOT CMAKE_BUILD_TYPE STREQUAL "Debug" )
MESSAGE(STATUS "Set Intel release flags")
SET(CMAKE_CXX_FLAGS "-O3 -DNDEBUG")
ENDIF()
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated -Wall")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -openmp")
ENDIF(${CMAKE_C_COMPILER} MATCHES "icc.*$" OR ${CMAKE_CXX_COMPILER} MATCHES
"icpc.*$")
# Set build directories # Set build directories
......
INCLUDE(ResetConfigurations) # To Debug, Release, RelWithDbgInfo
INCLUDE(SetDefaultBuildType)
SET_DEFAULT_BUILD_TYPE(Debug)
INCLUDE(MSVCMultipleProcessCompile) # /MP switch (multi processor) for VS
### GNU C/CXX
IF(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC)
get_gcc_version(GCC_VERSION)
IF( NOT CMAKE_BUILD_TYPE STREQUAL "Debug" )
MESSAGE(STATUS "Set GCC release flags")
IF(APPLE AND GCC_VERSION VERSION_LESS "4.3" AND NOT "${CMAKE_GENERATOR}" STREQUAL "Xcode" )
# -march=native does not work here when on normal gcc compiler
# see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33144
SET(CMAKE_CXX_FLAGS "-O3 -mtune=native -msse4.2 -DNDEBUG")
ELSE()
SET(CMAKE_CXX_FLAGS "-O3 -march=native -mtune=native -msse4.2 -DNDEBUG")
ENDIF()
ENDIF()
# -g
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated -Wall -Wextra -fno-nonansi-builtins")
ADD_DEFINITIONS( -DGCC )
IF (OGS_PROFILE)
IF( NOT CMAKE_BUILD_TYPE STREQUAL "Release" )
MESSAGE(Warning "When using profiling you should set CMAKE_BUILD_TYPE to Release.")
ENDIF()
SET(PROFILE_FLAGS "-pg -fno-omit-frame-pointer -O2 -DNDEBUG -fno-inline-functions-called-once -fno-optimize-sibling-calls")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${PROFILE_FLAGS}")
ENDIF (OGS_PROFILE)
ENDIF(CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC)
### Intel
IF (${CMAKE_C_COMPILER} MATCHES "icc.*$" OR ${CMAKE_CXX_COMPILER} MATCHES "icpc.*$")
IF( NOT CMAKE_BUILD_TYPE STREQUAL "Debug" )
MESSAGE(STATUS "Set Intel release flags")
SET(CMAKE_CXX_FLAGS "-O3 -DNDEBUG")
ENDIF()
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated -Wall")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -openmp")
ENDIF(${CMAKE_C_COMPILER} MATCHES "icc.*$" OR ${CMAKE_CXX_COMPILER} MATCHES
"icpc.*$")
### Windows
IF (WIN32)
## For Visual Studio compiler
IF (MSVC)
ADD_DEFINITIONS(-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_WARNINGS
-D_CRT_XNONSTDC_NO_WARNINGS)
# Sets warning level 3 and ignores some warnings
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /W3 /wd4290 /wd4267")
SET(GCC OFF)
# cygwin
ELSE (MSVC)
MESSAGE (STATUS "Might be GCC under cygwin.")
SET(GCC ON)
ENDIF (MSVC)
ENDIF (WIN32)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment