diff --git a/cmake/modules/InstallationHelper.cmake b/cmake/modules/InstallationHelper.cmake --- a/cmake/modules/InstallationHelper.cmake +++ b/cmake/modules/InstallationHelper.cmake @@ -37,6 +37,8 @@ "${CMAKE_SOURCE_DIR}/cmake/utils/split-installed-component.sh" "${CMAKE_BINARY_DIR}/contrib/devtools/split-debug.sh" "${CMAKE_BINARY_DIR}/install_manifest_${COMPONENT}.txt" + "${CMAKE_INSTALL_BINDIR}" + "${CMAKE_INSTALL_LIBDIR}" DEPENDS "${INSTALL_TARGET}" "${CMAKE_BINARY_DIR}/contrib/devtools/split-debug.sh" diff --git a/cmake/utils/split-installed-component.sh b/cmake/utils/split-installed-component.sh --- a/cmake/utils/split-installed-component.sh +++ b/cmake/utils/split-installed-component.sh @@ -4,10 +4,31 @@ SPLIT_SCRIPT="$1" INSTALL_MANIFEST="$2" +shift 2 + +should_strip() { + FILE="$1" + shift + + if [ -L "${FILE}" ] + then + return 1 + fi + + for DIR in "$@" + do + if [ "$(basename $(dirname "${FILE}"))" = "${DIR}" ] + then + return 0 + fi + done + + return 2 +} while IFS= read -r FILE || [ -n "$FILE" ] do - if [ ! -L "${FILE}" ] && [ -x "${FILE}" ] + if should_strip "${FILE}" "$@" then echo "Splitting debug symbols out of ${FILE}" "${SPLIT_SCRIPT}" "${FILE}" "${FILE}" "${FILE}.dbg" > /dev/null 2>&1