@@ -6,6 +6,13 @@ set(CMAKE_POSITION_INDEPENDENT_CODE true)
66# fix CPR target
77target_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
1017add_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+ )
2532target_link_libraries (libzsync2 PRIVATE cpr libzsync hashlib)
2633target_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
5259install (
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