Skip to content

Commit 2d3587c

Browse files
globberwopspmai
authored andcommitted
Prefix cache variables with OSI_ identifier
Use option() to set cache variables Signed-off-by: Martin Stump <11492152+globberwops@users.noreply.github.com>
1 parent 845f871 commit 2d3587c

File tree

1 file changed

+16
-17
lines changed

1 file changed

+16
-17
lines changed

CMakeLists.txt

Lines changed: 16 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -38,19 +38,18 @@ if(NOT CMAKE_BUILD_TYPE AND NOT CMAKE_CONFIGURATION_TYPES)
3838
endif()
3939

4040
# Offer the user the choice of overriding the installation directories
41-
set(INSTALL_LIB_DIR lib CACHE PATH "Installation directory for libraries")
42-
set(INSTALL_INCLUDE_DIR include CACHE PATH "Installation directory for header files")
41+
option(OSI_INSTALL_LIB_DIR "Installation directory for libraries" lib)
42+
option(OSI_INSTALL_INCLUDE_DIR "Installation directory for header files" include)
4343

4444
if(WIN32 AND NOT CYGWIN)
4545
set(DEF_INSTALL_CMAKE_DIR CMake/${PROJECT_NAME}-${VERSION_MAJOR})
4646
else()
4747
set(DEF_INSTALL_CMAKE_DIR lib/cmake/${PROJECT_NAME}-${VERSION_MAJOR})
4848
endif()
49-
set(INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH
50-
"Installation directory for CMake files")
49+
option(OSI_INSTALL_CMAKE_DIR "Installation directory for CMake files" ${DEF_INSTALL_CMAKE_DIR})
5150

52-
set(INSTALL_LIB_DIR ${INSTALL_LIB_DIR}/osi${VERSION_MAJOR})
53-
set(INSTALL_INCLUDE_DIR ${INSTALL_INCLUDE_DIR}/osi${VERSION_MAJOR})
51+
set(OSI_INSTALL_LIB_DIR ${OSI_INSTALL_LIB_DIR}/osi${VERSION_MAJOR})
52+
set(OSI_INSTALL_INCLUDE_DIR ${OSI_INSTALL_INCLUDE_DIR}/osi${VERSION_MAJOR})
5453

5554
configure_file(osi_version.proto.in ${CMAKE_CURRENT_SOURCE_DIR}/osi_version.proto)
5655

@@ -137,20 +136,20 @@ target_include_directories(${PROJECT_NAME}_static
137136
PUBLIC
138137
${PROTOBUF_INCLUDE_DIR}
139138
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
140-
$<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR}>
139+
$<INSTALL_INTERFACE:${OSI_INSTALL_INCLUDE_DIR}>
141140
)
142141
target_link_libraries(${PROJECT_NAME}_static PUBLIC ${PROTOBUF_LIBRARY})
143142
install(TARGETS ${PROJECT_NAME}_static
144143
EXPORT ${PROJECT_NAME}_targets
145-
ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" COMPONENT lib)
144+
ARCHIVE DESTINATION "${OSI_INSTALL_LIB_DIR}" COMPONENT lib)
146145

147146

148147
add_library(${PROJECT_NAME}_obj OBJECT ${PROTO_SRCS} ${PROTO_HEADERS})
149148
target_include_directories(${PROJECT_NAME}_obj
150149
PUBLIC
151150
${PROTOBUF_INCLUDE_DIR}
152151
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
153-
$<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR}>
152+
$<INSTALL_INTERFACE:${OSI_INSTALL_INCLUDE_DIR}>
154153
)
155154
set_property(TARGET ${PROJECT_NAME}_obj PROPERTY POSITION_INDEPENDENT_CODE ON)
156155

@@ -161,22 +160,22 @@ target_include_directories(${PROJECT_NAME}_pic
161160
PUBLIC
162161
${PROTOBUF_INCLUDE_DIR}
163162
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
164-
$<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR}>
163+
$<INSTALL_INTERFACE:${OSI_INSTALL_INCLUDE_DIR}>
165164
)
166165
target_link_libraries(${PROJECT_NAME}_pic PUBLIC ${PROTOBUF_LIBRARY})
167166

168167
set_property(TARGET ${PROJECT_NAME}_pic PROPERTY POSITION_INDEPENDENT_CODE ON)
169168

170169
install(TARGETS ${PROJECT_NAME}_pic
171170
EXPORT ${PROJECT_NAME}_targets
172-
ARCHIVE DESTINATION "${INSTALL_LIB_DIR}" COMPONENT lib)
171+
ARCHIVE DESTINATION "${OSI_INSTALL_LIB_DIR}" COMPONENT lib)
173172

174173
add_library(${PROJECT_NAME} SHARED $<TARGET_OBJECTS:${PROJECT_NAME}_obj>)
175174
target_include_directories(${PROJECT_NAME}
176175
PUBLIC
177176
${PROTOBUF_INCLUDE_DIR}
178177
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}>
179-
$<INSTALL_INTERFACE:${INSTALL_INCLUDE_DIR}>
178+
$<INSTALL_INTERFACE:${OSI_INSTALL_INCLUDE_DIR}>
180179
)
181180

182181
set_property(
@@ -191,7 +190,7 @@ set_property(
191190
target_link_libraries(${PROJECT_NAME} PUBLIC ${PROTOBUF_LIBRARY})
192191
install(TARGETS ${PROJECT_NAME}
193192
EXPORT ${PROJECT_NAME}_targets
194-
DESTINATION "${INSTALL_LIB_DIR}" COMPONENT lib)
193+
DESTINATION "${OSI_INSTALL_LIB_DIR}" COMPONENT lib)
195194

196195
# Create the open_simulation_interface.cmake and open_simulation_interface-version files
197196

@@ -200,7 +199,7 @@ set(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}" "${PROJECT_BINARY_DIR}")
200199
configure_file(open_simulation_interface-config.cmake.in
201200
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config.cmake" @ONLY)
202201
# ... for the install tree
203-
set(CONF_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/${INSTALL_INCLUDE_DIR} ${PROTOBUF_INCLUDE_DIR})
202+
set(CONF_INCLUDE_DIRS ${CMAKE_INSTALL_PREFIX}/${OSI_INSTALL_INCLUDE_DIR} ${PROTOBUF_INCLUDE_DIR})
204203
configure_file(open_simulation_interface-config.cmake.in
205204
"${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/open_simulation_interface-config.cmake" @ONLY)
206205
# ... for both
@@ -211,16 +210,16 @@ configure_file(open_simulation_interface-config-version.cmake.in
211210
install(FILES
212211
"${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/open_simulation_interface-config.cmake"
213212
"${PROJECT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake"
214-
DESTINATION "${INSTALL_CMAKE_DIR}"
213+
DESTINATION "${OSI_INSTALL_CMAKE_DIR}"
215214
COMPONENT dev)
216215

217216
# Header files
218217
install(FILES ${PROTO_HEADERS} ${FLAT_HEADERS}
219-
DESTINATION "${INSTALL_INCLUDE_DIR}")
218+
DESTINATION "${OSI_INSTALL_INCLUDE_DIR}")
220219

221220
# Install the export set for use with the install-tree
222221
install(EXPORT ${PROJECT_NAME}_targets
223-
DESTINATION "${INSTALL_CMAKE_DIR}"
222+
DESTINATION "${OSI_INSTALL_CMAKE_DIR}"
224223
COMPONENT dev)
225224

226225
# add a target to generate API documentation with Doxygen

0 commit comments

Comments
 (0)