mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-15 15:49:36 +02:00
90 lines
2.7 KiB
Bash
Executable File
90 lines
2.7 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
((${BASH_VERSION%%.*} >= 4)) || { echo >&2 "$0: Error: Please upgrade Bash."; exit 1; }
|
|
|
|
set -euxo pipefail
|
|
|
|
conan --version # check it works
|
|
|
|
cmake_args=(
|
|
-S .
|
|
-B build
|
|
-G "${AUDACITY_CMAKE_GENERATOR}"
|
|
-D audacity_use_pch=no
|
|
-D audacity_has_networking=yes
|
|
-D audacity_has_updates_check=yes
|
|
-D CMAKE_BUILD_TYPE="${AUDACITY_BUILD_TYPE}"
|
|
-D CMAKE_INSTALL_PREFIX="${AUDACITY_INSTALL_PREFIX}"
|
|
)
|
|
|
|
if [[ "${AUDACITY_CMAKE_GENERATOR}" == "Visual Studio"* ]]; then
|
|
cmake_args+=(
|
|
# skip unneeded configurations
|
|
-D CMAKE_CONFIGURATION_TYPES="${AUDACITY_BUILD_TYPE}"
|
|
)
|
|
case "${AUDACITY_ARCH_LABEL}" in
|
|
32bit) cmake_args+=( -A Win32 ) ;;
|
|
64bit) cmake_args+=( -A x64 ) ;;
|
|
*) echo >&2 "$0: Unrecognised arch label '${AUDACITY_ARCH_LABEL}'" ; exit 1 ;;
|
|
esac
|
|
elif [[ "${AUDACITY_CMAKE_GENERATOR}" == Xcode* ]]; then
|
|
cmake_args+=(
|
|
# skip unneeded configurations
|
|
-D CMAKE_CONFIGURATION_TYPES="${AUDACITY_BUILD_TYPE}"
|
|
-T buildsystem=1
|
|
)
|
|
fi
|
|
|
|
if [[ -n "${APPLE_CODESIGN_IDENTITY}" && "${OSTYPE}" == darwin* ]]; then
|
|
cmake_args+=(
|
|
-D APPLE_CODESIGN_IDENTITY="${APPLE_CODESIGN_IDENTITY}"
|
|
-D audacity_perform_codesign=yes
|
|
)
|
|
|
|
if [[ ${GIT_BRANCH} == release* ]]; then
|
|
cmake_args+=(
|
|
-D APPLE_NOTARIZATION_USER_NAME="${APPLE_NOTARIZATION_USER_NAME}"
|
|
-D APPLE_NOTARIZATION_PASSWORD="${APPLE_NOTARIZATION_PASSWORD}"
|
|
-D audacity_perform_notarization=yes
|
|
)
|
|
fi
|
|
elif [[ -n "${WINDOWS_CERTIFICATE}" && "${OSTYPE}" == msys* ]]; then
|
|
# Windows certificate will be used from the environment
|
|
cmake_args+=(
|
|
-D audacity_perform_codesign=yes
|
|
)
|
|
fi
|
|
|
|
if [[ ${GIT_BRANCH} == release* ]]; then
|
|
cmake_args+=(
|
|
-D audacity_package_manual=yes
|
|
-D AUDACITY_BUILD_LEVEL=2
|
|
)
|
|
fi
|
|
|
|
# Configure Audacity
|
|
cmake "${cmake_args[@]}"
|
|
|
|
if [[ "${OSTYPE}" == msys* ]]; then # Windows
|
|
# On Windows, preserve PDB files before clearing the build cache
|
|
|
|
conanUnixPath=$(cygpath ${CONAN_USER_HOME})
|
|
pdbOutputPath="${conanUnixPath}/pdbs"
|
|
|
|
ls -la ${conanUnixPath}
|
|
|
|
mkdir -p "${pdbOutputPath}"
|
|
find "${conanUnixPath}/.conan" -name '*.pdb' '!' -name "vc14?.pdb" -type f | xargs -I % cp -v % ${pdbOutputPath}
|
|
elif [[ "${OSTYPE}" == darwin* ]]; then # macOS
|
|
# On macOS - find all the .dylib files and generate dSYMs from them
|
|
# in the same folder.
|
|
# dsymutil requires *.o files, so we need to generate files before clearing
|
|
# the build directories.
|
|
|
|
chmod +x scripts/ci/macos/generate_dsym.sh
|
|
scripts/ci/macos/generate_dsym.sh
|
|
fi
|
|
|
|
# Remove build directories and sources to reduce the cache size.
|
|
conan remove "*" --src --builds --force
|