From 28a35e967389c0982b2609fe43bdcbd01e422443 Mon Sep 17 00:00:00 2001 From: Martchus Date: Tue, 22 Mar 2022 22:02:50 +0100 Subject: [PATCH] Remove project name from headers dir if it already starts with it This is useful if the repo contains headers in a directory called like the project itself and should not have any effect on other projects. --- cmake/modules/LibraryTarget.cmake | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/cmake/modules/LibraryTarget.cmake b/cmake/modules/LibraryTarget.cmake index ad34498..80ce29f 100644 --- a/cmake/modules/LibraryTarget.cmake +++ b/cmake/modules/LibraryTarget.cmake @@ -514,6 +514,13 @@ if (NOT META_NO_INSTALL_TARGETS AND ENABLE_INSTALL_TARGETS) if (NOT META_IS_PLUGIN) foreach (HEADER_FILE ${HEADER_FILES} ${ADDITIONAL_HEADER_FILES}) get_filename_component(HEADER_DIR "${HEADER_FILE}" DIRECTORY) + string(FIND "${HEADER_DIR}" "${META_PROJECT_NAME}/" HEADER_DIR_PRO) + if (HEADER_DIR STREQUAL META_PROJECT_NAME) + unset(HEADER_DIR) + elseif (HEADER_DIR_PRO EQUAL 0) + string(LENGTH "${META_PROJECT_NAME}/" HEADER_DIR_BEGIN) + string(SUBSTRING "${HEADER_DIR}" "${HEADER_DIR_BEGIN}" -1 HEADER_DIR) + endif () install( FILES "${HEADER_FILE}" DESTINATION "${INCLUDE_SUBDIR}/${META_PROJECT_NAME}/${HEADER_DIR}"