-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCMakeLists.txt
104 lines (71 loc) · 4.22 KB
/
CMakeLists.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
project(SIOX C CXX)
cmake_minimum_required(VERSION 2.8)
include(CTest)
include(FeatureSummary)
include(CheckCSourceCompiles)
set(SIOX_SOURCES ${CMAKE_SOURCE_DIR})
set(SIOX_INCLUDE ${CMAKE_SOURCE_DIR}/src/include)
set(SIOX_INCLUDE_DIRS ${SIOX_SOURCES} ${SIOX_INCLUDE} ${CMAKE_SOURCE_DIR}/src/ ${PROJECT_BINARY_DIR} ${PROJECT_BINARY_DIR}/src CACHE STRING "SIOX INCLUDE DIRS")
set(SIOX_ETC_DIR ${CMAKE_INSTALL_PREFIX}/etc/siox)
SET (CMAKE_C_FLAGS_DEBUG "-g3 -O0 -Wno-unused-local-typedefs -DDEBUG_VERSION")
SET (CMAKE_CXX_FLAGS_DEBUG "-g3 -O0 -Wno-unused-local-typedefs -DDEBUG_VERSION")
set(CMAKE_C_FLAGS "-Wall -std=gnu99 -Wno-unused-local-typedefs -DRELEASE_VERSION")
set(CMAKE_C_FLAGS_RELEASE "-O3 -std=gnu99 -Wno-unused-local-typedefs")
set(CMAKE_CXX_FLAGS_RELEASE "-O3 -Wno-unused-local-typedefs -DRELEASE_VERSION")
set(CMAKE_EXE_LINKER_FLAGS "-Wl,--no-as-needed -Wno-unused-local-typedefs")
set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-as-needed -Wno-unused-local-typedefs")
set(CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-as-needed -Wno-unused-local-typedefs")
set(CMAKE_MODULE_PATH ${SIOX_SOURCES}/devel/cmake ${CMAKE_MODULE_PATH})
set(BUILD_SHARED_LIBS ON)
if ("${CMAKE_CXX_COMPILER_ID}" MATCHES "GNU")
set(CMAKE_CXX_FLAGS "-Wall -std=gnu++11 -fPIC -Wno-unused-local-typedefs")
execute_process(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
if (NOT (GCC_VERSION VERSION_GREATER 4.7 OR GCC_VERSION VERSION_EQUAL 4.7))
message(FATAL_ERROR "${PROJECT_NAME} requires g++ 4.7 or greater.")
endif ()
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
else ()
message(FATAL_ERROR "Your C++ compiler does not support C++11. (or it is not supported by this build script)")
endif ()
# IF we set it here we cannot change it using for example ccmake
#### WARNING DO NOT USE THIS, use ccmake or configure to set the directory
#### AGAIN DO NOT USE THE FOLLOWING LINES, EXCEPT IF YOU ARE NOT COMMITTING THIS FILE
# set(CMAKE_INSTALL_PREFIX /usr/local/siox)
# set(NetCDF_INCLUDE_PATH /usr/local/include)
# this is for self-compiled libraries that are not in the system's ld-path
set(CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH})
# this is for the header files of self-compiled libraries
set(CMAKE_INCLUDE_PATH ${CMAKE_INCLUDE_PATH})
find_package(MPI)
include(CTest)
include(FeatureSummary)
include(SIOXMacros)
add_definitions(-DSIOX_ETC_DIR="${SIOX_ETC_DIR}")
set_library_install_suffix()
set(SIOX_INSTALL_LIBRARY_DIR lib${LIBRARY_INSTALL_SUFFIX})
find_package(Boost 1.49.0 COMPONENTS regex serialization system thread program_options REQUIRED)
set_package_properties(Boost PROPERTIES URL "http://www.boost.org" TYPE REQUIRED PURPOSE "SIOX core dependency.")
find_package(GLIB 2.30 COMPONENTS gio gobject gmodule REQUIRED)
set_package_properties(GLIB PROPERTIES URL "http://www.gtk.org" TYPE REQUIRED PURPOSE "SIOX core dependency.")
find_package(Pqxx 3.0)
set_package_properties(Pqxx PROPERTIES URL "http://pqxx.org" TYPE OPTIONAL PURPOSE "PostgreSQL Backend.")
find_package(PostgreSQL)
set_package_properties(PostgreSQL PROPERTIES URL "http://www.postgresql.org" TYPE OPTIONAL PURPOSE "SIOX PostgreSQL backend support.")
find_package(PythonInterp 2.7 REQUIRED)
set_package_properties(PythonInterp PROPERTIES URL "http://www.python.org" TYPE REQUIRED PURPOSE "SIOX core dependency.")
find_package(LIKWID)
set_package_properties(LIKWID PROPERTIES URL "see Readme.md" TYPE OPTIONAL PURPOSE "CPU counters")
find_package(BDB)
set_package_properties(BDB PROPERTIES URL "http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/overview/index.html" TYPE OPTIONAL PURPOSE "Alternative backend for activities")
if(PACKAGES_NOT_FOUND)
feature_summary(INCLUDE_QUIET_PACKAGES FATAL_ON_MISSING_REQUIRED_PACKAGES DESCRIPTION "\n-- The following mandatory packages couldn't be found on your system:\n" WHAT PACKAGES_NOT_FOUND)
endif()
add_subdirectory(src)
if (BUILD_WRAPPERS)
add_subdirectory(tools)
endif (BUILD_WRAPPERS)
message(STATUS "Build Type: ${CMAKE_BUILD_TYPE}")
# install default configurations
install(DIRECTORY etc/siox DESTINATION etc)
# install(CODE "execute_process(COMMAND \"${CMAKE_SOURCE_DIR}/etc/create-config.sh\" ${CMAKE_SOURCE_DIR} ${SIOX_ETC_DIR})")