Skip to content

Commit 0073acf

Browse files
committed
Fix header file installation paths to respect CMAKE_INSTALL_INCLUDEDIR
Previously, header files were installed uniformly under the include directory, ignoring the specified paths. This change ensures header files are installed in the appropriate directories under `CMAKE_INSTALL_INCLUDEDIR`.
1 parent a5c8a2c commit 0073acf

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

CMakeLists.txt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -253,6 +253,10 @@ IF (NOT DEFINED CMAKE_INSTALL_LIBDIR)
253253
SET(CMAKE_INSTALL_LIBDIR lib)
254254
ENDIF ()
255255

256+
IF (NOT CMAKE_INSTALL_INCLUDEDIR)
257+
SET(CMAKE_INSTALL_INCLUDEDIR include)
258+
ENDIF ()
259+
256260
IF (MSGPACK_BUILD_EXAMPLES)
257261
ADD_SUBDIRECTORY (example)
258262
ENDIF ()
@@ -271,12 +275,14 @@ INSTALL (TARGETS ${MSGPACK_INSTALLTARGETS} EXPORT msgpack-c-targets
271275
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
272276
)
273277
FOREACH (file ${msgpack-c_common_HEADERS})
274-
GET_FILENAME_COMPONENT (dir ${file} PATH)
275-
INSTALL (FILES ${file} DESTINATION ${dir})
278+
GET_FILENAME_COMPONENT(dir ${file} DIRECTORY)
279+
STRING(REPLACE "include" "${CMAKE_INSTALL_INCLUDEDIR}" header_path ${dir})
280+
INSTALL (FILES ${file} DESTINATION ${header_path})
276281
ENDFOREACH ()
277282
FOREACH (file ${msgpack-c_configured_HEADERS})
278-
GET_FILENAME_COMPONENT (dir ${file} PATH)
279-
INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/${file} DESTINATION ${dir})
283+
GET_FILENAME_COMPONENT(dir ${file} DIRECTORY)
284+
STRING(REPLACE "include" "${CMAKE_INSTALL_INCLUDEDIR}" header_path ${dir})
285+
INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/${file} DESTINATION ${header_path})
280286
ENDFOREACH ()
281287
IF (NOT MSVC)
282288
INSTALL (FILES ${CMAKE_CURRENT_BINARY_DIR}/msgpack-c.pc DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig)

0 commit comments

Comments
 (0)