Skip to content

Commit adc964d

Browse files
Parametrize headers location and installation paths (#70)
Signed-off-by: Juan López Fernández <juanlopez@eprosima.com>
1 parent 31a6881 commit adc964d

File tree

3 files changed

+16
-2
lines changed

3 files changed

+16
-2
lines changed

cmake_utils/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,8 @@ Those variables which default is `x` must be set, and those with `-` are not req
6666
| MODULE_SUMMARY | ${MODULE_NAME_LARGE} | Summary (short description) |
6767
| MODULE_DESCRIPTION | ${MODULE_SUMMARY} | Description |
6868
| MODULE_MACRO | TOUPPER ${MODULE_NAME} | Macro to use in CMake and C++ definitions (it is recommended to leave it as Uppercase of name) |
69+
| MODULE_HEADERS_PATH | ${MODULE_NAME} | Path (relative to include) where headers to be installed are located |
70+
| MODULE_HEADERS_INSTALL_PATH | ${MODULE_HEADERS_PATH} | Path (relative to install dir) where headers are installed |
6971
|------------------------------|-------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|
7072
| MODULE_FIND_PACKAGES | - | Modules that require to be found by find_package |
7173
| MODULE_THIRDPARTY_HEADERONLY | - | Headeronly thirdparties that require to be included (must be inside ${MODULE_THIRDPARTY_PATH} dir) |

cmake_utils/cmake/compilation/compile_library.cmake

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ function(compile_library _SOURCE_PATH _INCLUDE_PATH)
158158
# Packaging
159159
###############################################################################
160160
# Install headers
161-
install(DIRECTORY ${_INCLUDE_PATH}/${MODULE_NAME}
161+
install(DIRECTORY ${_INCLUDE_PATH}/${MODULE_HEADERS_PATH}
162162
DESTINATION ${INCLUDE_INSTALL_DIR}
163163
COMPONENT headers
164164
FILES_MATCHING
@@ -174,7 +174,7 @@ function(compile_library _SOURCE_PATH _INCLUDE_PATH)
174174
${PROJECT_BINARY_DIR}/include/${MODULE_NAME}/library/eProsima_auto_link.h
175175
${PROJECT_BINARY_DIR}/include/${MODULE_NAME}/library/library_dll.h
176176
DESTINATION
177-
${INCLUDE_INSTALL_DIR}/${MODULE_NAME}/library
177+
${INCLUDE_INSTALL_DIR}/${MODULE_HEADERS_INSTALL_PATH}/library
178178
COMPONENT headers
179179
)
180180

cmake_utils/cmake/project/load_project_settings.cmake

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@
3333
# - MODULE_NAME_LARGE : Project large name (default MODULE_NAME)
3434
# - MODULE_DESCRIPTION : Project description (default MODULE_SUMMARY)
3535
# - MODULE_MACRO : String to set macros in project (default MODULE_NAME in UPPERCASE)
36+
# - MODULE_HEADERS_PATH : Path (relative to include) where headers to be installed are located (default MODULE_NAME)
37+
# - MODULE_HEADERS_INSTALL_PATH : Path (relative to install dir) where headers are installed (default MODULE_HEADERS_PATH)
3638
#
3739
# TODO
3840
#
@@ -121,6 +123,16 @@ macro(load_project_settings)
121123
set (MODULE_LICENSE_FILE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../LICENSE")
122124
endif()
123125

126+
# Set MODULE_HEADERS_PATH
127+
if (NOT MODULE_HEADERS_PATH)
128+
set (MODULE_HEADERS_PATH ${MODULE_NAME})
129+
endif()
130+
131+
# Set MODULE_HEADERS_INSTALL_PATH
132+
if (NOT MODULE_HEADERS_INSTALL_PATH)
133+
set (MODULE_HEADERS_INSTALL_PATH ${MODULE_HEADERS_PATH})
134+
endif()
135+
124136
#####
125137
# Module external options
126138

0 commit comments

Comments
 (0)