Skip to content

Commit 7d38b91

Browse files
authored
Integrate the CMake configuration from Serialbox (#17)
1 parent f21e430 commit 7d38b91

File tree

4 files changed

+76
-402
lines changed

4 files changed

+76
-402
lines changed

CMakeLists.txt

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@ SET(CMAKE_INSTALL_PREFIX "${CMAKE_SOURCE_DIR}/install/" CACHE PATH "installation
66

77
project(gridtools-verification CXX C)
88

9-
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules")
109

1110
include(ExternalProject)
1211

12+
set(GRIDTOOLS_VERIFICATION_VERSION_STRING "0.2")
13+
set(SERIALBOX_VERSION_REQUIRED "2.1.0")
14+
1315
#----------------- CMake options
1416
# C++11 compiler support
1517
## Set C++ standard to C++11
@@ -34,24 +36,19 @@ if(CMAKE_BUILD_TYPE MATCHES "Debug")
3436
add_definitions(-DDEBUG)
3537
endif(CMAKE_BUILD_TYPE MATCHES "Debug")
3638

37-
#----------------- Boost
38-
find_package(Boost 1.58 COMPONENTS system program_options REQUIRED)
39-
40-
if(NOT(${Boost_FOUND}))
41-
message(FATAL_ERROR "Boost not found or insufficient version.")
42-
endif(NOT(${Boost_FOUND}))
4339

44-
include_directories(SYSTEM ${Boost_INCLUDE_DIRS})
45-
link_directories(${Boost_LIBRARY_DIRS})
40+
#----------------- find Serialbox2
41+
find_package( Serialbox "${SERIALBOX_VERSION_REQUIRED}" REQUIRED HINTS
42+
"${CMAKE_CURRENT_LIST_DIR}/../serialbox2/install/cmake"
43+
"${SERIALBOX_ROOT}/cmake"
44+
"${SERIALBOX_DIR}/cmake"
45+
"$ENV{SERIALBOX_ROOT}/cmake")
46+
include_directories(${SERIALBOX_INCLUDE_DIRS})
4647

4748
#----------------- build bundled libs
4849
add_subdirectory( libs )
4950
include_directories(${GTEST_INCLUDE_DIRS})
5051

51-
#----------------- find Serialbox2
52-
find_package( Serialbox 2.1.0 REQUIRED )
53-
include_directories( ${SERIALBOX_INCLUDE_DIRS} )
54-
5552
#----------------- Glob the headers (for IDEs)
5653
file(GLOB_RECURSE GT_VERIFICATION_HEADERS
5754
${CMAKE_CURRENT_SOURCE_DIR}/src
@@ -82,4 +79,7 @@ install( TARGETS gridtools_verification DESTINATION "lib" EXPORT gridtools_verif
8279
install( DIRECTORY src/ DESTINATION "include/gridtools_verification" FILES_MATCHING PATTERN "*.h" )
8380
install( EXPORT gridtools_verification DESTINATION lib/gridtools_verification )
8481

82+
#----------------- packaging
83+
include(cmake/Packaging.cmake)
84+
8585
add_subdirectory(unittest)

cmake/Packaging.cmake

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
## Handle Packaging
2+
include(CMakePackageConfigHelpers)
3+
4+
set(GRIDTOOLS_VERIFICATION_INCLUDE_DIR include)
5+
set(GRIDTOOLS_VERIFICATION_LIBRARY_DIR lib)
6+
7+
## Generate and install GridtoolsVerificationConfig.cmake
8+
configure_package_config_file(
9+
${CMAKE_SOURCE_DIR}/cmake/gridtools_verification-config.cmake.in
10+
${PROJECT_BINARY_DIR}/cmake/gridtools_verification-config.cmake
11+
INSTALL_DESTINATION
12+
cmake
13+
PATH_VARS
14+
SERIALBOX_ROOT
15+
GRIDTOOLS_VERIFICATION_INCLUDE_DIR
16+
GRIDTOOLS_VERIFICATION_LIBRARY_DIR
17+
)
18+
install(FILES "${PROJECT_BINARY_DIR}/cmake/gridtools_verification-config.cmake" DESTINATION cmake)
19+
20+
# Generate and install GridtoolsVerificationConfigVersion.cmake
21+
write_basic_package_version_file(
22+
"${PROJECT_BINARY_DIR}/cmake/gridtools_verification-config-version.cmake"
23+
VERSION ${GRIDTOOLS_VERIFICATION_VERSION_STRING}
24+
COMPATIBILITY AnyNewerVersion
25+
)
26+
install(FILES "${PROJECT_BINARY_DIR}/cmake/gridtools_verification-config-version.cmake" DESTINATION cmake)
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
@PACKAGE_INIT@
2+
3+
if(NOT(DEFINED GRIDTOOLS_VERIFICATION_ROOT))
4+
set(GRIDTOOLS_VERIFICATION_ROOT "${CMAKE_CURRENT_LIST_DIR}/../")
5+
endif()
6+
7+
include(FindPackageHandleStandardArgs)
8+
9+
set_and_check(SERIALBOX_ROOT "@SERIALBOX_ROOT@")
10+
set_and_check(SERIALBOX_CMAKE "${SERIALBOX_ROOT}/cmake")
11+
set(SERIALBOX_VERSION_REQUIRED "@SERIALBOX_VERSION_REQUIRED@")
12+
13+
set(SERIALBOX_ROOT "@SERIALBOX_ROOT@")
14+
find_package( Serialbox "${SERIALBOX_VERSION_REQUIRED}" REQUIRED HINTS
15+
"${SERIALBOX_ROOT}/cmake")
16+
17+
18+
set_and_check(GRIDTOOLS_ROOT "@GRIDTOOLS_ROOT@")
19+
set_and_check(GRIDTOOLS_VERIFICATION_INCLUDE_DIR "@PACKAGE_GRIDTOOLS_VERIFICATION_INCLUDE_DIR@")
20+
set_and_check(GRIDTOOLS_VERIFICATION_LIBRARY_DIR "@PACKAGE_GRIDTOOLS_VERIFICATION_LIBRARY_DIR@")
21+
22+
23+
set(GRIDTOOLS_VERIFICATION_BOOST_LIBRARYDIR "@SERIALBOX_BOOST_LIBRARY_DIRS@")
24+
set(GRIDTOOLS_VERIFICATION_BOOST_INCLUDEDIR "@SERIALBOX_BOOST_INCLUDE_DIRS@")
25+
set(GRIDTOOLS_VERIFICATION_BOOST_VERSION "@SERIALBOX_BOOST_VERSION@")
26+
set(GRIDTOOLS_VERIFICATION_REQUIRED_BOOST_COMPONENTS "@SERIALBOX_REQUIRED_BOOST_COMPONENTS@")
27+
28+
list(APPEND GRIDTOOLS_VERIFICATION_INCLUDE_DIRS "${GRIDTOOLS_ROOT}/include")
29+
list(APPEND GRIDTOOLS_VERIFICATION_INCLUDE_DIRS ${SERIALBOX_INCLUDE_DIRS})
30+
list(APPEND GRIDTOOLS_VERIFICATION_INCLUDE_DIRS ${GRIDTOOLS_VERIFICATION_INCLUDE_DIR})
31+
32+
list(APPEND GRIDTOOLS_VERIFICATION_LIBRARIES "gridtools_verification" )
33+
list(APPEND GRIDTOOLS_VERIFICATION_LIBRARIES @SERIALBOX_CXX_LIBRARIES@ )
34+
list(APPEND GRIDTOOLS_VERIFICATION_LIBRARIES @GTEST_BOTH_LIBRARIES@ )
35+
36+
include_directories( ${GRIDTOOLS_VERIFICATION_INCLUDE_DIRS} )
37+
link_directories( ${GRIDTOOLS_VERIFICATION_LIBRARY_DIR} )

0 commit comments

Comments
 (0)