Skip to content

Commit 328a974

Browse files
committed
Fix header installation
1 parent 8089f35 commit 328a974

File tree

3 files changed

+27
-20
lines changed

3 files changed

+27
-20
lines changed

CMakeLists.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,9 +62,9 @@ execute_process(
6262

6363
# config.h contains some global defines, our config.h.in is a modified version of the upstream config.h.in to make it
6464
# integrate with CMake
65-
configure_file(src/config.h.in ${CMAKE_CURRENT_BINARY_DIR}/config.h)
65+
configure_file(src/config.h.in ${PROJECT_BINARY_DIR}/config.h)
6666
# since there's headers in the build directory now, include that as well
67-
include_directories(${CMAKE_CURRENT_BINARY_DIR})
67+
include_directories(${PROJECT_BINARY_DIR})
6868

6969
# find out which platform we're building for
7070
if(UNIX)

cmake/export.cmake

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,6 @@
22
cmake_minimum_required(VERSION 3.15)
33
set(CMP0090 NEW)
44

5-
# set up installion of exported targets (consider libzsync2 a namespace for use in CMake)
6-
install(
7-
TARGETS libzsync2
8-
DESTINATION ${CMAKE_INSTALL_LIBDIR}
9-
EXPORT libzsync2
10-
)
11-
125
# allow import from current build tree
136
export(
147
TARGETS libzsync2
@@ -20,7 +13,7 @@ export(
2013
# note that the targets must be install(... EXPORT zsync) in order for this to work (consider libzsync2 a namespace)
2114
install(
2215
EXPORT libzsync2
23-
DESTINATION lib/cmake/zsync2
16+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zsync2
2417
)
2518

2619
include(CMakePackageConfigHelpers)
@@ -42,5 +35,5 @@ write_basic_package_version_file(
4235
install(FILES
4336
"${PROJECT_BINARY_DIR}/cmake/zsync2Config.cmake"
4437
"${PROJECT_BINARY_DIR}/cmake/zsync2ConfigVersion.cmake"
45-
DESTINATION lib/cmake/zsync2
38+
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/zsync2
4639
)

src/CMakeLists.txt

Lines changed: 23 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ set(CMAKE_POSITION_INDEPENDENT_CODE true)
66
# fix CPR target
77
target_include_directories(cpr PUBLIC ${CPR_INCLUDE_DIRS})
88

9+
set(zsync2_public_headers
10+
${PROJECT_SOURCE_DIR}/include/zsutil.h
11+
${PROJECT_SOURCE_DIR}/include/zsclient.h
12+
${PROJECT_SOURCE_DIR}/include/zsglobal.h
13+
${PROJECT_SOURCE_DIR}/include/zsmake.h
14+
)
15+
916
# core library
1017
add_library(libzsync2 SHARED
1118
zsclient.cpp
@@ -14,14 +21,14 @@ add_library(libzsync2 SHARED
1421
zsmake.cpp
1522
${ZSYNC2_SRCS} ${ZSYNC2_HDRS}
1623
format_string.h
17-
${CMAKE_CURRENT_BINARY_DIR}/config.h
18-
${PROJECT_SOURCE_DIR}/include/zsutil.h
19-
${PROJECT_SOURCE_DIR}/include/zsclient.h
20-
${PROJECT_SOURCE_DIR}/include/zsglobal.h
21-
${PROJECT_SOURCE_DIR}/include/zsmake.h
24+
${PROJECT_BINARY_DIR}/config.h
25+
${zsync2_public_headers}
2226
)
2327
# since the target is called libsomething, one doesn't need CMake's additional lib prefix
24-
set_target_properties(libzsync2 PROPERTIES PREFIX "")
28+
set_target_properties(libzsync2 PROPERTIES
29+
PREFIX ""
30+
PUBLIC_HEADER "${zsync2_public_headers}"
31+
)
2532
target_link_libraries(libzsync2 PRIVATE cpr libzsync hashlib)
2633
target_include_directories(libzsync2
2734
PUBLIC $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/include>
@@ -50,9 +57,16 @@ target_link_libraries(zsyncmake2 PRIVATE cpr)
5057

5158
# install targets
5259
install(
53-
TARGETS zsync2 libzsync2 zsyncmake2
54-
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
60+
TARGETS libzsync2
61+
EXPORT libzsync2
5562
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
5663
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
57-
INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
64+
PUBLIC_HEADER DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}
65+
COMPONENT libzsync2
66+
)
67+
68+
install(
69+
TARGETS zsync2 zsyncmake2
70+
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
71+
COMPONENT zsync2
5872
)

0 commit comments

Comments
 (0)