@@ -10,15 +10,12 @@ set(FABLE_VERSION_U32 0 CACHE STRING "Fable version as (MAJOR<<16)|(MINOR<<8)|PA
10
10
include (GNUInstallDirs)
11
11
12
12
# Library ------------------------------------------------------------
13
- set (namespace fable)
14
- set (target fable)
15
-
16
13
find_package (Boost COMPONENTS headers filesystem REQUIRED)
17
14
find_package (fmt REQUIRED)
18
15
find_package (nlohmann_json REQUIRED)
19
16
20
- file (GLOB ${target} _PUBLIC_HEADERS "include/**/*.hpp" )
21
- add_library (${target}
17
+ file (GLOB fable_PUBLIC_HEADERS "include/**/*.hpp" )
18
+ add_library (fable
22
19
# find src -type f -name "*.cpp" \! -name "*_test.cpp"
23
20
src/fable/conf.cpp
24
21
src/fable/confable.cpp
@@ -34,22 +31,22 @@ add_library(${target}
34
31
src/fable/utility.cpp
35
32
36
33
# For IDE integration
37
- ${${target} _PUBLIC_HEADERS }
34
+ ${fable_PUBLIC_HEADERS }
38
35
)
39
- add_library (${namespace} :: ${target} ALIAS ${target} )
40
- set_target_properties (${target} PROPERTIES
36
+ add_library (fable::fable ALIAS fable )
37
+ set_target_properties (fable PROPERTIES
41
38
CXX_STANDARD 17
42
39
CXX_STANDARD_REQUIRED ON
43
40
VERSION ${FABLE_VERSION}
44
41
)
45
42
configure_file (src/fable/version .hpp.in include /fable/version .hpp @ONLY)
46
- target_include_directories (${target}
43
+ target_include_directories (fable
47
44
PUBLIC
48
45
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR} /include>"
49
46
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR} /include>"
50
47
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR} >"
51
48
)
52
- target_link_libraries (${target}
49
+ target_link_libraries (fable
53
50
PUBLIC
54
51
Boost::headers
55
52
Boost::filesystem
@@ -59,9 +56,9 @@ target_link_libraries(${target}
59
56
60
57
option (FABLE_ALLOW_COMMENTS "Allow comments when parsing JSON?" ON )
61
58
if (FABLE_ALLOW_COMMENTS)
62
- target_compile_definitions (${target} PRIVATE PARSE_JSON_WITH_COMMENTS=true )
59
+ target_compile_definitions (fable PRIVATE PARSE_JSON_WITH_COMMENTS=true )
63
60
else ()
64
- target_compile_definitions (${target} PRIVATE PARSE_JSON_WITH_COMMENTS=false )
61
+ target_compile_definitions (fable PRIVATE PARSE_JSON_WITH_COMMENTS=false )
65
62
endif ()
66
63
67
64
# Testing ------------------------------------------------------------
@@ -95,15 +92,16 @@ if(BUILD_TESTING)
95
92
target_link_libraries (test -fable
96
93
GTest::gtest
97
94
GTest::gtest_main
98
- Boost::boost
99
- ${target}
95
+ Boost::headers
96
+ Boost::filesystem
97
+ fable
100
98
)
101
99
gtest_add_tests(TARGET test -fable)
102
100
endif ()
103
101
104
102
# Installation -------------------------------------------------------
105
- install (TARGETS ${target}
106
- EXPORT ${namespace} Targets
103
+ install (TARGETS fable
104
+ EXPORT fableTargets
107
105
LIBRARY
108
106
ARCHIVE
109
107
RUNTIME
@@ -114,18 +112,18 @@ install(DIRECTORY include/
114
112
install (DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} /include /
115
113
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
116
114
)
117
- install (EXPORT ${namespace} Targets
118
- NAMESPACE ${namespace} ::
119
- DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/${namespace}
115
+ install (EXPORT fableTargets
116
+ NAMESPACE fable ::
117
+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/fable
120
118
)
121
119
include (CMakePackageConfigHelpers)
122
120
write_basic_package_version_file(
123
- "${namespace} ConfigVersion .cmake"
121
+ "fableConfigVersion .cmake"
124
122
VERSION ${FABLE_VERSION}
125
123
COMPATIBILITY AnyNewerVersion
126
124
)
127
125
install (FILES
128
- "cmake/${namespace} Config .cmake"
129
- "${CMAKE_CURRENT_BINARY_DIR} /${namespace} ConfigVersion .cmake"
130
- DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/${namespace}
126
+ "cmake/fableConfig .cmake"
127
+ "${CMAKE_CURRENT_BINARY_DIR} /fableConfigVersion .cmake"
128
+ DESTINATION ${CMAKE_INSTALL_LIBDIR} /cmake/fable
131
129
)
0 commit comments