Skip to content
Snippets Groups Projects
Commit c1808287 authored by Tom Fischer's avatar Tom Fischer
Browse files

Merge branch 'master' into NestedDissectionPerm

Conflicts:
	CMakeLists.txt
parents 0772dc33 b250b7a3
No related branches found
No related tags found
No related merge requests found
#####################
### OGS-6 Project ###
#####################
# Specify minimum CMake version # Specify minimum CMake version
cmake_minimum_required(VERSION 2.6) cmake_minimum_required(VERSION 2.6)
# Project name # Project name
project( OGS-6 ) project( OGS-6 )
# Set cmake module path ### CMake includes ###
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} INCLUDE(scripts/cmake/CMakeSetup.cmake)
"${CMAKE_SOURCE_DIR}/scripts/cmake/cmake" INCLUDE(scripts/cmake/CompilerSetup.cmake)
"${CMAKE_SOURCE_DIR}/scripts/cmake") INCLUDE(scripts/cmake/Find.cmake)
INCLUDE(GetCompilerInfoString)
# Finds
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()
### 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 "${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" ) ### Options ###
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.*$")
# Profiling
IF((CMAKE_COMPILER_IS_GNUCXX OR CMAKE_COMPILER_IS_GNUCC) AND GPROF_PATH)
OPTION(OGS_PROFILE "Enables compiling with flags set for profiling with gprof." OFF)
ENDIF() # GCC AND GPROF_PATH
# Set build directories # Set build directories
SET( EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin ) SET( EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/bin )
......
# Set additional CMake modules path
SET(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH}
"${CMAKE_SOURCE_DIR}/scripts/cmake/cmake"
"${CMAKE_SOURCE_DIR}/scripts/cmake")
# Load addional modules
INCLUDE(UseBackportedModules)
INCLUDE(OptionRequires)
INCLUDE(CppcheckTargets)
INCLUDE(GetCompilerInfoString)
# Suppress warning on setting policies
CMAKE_POLICY(SET CMP0011 OLD)
# Suppress warning on add_subdirectory(dir) where dir contains no CMakeLists.txt
IF (${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION} GREATER 2.7)
CMAKE_POLICY(SET CMP0014 OLD)
ENDIF ()
INCLUDE(ResetConfigurations) # To Debug, Release, RelWithDbgInfo
INCLUDE(SetDefaultBuildType)
SET_DEFAULT_BUILD_TYPE(Debug)
INCLUDE(MSVCMultipleProcessCompile) # /MP switch (multi processor) for VS
### GNU C/CXX compiler
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)
### Intel compiler
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.*$")
# Profiling
IF (OGS_PROFILE)
IF( NOT CMAKE_BUILD_TYPE STREQUAL "Release" )
MESSAGE(STATUS "When using profiling you should set CMAKE_BUILD_TYPE to Release.")
ENDIF()
SET(PROFILE_FLAGS "-pg -fno-omit-frame-pointer -O2 -DNDEBUG")
# clang compiler does not know the following flags
IF(CMAKE_CXX_COMPILER MATCHES "!clang")
SET(PROFILE_FLAGS "${PROFILE_FLAGS} -fno-inline-functions-called-once -fno-optimize-sibling-calls")
ENDIF()
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${PROFILE_FLAGS}")
ENDIF (OGS_PROFILE)
### 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")
# cygwin
ELSE (MSVC)
MESSAGE (STATUS "Might be GCC under cygwin.")
ADD_DEFINITIONS( -DGCC )
ENDIF (MSVC)
ENDIF (WIN32)
######################
### Find tools ###
######################
# Find dot tool from graphviz
FIND_PROGRAM(DOT_TOOL_PATH dot DOC "Dot tool from graphviz")
# Find doxygen
FIND_PACKAGE(Doxygen)
# Find gnu profiler gprof
FIND_PROGRAM(GPROF_PATH gprof DOC "GNU profiler gprof")
FIND_PACKAGE(cppcheck)
######################
### Find libraries ###
######################
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()
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