1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-05-23 16:11:40 +02:00

Fixes macOS packaging issues

* Help is installed to correct location
* dSYM file is ignored
* Fixes weird issue with Conan picking up libraries from dSYM
This commit is contained in:
Dmitry Vedenko 2021-06-25 15:52:18 +03:00
parent f8239de14c
commit 4b2b3458e8
5 changed files with 20 additions and 9 deletions

@ -74,9 +74,9 @@ jobs:
cache-name: cache-conan-modules
with:
path: ${{ env.CONAN_USER_HOME }}
key: host-2-${{ matrix.config.name }}-${{ hashFiles('cmake-proxies/CMakeLists.txt') }}
key: host-3-${{ matrix.config.name }}-${{ hashFiles('cmake-proxies/CMakeLists.txt') }}
restore-keys: |
host-2-${{ matrix.config.name }}-
host-3-${{ matrix.config.name }}-
- name: Configure
env:

@ -45,7 +45,11 @@ if( ${_OPT}package_manual )
) \
")
install( DIRECTORY "${out_dir}/${host}/" DESTINATION "help/manual" )
if( "${CMAKE_GENERATOR}" MATCHES "Xcode" )
install( DIRECTORY "${out_dir}/${host}/" DESTINATION "${_APPDIR}/help/manual" )
elseif( "${CMAKE_GENERATOR}" MATCHES "Visual Studio*" )
install( DIRECTORY "${out_dir}/${host}/" DESTINATION "help/manual" )
endif()
endif()
if( NOT CMAKE_SYSTEM_NAME MATCHES "Darwin" )

@ -36,7 +36,8 @@ if [[ "${OSTYPE}" == msys* ]]; then # Windows
find ${BIN_OUTPUT_DIR} -name '*.iobj' -o -name '*.ipdb' -o -name '*.pdb' -o -name '*.ilk' | xargs rm -f
elif [[ "${OSTYPE}" == darwin* ]]; then # macOS
find ${BIN_OUTPUT_DIR} -name '*.dSYM' | xargs -J % mv % ${SYMBOLS_OUTPUT_DIR}
find ${CONAN_USER_HOME} -name '*.dSYM' | xargs -J % cp -R % ${SYMBOLS_OUTPUT_DIR}
find ${SHARED_OUTPUT_DIR} -name '*.dSYM' | xargs -J % mv % ${SYMBOLS_OUTPUT_DIR}
find ${CONAN_USER_HOME}/dsyms -name '*.dSYM' | xargs -J % cp -R % ${SYMBOLS_OUTPUT_DIR}
else # Linux & others
chmod +x scripts/ci/linux/split_debug_symbols.sh
find ${BIN_OUTPUT_DIR} -type f -executable -o -name '*.so' | xargs -n 1 scripts/ci/linux/split_debug_symbols.sh

@ -7,14 +7,19 @@ function extractDSym()
local lib=$1
local libfile=$(basename $lib)
local libname="${libfile%.*}"
local targetdir=$(dirname $lib)
local targetdir=$2
local dsymfile=${targetdir}/${libname}.dSYM
if [[ ! -L "$lib" && "$lib" != "{}" && $lib != *"dSYM"* ]]; then
echo "Extracting dSYMs from ${libfile} to ${libname}.dSYM"
dsymutil "$lib" -o "${targetdir}/${libname}.dSYM"
if [[ -d "$dsymfile" ]]; then
echo "Skipping dSYM generation for $libfile: dSYM exists"
elif [[ ! -L "$lib" && "$lib" != "{}" && $lib != *"dSYM"* ]]; then
echo "Extracting dSYMs from $libfile to $dsymfile"
dsymutil "$lib" -o "$dsymfile"
fi
}
export -f extractDSym
find $CONAN_USER_HOME -name "*.dylib" | xargs -I {} bash -c 'extractDSym "{}"'
mkdir -p "$CONAN_USER_HOME/dsyms"
find $CONAN_USER_HOME -name "*.dylib" | xargs -I {} bash -c "extractDSym \"{}\" \"$CONAN_USER_HOME/dsyms\""

@ -1373,6 +1373,7 @@ if( "${CMAKE_GENERATOR}" MATCHES "Xcode|Visual Studio*" )
USE_SOURCE_PERMISSIONS
PATTERN "*.pdb" EXCLUDE
PATTERN "*.ilk" EXCLUDE
PATTERN "*.dSYM" EXCLUDE
)
else()
if( CMAKE_SYSTEM_NAME MATCHES "Darwin" )