@@ -22,9 +22,9 @@ function(install_zenohc_lib configurations property_postfix package_name)
22
22
else ()
23
23
set (ZENOHC_INSTALL_DYLIBDIR ${CMAKE_INSTALL_LIBDIR} )
24
24
endif ()
25
- install (FILES ${dylib_path} DESTINATION ${ZENOHC_INSTALL_DYLIBDIR} CONFIGURATIONS ${configurations} )
25
+ install (FILES ${dylib_path} DESTINATION ${ZENOHC_INSTALL_DYLIBDIR} CONFIGURATIONS ${configurations} COMPONENT lib )
26
26
if (DEFINED implib_path )
27
- install (FILES ${implib_path} DESTINATION ${CMAKE_INSTALL_LIBDIR} CONFIGURATIONS ${configurations} )
27
+ install (FILES ${implib_path} DESTINATION ${CMAKE_INSTALL_LIBDIR} CONFIGURATIONS ${configurations} COMPONENT lib )
28
28
endif ()
29
29
if ((APPLE OR UNIX ))
30
30
get_filename_component (LIBNAME ${DYLIB} NAME_WE )
@@ -33,13 +33,14 @@ function(install_zenohc_lib configurations property_postfix package_name)
33
33
DESTINATION "${CMAKE_INSTALL_LIBDIR} /pkgconfig"
34
34
CONFIGURATIONS ${configurations}
35
35
RENAME ${package_name} .pc
36
- OPTIONAL )
36
+ OPTIONAL
37
+ COMPONENT dev )
37
38
endif ()
38
39
else ()
39
40
get_target_property (staticlib_path zenohc::static IMPORTED_LOCATION_${property_postfix} )
40
41
get_target_property (NATIVE_STATIC_LIBS zenohc::static INTERFACE_LINK_LIBRARIES )
41
42
get_filename_component (STATICLIB ${staticlib_path} NAME )
42
- install (FILES ${staticlib_path} DESTINATION ${CMAKE_INSTALL_LIBDIR} CONFIGURATIONS ${configurations} )
43
+ install (FILES ${staticlib_path} DESTINATION ${CMAKE_INSTALL_LIBDIR} CONFIGURATIONS ${configurations} COMPONENT lib )
43
44
endif ()
44
45
45
46
set (CMAKE_INSTALL_CMAKEDIR "${CMAKE_INSTALL_LIBDIR} /cmake/${package_name} " )
@@ -79,11 +80,50 @@ endfunction()
79
80
#
80
81
get_target_property (include_dirs zenohc::lib INTERFACE_INCLUDE_DIRECTORIES )
81
82
foreach (dir ${include_dirs} )
82
- install (DIRECTORY "${dir} /" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} )
83
+ install (DIRECTORY "${dir} /" DESTINATION ${CMAKE_INSTALL_INCLUDEDIR} COMPONENT headers )
83
84
endforeach ()
84
85
85
86
#
86
87
# Install lib files
87
88
#
88
89
install_zenohc_lib ("Release;RelWithDebInfo;MinSizeRel;None" "RELEASE" zenohc )
89
90
install_zenohc_lib ("Debug" "DEBUG" zenohc )
91
+
92
+ #
93
+ # Configure CPack
94
+ #
95
+ set (CPACK_PACKAGE_DIRECTORY "${CMAKE_BINARY_DIR} /packages" )
96
+ set (CPACK_PACKAGE_CHECKSUM MD5 )
97
+ set (CPACK_PACKAGE_VENDOR "The Eclipse Foundation" )
98
+ set (CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR} )
99
+ set (CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR} )
100
+ set (CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH} )
101
+ set (CPACK_COMPONENT_LIB_DESCRIPTION "The C client library for Eclipse zenoh" )
102
+ set (CPACK_COMPONENT_DEV_DESCRIPTION "${CPACK_COMPONENT_LIB_DESCRIPTION} - cmake files" )
103
+ set (CPACK_COMPONENT_HEADERS_DESCRIPTION "${CPACK_COMPONENT_LIB_DESCRIPTION} - header files" )
104
+ set (CPACK_COMPONENT_LIB_GROUP "lib" )
105
+ set (CPACK_COMPONENT_HEADERS_GROUP "dev" )
106
+ set (CPACK_COMPONENT_DEV_GROUP "dev" )
107
+ set (CPACK_COMPONENT_HEADERS_DEPENDS lib )
108
+ set (CPACK_COMPONENT_DEV_DEPENDS lib )
109
+
110
+ set (CPACK_GENERATOR ZIP )
111
+ # set package name to format <name>-<version>.<extension>
112
+ # platform name doesn't matter for header-only library
113
+ set (CPACK_PACKAGE_NAME zenohc )
114
+
115
+ if (NOT CPACK_PACKAGE_VERSION )
116
+ set (SEM_VER "${PROJECT_VERSION_MAJOR} .${PROJECT_VERSION_MINOR} .${PROJECT_VERSION_PATCH} " )
117
+ if (NOT DEFINED PROJECT_VERSION_TWEAK )
118
+ set (CPACK_PACKAGE_VERSION ${SEM_VER} )
119
+ elseif (PROJECT_VERSION_TWEAK EQUAL 0 )
120
+ set (CPACK_PACKAGE_VERSION "${SEM_VER} ~dev-1" )
121
+ elseif (PROJECT_VERSION_TWEAK GREATER 0 )
122
+ set (CPACK_PACKAGE_VERSION "${SEM_VER} ~pre.${PROJECT_VERSION_TWEAK} -1" )
123
+ endif ()
124
+ endif ()
125
+
126
+ set (CPACK_PACKAGE_FILE_NAME "${CPACK_PACKAGE_NAME} -${CPACK_PACKAGE_VERSION} " )
127
+ set (CPACK_PROJECT_CONFIG_FILE "${CMAKE_CURRENT_SOURCE_DIR} /cpack_project_config.cmake" )
128
+
129
+ include (CPack )
0 commit comments