1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-15 15:49:36 +02:00
audacity/scripts/ci/configure.sh

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