Skip to content

Commit 68629cc

Browse files
authored
Merge pull request #323 from mathstuf/install-module-rules
Install module rules
2 parents f3f5588 + 8c94f42 commit 68629cc

File tree

1 file changed

+14
-12
lines changed

1 file changed

+14
-12
lines changed

CMakeLists.txt

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,10 @@ if(CTRE_MODULE)
3838
add_library(${PROJECT_NAME})
3939

4040
target_sources(${PROJECT_NAME} PUBLIC FILE_SET CXX_MODULES TYPE CXX_MODULES FILES ctre.cppm)
41-
target_sources(${PROJECT_NAME} PUBLIC FILE_SET HEADERS TYPE HEADERS FILES
41+
target_sources(${PROJECT_NAME} PUBLIC FILE_SET HEADERS TYPE HEADERS
42+
BASE_DIRS
43+
"${CMAKE_CURRENT_SOURCE_DIR}/include"
44+
FILES
4245
include/ctll.hpp
4346
include/ctre/functions.hpp
4447
include/ctre/utility.hpp
@@ -96,8 +99,11 @@ if(CTRE_MODULE)
9699
set(CTRE_CXX_STANDARD 23)
97100
endif()
98101

99-
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include)
100102
target_compile_features(${PROJECT_NAME} PUBLIC cxx_std_${CTRE_CXX_STANDARD})
103+
104+
install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}-targets
105+
FILE_SET CXX_MODULES DESTINATION "${CMAKE_INSTALL_LIBDIR}/cxx/${PROJECT_NAME}"
106+
FILE_SET HEADERS DESTINATION "include")
101107
else()
102108
message(FATAL_ERROR "unsupported cmake for c++ modules")
103109
endif()
@@ -116,12 +122,12 @@ else()
116122
set_property(TARGET ${PROJECT_NAME} PROPERTY CXX_SCAN_FOR_MODULES 0)
117123

118124
install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}-targets)
125+
install(DIRECTORY include/ DESTINATION include
126+
FILES_MATCHING PATTERN *.hpp)
119127
endif()
120128

121129
add_library(${PROJECT_NAME}::${PROJECT_NAME} ALIAS ${PROJECT_NAME})
122130

123-
if (NOT CTRE_MODULE)
124-
125131
if (NOT EXISTS "${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake.in")
126132
file(WRITE ${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake.in [[
127133
@PACKAGE_INIT@
@@ -132,7 +138,7 @@ endif()
132138
configure_package_config_file(
133139
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake.in"
134140
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake"
135-
INSTALL_DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/${PROJECT_NAME}"
141+
INSTALL_DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
136142
NO_SET_AND_CHECK_MACRO
137143
NO_CHECK_REQUIRED_COMPONENTS_MACRO)
138144

@@ -141,15 +147,13 @@ write_basic_package_version_file(ctre-config-version.cmake
141147
COMPATIBILITY SameMajorVersion)
142148

143149
install(EXPORT ${PROJECT_NAME}-targets
144-
DESTINATION "${CMAKE_INSTALL_DATADIR}/cmake/${PROJECT_NAME}"
150+
DESTINATION "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}"
145151
NAMESPACE ${PROJECT_NAME}::)
146152
install(
147153
FILES
148154
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake"
149155
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake"
150-
DESTINATION ${CMAKE_INSTALL_DATADIR}/cmake/${PROJECT_NAME})
151-
install(DIRECTORY include/ DESTINATION include
152-
FILES_MATCHING PATTERN *.hpp)
156+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME})
153157

154158
if(CTRE_BUILD_TESTS)
155159
add_subdirectory(tests)
@@ -184,11 +188,9 @@ set(CPACK_RPM_PACKAGE_NAME "lib${PROJECT_NAME}-devel")
184188
set(PKG_CONFIG_FILE_NAME "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}.pc")
185189
configure_file("${CMAKE_CURRENT_SOURCE_DIR}/packaging/pkgconfig.pc.in" "${PKG_CONFIG_FILE_NAME}" @ONLY)
186190
install(FILES "${PKG_CONFIG_FILE_NAME}"
187-
DESTINATION "${CMAKE_INSTALL_DATADIR}/pkgconfig"
191+
DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig"
188192
)
189193

190194
list(APPEND CPACK_SOURCE_IGNORE_FILES /.git/ /build/ .gitignore .DS_Store)
191195

192196
include(CPack)
193-
194-
endif()

0 commit comments

Comments
 (0)