11# ---- CMake options ----
22
3- cmake_minimum_required (VERSION 3.5.2 FATAL_ERROR )
4-
5- # Set cmake policy by version: https://cmake.org/cmake/help/latest/manual/cmake-policies.7.html
6- if (${CMAKE_VERSION } VERSION_LESS 3.12)
7- cmake_policy (VERSION ${CMAKE_MAJOR_VERSION } .${CMAKE_MINOR_VERSION} )
8- else ()
9- cmake_policy (VERSION 3.12 )
10- endif ()
3+ cmake_minimum_required (VERSION 3.13 FATAL_ERROR )
114
125enable_testing ()
136
147set (CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH } ${CMAKE_CURRENT_SOURCE_DIR } /cmake)
158
169include (CMakeParseArguments )
17- include (QCModulesUtils )
1810include (GNUInstallDirs )
1911
2012# ---- Project ----
2113
22- project (
23- QualityControl
24- VERSION
25- 0.13.0 # TODO update this automatically when there are new releases
26- DESCRIPTION
27- "O2 Data Quality Control Framework"
28- LANGUAGES CXX
29- )
14+ project (QualityControl
15+ VERSION 0.13.0 # TODO update this automatically when there are new
16+ # releases
17+ DESCRIPTION "O2 Data Quality Control Framework"
18+ LANGUAGES CXX C )
19+
20+ # Set CMAKE_INSTALL_LIBDIR explicitly to lib (to avoid lib64 on CC7)
21+ set (CMAKE_INSTALL_LIBDIR lib)
22+
23+ include (GNUInstallDirs )
3024
31- set (LIBRARY_OUTPUT_PATH "${CMAKE_BINARY_DIR } /lib" )
32- set (EXECUTABLE_OUTPUT_PATH "${CMAKE_BINARY_DIR } /bin" )
33- set (INCLUDE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR } /include" )
25+ if (NOT CMAKE_RUNTIME_OUTPUT_DIRECTORY )
26+ set (CMAKE_RUNTIME_OUTPUT_DIRECTORY
27+ ${CMAKE_CURRENT_BINARY_DIR } /${CMAKE_INSTALL_BINDIR} )
28+ endif ()
29+ if (NOT CMAKE_LIBRARY_OUTPUT_DIRECTORY )
30+ set (CMAKE_LIBRARY_OUTPUT_DIRECTORY
31+ ${CMAKE_CURRENT_BINARY_DIR } /${CMAKE_INSTALL_LIBDIR} )
32+ endif ()
33+ if (NOT CMAKE_ARCHIVE_OUTPUT_DIRECTORY )
34+ set (CMAKE_ARCHIVE_OUTPUT_DIRECTORY
35+ ${CMAKE_CURRENT_BINARY_DIR } /${CMAKE_INSTALL_LIBDIR} )
36+ endif ()
3437
3538# ---- End Project ----
3639# The line above is necessary for the generation of doxygen by travis
@@ -40,15 +43,20 @@ set(INCLUDE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/include")
4043# Set the default build type to "RelWithDebInfo"
4144if (NOT CMAKE_BUILD_TYPE )
4245 set (
43- CMAKE_BUILD_TYPE "RelWithDebInfo"
44- CACHE STRING "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel Coverage."
45- FORCE
46- )
46+ CMAKE_BUILD_TYPE
47+ "RelWithDebInfo"
48+ CACHE
49+ STRING
50+ "Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel Coverage."
51+ FORCE )
4752endif (NOT CMAKE_BUILD_TYPE )
4853
54+ option (BUILD_SHARED_LIBS "Build shared libs" ON )
55+
4956# Build targets with install rpath on Mac to dramatically speed up installation
5057set (CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE )
51- list (FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX } /lib" isSystemDir)
58+ list (FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${CMAKE_INSTALL_PREFIX } /lib"
59+ isSystemDir)
5260if ("${isSystemDir} " STREQUAL "-1" )
5361 if (CMAKE_SYSTEM_NAME STREQUAL "Darwin" )
5462 set (CMAKE_INSTALL_RPATH "@loader_path/../lib" )
@@ -72,45 +80,39 @@ set(CMAKE_POSITION_INDEPENDENT_CODE ON)
7280
7381# ---- Dependencies ----
7482
75- find_package (
76- Boost 1.58
77- COMPONENTS
78- container
79- unit_test_framework
80- program_options
81- system
82- log
83- signals
84- system
85- )
83+ find_package (Boost 1.58
84+ COMPONENTS container
85+ unit_test_framework
86+ program_options
87+ system
88+ log
89+ signals
90+ system )
8691find_package (Git QUIET )
8792find_package (Configuration REQUIRED )
8893find_package (Monitoring REQUIRED )
8994find_package (MySQL )
9095find_package (Common REQUIRED )
9196find_package (InfoLogger REQUIRED )
92- find_package (AliceO2 REQUIRED )
97+ find_package (ms_gsl MODULE REQUIRED )
98+ find_package (O2 MODULE REQUIRED )
9399find_package (CURL REQUIRED )
94- find_package (ZeroMQ REQUIRED )
95- find_package (Arrow REQUIRED )
96- find_package (GLFW )
97- find_package (FairRoot REQUIRED )
100+ find_package (GLFW NAMES glfw3 CONFIG )
98101find_package (FairMQ REQUIRED )
99102find_package (FairLogger REQUIRED )
100- find_package (
101- ROOT 6.06.02
102- COMPONENTS
103- RHTTP
104- Gui
105- REQUIRED
106- )
103+ find_package (ROOT 6.06.02 COMPONENTS RHTTP Gui REQUIRED )
107104
108105set (ENABLE_MYSQL ON )
109106if (NOT (MYSQL_FOUND AND TARGET ROOT::RMySQL))
110107 set (ENABLE_MYSQL OFF )
111- message (STATUS "MySQL or ROOT::RMySQL not found, the corresponding classes won't be built." )
108+ message (
109+ STATUS
110+ "MySQL or ROOT::RMySQL not found, the corresponding classes won't be built."
111+ )
112112endif ()
113113
114+ configure_file (getTestDataDirectory.cxx.in getTestDataDirectory.cxx )
115+
114116# ---- Subdirectories ----
115117
116118add_subdirectory (Framework )
0 commit comments