Skip to content

Commit bb7f393

Browse files
committed
Use 'INCLUDE' argument of install(TARGETS) for managing public headers
1 parent c8f307a commit bb7f393

File tree

1 file changed

+7
-9
lines changed

1 file changed

+7
-9
lines changed

CMakeLists.txt

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
cmake_minimum_required(VERSION 3.14)
1+
cmake_minimum_required(VERSION 3.15)
22
project(mylib
33
VERSION 1.0.0
44
DESCRIPTION "Template for C++ library built with CMake"
@@ -18,7 +18,7 @@ option(MYLIB_BUILD_TESTS "Build mylib tests" OFF)
1818
option(MYLIB_BUILD_EXAMPLES "Build mylib examples" OFF)
1919
option(MYLIB_BUILD_DOCS "Build mylib documentation" OFF)
2020
option(MYLIB_INSTALL "Generate target for installing mylib" ${is_top_level})
21-
set_if_undefined(MYLIB_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/mylib-${PROJECT_VERSION}" CACHE STRING
21+
set_if_undefined(MYLIB_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR}/cmake/mylib" CACHE STRING
2222
"Install path for mylib package-related CMake files")
2323

2424
if(DEFINED MYLIB_SHARED_LIBS)
@@ -73,10 +73,7 @@ target_compile_definitions(mylib PUBLIC "$<$<NOT:$<BOOL:${BUILD_SHARED_LIBS}>>:M
7373
target_include_directories(mylib
7474
PUBLIC
7575
"$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>"
76-
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>"
77-
"$<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>"
78-
PRIVATE
79-
"${CMAKE_CURRENT_SOURCE_DIR}/src")
76+
"$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/include>")
8077

8178
set_target_properties(mylib PROPERTIES
8279
SOVERSION ${PROJECT_VERSION_MAJOR}
@@ -92,10 +89,11 @@ if(MYLIB_INSTALL AND NOT CMAKE_SKIP_INSTALL_RULES)
9289
install(TARGETS mylib EXPORT mylib_export
9390
RUNTIME COMPONENT mylib
9491
LIBRARY COMPONENT mylib NAMELINK_COMPONENT mylib-dev
95-
ARCHIVE COMPONENT mylib-dev)
92+
ARCHIVE COMPONENT mylib-dev
93+
INCLUDES DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
9694
install(DIRECTORY include/
97-
COMPONENT mylib-dev
98-
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}")
95+
TYPE INCLUDE
96+
COMPONENT mylib-dev)
9997
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/include/mylib/${export_file_name}"
10098
COMPONENT mylib-dev
10199
DESTINATION "${CMAKE_INSTALL_INCLUDEDIR}/mylib")

0 commit comments

Comments
 (0)