-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathCMakeLists.txt
79 lines (64 loc) · 2.77 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
cmake_minimum_required(VERSION 3.12)
project(pddl_parser VERSION 0.9.0
DESCRIPTION "Basic PDDL parser based on boost spirit")
set(CMAKE_CXX_STANDARD 17)
add_compile_options(-W -Wall -Werror -Wextra -Wpedantic)
find_package(Boost REQUIRED COMPONENTS system program_options)
find_package(spdlog REQUIRED)
add_library(pddl_parser SHARED pddl_parser.cpp pddl_semantics.cpp)
target_link_libraries(pddl_parser PUBLIC Boost::boost Boost::system spdlog::spdlog)
target_include_directories(
pddl_parser PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>$<INSTALL_INTERFACE:include>)
set_target_properties(pddl_parser PROPERTIES SOVERSION ${PROJECT_VERSION_MAJOR})
add_executable(pddl_check pddl_check.cpp)
target_link_libraries(pddl_check PRIVATE pddl_parser Boost::program_options)
include(GNUInstallDirs)
install(
TARGETS pddl_parser
EXPORT PddlParserTargets
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
INCLUDES DESTINATION include)
install(DIRECTORY include/pddl_parser DESTINATION ${CMAKE_INSTALL_INCLUDEDIR})
install(
TARGETS pddl_check
EXPORT PddlParserTargets
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
include(CMakePackageConfigHelpers)
write_basic_package_version_file(
${CMAKE_CURRENT_BINARY_DIR}/PddlParserConfigVersion.cmake
VERSION ${PROJECT_VERSION}
COMPATIBILITY SameMajorVersion)
install(
EXPORT PddlParserTargets
FILE PddlParserTargets.cmake
NAMESPACE PddlParser::
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/PddlParser)
install(FILES cmake/PddlParserConfig.cmake
${CMAKE_CURRENT_BINARY_DIR}/PddlParserConfigVersion.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/PddlParser)
get_target_property(PKG_CONFIG_PUBLIC_LIBS pddl_parser INTERFACE_LINK_LIBRARIES)
get_target_property(PKG_CONFIG_PRIVATE_LIBS pddl_parser LINK_LIBRARIES)
get_target_property(PKG_CONFIG_CFLAGS pddl_parser COMPILE_FLAGS)
if ("${PKG_CONFIG_CFLAGS}" STREQUAL "PKG_CONFIG_CFLAGS-NOTFOUND")
set(PKG_CONFIG_CFLAGS "")
endif()
set(PKG_CONFIG_PUBLIC_LIBS " -lboost_system")
set(PKG_CONFIG_PRIVATE_LIBS "")
set(PKG_CONFIG_CFLAGS "")
set(PKG_CONFIG_REQUIRES "spdlog")
configure_file(pddl_parser.pc.in ${CMAKE_CURRENT_BINARY_DIR}/pddl_parser.pc @ONLY)
# optionally check for GTest
find_package(GTest QUIET)
if (GTest_FOUND)
enable_testing()
find_package(GTest REQUIRED)
include(GoogleTest)
add_executable(PddlParserTest tests/test_pddl_parser.cpp)
target_compile_features(PddlParserTest PRIVATE cxx_std_17)
target_link_libraries(PddlParserTest PRIVATE pddl_parser pthread gtest gtest_main)
add_compile_definitions(SRCDIR="${CMAKE_CURRENT_SOURCE_DIR}/tests")
gtest_discover_tests(PddlParserTest)
else()
message(STATUS "Skipping tests, GTest not found.")
endif()
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/pddl_parser.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)