mirror of
https://github.com/cookiengineer/audacity
synced 2025-08-16 08:34:10 +02:00
Fix MacOS hdiutil
CMake parallelization issue
* Make CMake builds better parallelized * Update CI Build script parallelization * Make `repeat_hdiutil.sh` take longer between repeats * Make sure that bash is the latest version on CI builds. Signed-off-by: Emily Mabrey <emabrey@tenacityaudio.org> Reference-to: https://github.com/tenacityteam/tenacity/pull/391
This commit is contained in:
parent
d8e17c5e67
commit
e06af5bb29
@ -1,7 +1,7 @@
|
|||||||
| Name | Type | Default | Description |
|
| Name | Type | Default | Description |
|
||||||
| :-------------------------------- | :----- | :--------- | :-------------------------------------------------------------- |
|
| :------------------------| :----- | :--------- | :-------------------------------------------------------------- |
|
||||||
| CMAKE_BUILD_TYPE | STRING | Debug | Type of the build: Debug, Release, RelWithDebInfo, MinSizeRel |
|
| CMAKE_BUILD_TYPE | STRING | Debug | Type of the build: Debug, Release, RelWithDebInfo, MinSizeRel |
|
||||||
| CMAKE_INSTALL_PREFIX | PATH | /usr/local | Install path prefix, prepended onto install directories. |
|
| CMAKE_INSTALL_PREFIX | PATH | /usr/local | Install path prefix, prepended onto install directories. |
|
||||||
| lib_preference | STRING | local | Library preference [system (if available), local] |
|
| lib_preference | STRING | local | Library preference [system (if available), local] |
|
||||||
| obey_system_dependencies | BOOL | Off | Use only system packages to satisfy dependencies |
|
| obey_system_dependencies | BOOL | Off | Use only system packages to satisfy dependencies |
|
||||||
| use_expat | STRING | system | Use expat library [system (if available), local, off] |
|
| use_expat | STRING | system | Use expat library [system (if available), local, off] |
|
||||||
|
@ -172,6 +172,25 @@ include( CMakeDetermineASM_NASMCompiler )
|
|||||||
include( CMakePushCheckState )
|
include( CMakePushCheckState )
|
||||||
include( GNUInstallDirs )
|
include( GNUInstallDirs )
|
||||||
include( TestBigEndian )
|
include( TestBigEndian )
|
||||||
|
include( ProcessorCount )
|
||||||
|
|
||||||
|
# Determine total number of processors to enable us to only use total_available - 1 processors
|
||||||
|
# This helps prevent slow down of the other applications during the build process
|
||||||
|
ProcessorCount( CMAKE_BUILD_CPU_COUNT )
|
||||||
|
if( CMAKE_BUILD_CPU_COUNT GREATER 0 )
|
||||||
|
math( EXPR CMAKE_BUILD_CPU_COUNT "${CMAKE_BUILD_CPU_COUNT} - 2" OUTPUT_FORMAT DECIMAL )
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if( CMAKE_BUILD_CPU_COUNT LESS_EQUAL 0 )
|
||||||
|
message( WARNING "Unable to optimize build CPU usage, defaulting to use all processors" )
|
||||||
|
set( CMAKE_BUILD_CPU_COUNT 0 )
|
||||||
|
elseif(NOT DEFINED CMAKE_BUILD_PARALLEL_LEVEL )
|
||||||
|
message( STATUS "Build automatically optimized to use processor count: ${CMAKE_BUILD_CPU_COUNT}" )
|
||||||
|
set( CMAKE_BUILD_PARALLEL_LEVEL ${CMAKE_BUILD_CPU_COUNT} )
|
||||||
|
#else()
|
||||||
|
# message( STATUS "Using CMAKE_BUILD_PARALLEL_LEVEL value to configure processor count: ${CMAKE_BUILD_PARALLEL_LEVEL}")
|
||||||
|
# set ( CMAKE_BUILD_CPU_COUNT ${CMAKE_BUILD_PARALLEL_LEVEL} )
|
||||||
|
endif()
|
||||||
|
|
||||||
# Determine 32-bit or 64-bit target
|
# Determine 32-bit or 64-bit target
|
||||||
if( CMAKE_C_COMPILER_ID MATCHES "MSVC" AND CMAKE_VS_PLATFORM_NAME MATCHES "Win64|x64" )
|
if( CMAKE_C_COMPILER_ID MATCHES "MSVC" AND CMAKE_VS_PLATFORM_NAME MATCHES "Win64|x64" )
|
||||||
@ -252,8 +271,13 @@ if( CMAKE_GENERATOR MATCHES "Visual Studio" )
|
|||||||
# Build using multiple processors
|
# Build using multiple processors
|
||||||
foreach( config ${CMAKE_CONFIGURATION_TYPES} )
|
foreach( config ${CMAKE_CONFIGURATION_TYPES} )
|
||||||
string( TOUPPER "${config}" config )
|
string( TOUPPER "${config}" config )
|
||||||
string( APPEND CMAKE_C_FLAGS_${config} " /MP" )
|
if( NOT CMAKE_BUILD_CPU_COUNT EQUAL 0 )
|
||||||
string( APPEND CMAKE_CXX_FLAGS_${config} " /MP" )
|
string( APPEND CMAKE_C_FLAGS_${config} " /MP${CMAKE_BUILD_CPU_COUNT}" )
|
||||||
|
string( APPEND CMAKE_CXX_FLAGS_${config} " /MP${CMAKE_BUILD_CPU_COUNT}" )
|
||||||
|
else()
|
||||||
|
string( APPEND CMAKE_C_FLAGS_${config} " /MP" )
|
||||||
|
string( APPEND CMAKE_CXX_FLAGS_${config} " /MP" )
|
||||||
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
# Define system library information, but we'll do the install
|
# Define system library information, but we'll do the install
|
||||||
|
@ -2,10 +2,10 @@
|
|||||||
# The target will be only generated if InnoSetup 6 is installed.
|
# The target will be only generated if InnoSetup 6 is installed.
|
||||||
|
|
||||||
find_program(
|
find_program(
|
||||||
INNO_SETUP_COMPILER
|
INNO_SETUP_COMPILER
|
||||||
NAMES iscc ISCC
|
NAMES iscc ISCC
|
||||||
HINTS
|
HINTS
|
||||||
"C:/Program Files (x86)/Inno Setup 6"
|
"C:/Program Files (x86)/Inno Setup 6"
|
||||||
"C:/Program Files/Inno Setup 6"
|
"C:/Program Files/Inno Setup 6"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -27,7 +27,8 @@ if( INNO_SETUP_COMPILER )
|
|||||||
-DSIGN=${${_OPT}perform_codesign}
|
-DSIGN=${${_OPT}perform_codesign}
|
||||||
-DWINDOWS_CERTIFICATE=${WINDOWS_CERTIFICATE}
|
-DWINDOWS_CERTIFICATE=${WINDOWS_CERTIFICATE}
|
||||||
-D WINDOWS_CERTIFICATE_PASSWORD=${WINDOWS_CERTIFICATE_PASSWORD}
|
-D WINDOWS_CERTIFICATE_PASSWORD=${WINDOWS_CERTIFICATE_PASSWORD}
|
||||||
-P "${CMAKE_SOURCE_DIR}/win/Inno_Setup_Wizard/BuildInnoSetupInstaller.cmake"
|
-P "${CMAKE_SOURCE_DIR}/win/Inno_Setup_Wizard/BuildInnoSetupInstaller.cmake"
|
||||||
|
-parallel ${CMAKE_BUILD_PARALLEL_LEVEL}
|
||||||
VERBATIM
|
VERBATIM
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -317,8 +317,13 @@ configure_file (
|
|||||||
"${CMAKE_CURRENT_BINARY_DIR}/deinstall.cmake"
|
"${CMAKE_CURRENT_BINARY_DIR}/deinstall.cmake"
|
||||||
IMMEDIATE @ONLY)
|
IMMEDIATE @ONLY)
|
||||||
|
|
||||||
add_custom_target (deinstall
|
add_custom_target (
|
||||||
COMMAND ${CMAKE_COMMAND} -P "${CMAKE_CURRENT_BINARY_DIR}/deinstall.cmake")
|
deinstall
|
||||||
|
COMMAND
|
||||||
|
${CMAKE_COMMAND}
|
||||||
|
-P "${CMAKE_CURRENT_BINARY_DIR}/deinstall.cmake"
|
||||||
|
-parallel ${CMAKE_BUILD_PARALLEL_LEVEL}
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -32,6 +32,7 @@ macro (add_cmp_test irate orate bits)
|
|||||||
add_test (NAME ${name} COMMAND ${CMAKE_COMMAND} -Dbits=${bits} -DBIN=${BIN}
|
add_test (NAME ${name} COMMAND ${CMAKE_COMMAND} -Dbits=${bits} -DBIN=${BIN}
|
||||||
-DEXAMPLES_BIN=${EXAMPLES_BIN} -DlenToSkip=${leader} -Dorate=${orate}
|
-DEXAMPLES_BIN=${EXAMPLES_BIN} -DlenToSkip=${leader} -Dorate=${orate}
|
||||||
-Dirate=${irate} -Dlen=${len} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmp-test.cmake)
|
-Dirate=${irate} -Dlen=${len} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmp-test.cmake)
|
||||||
|
-parallel ${CMAKE_BUILD_PARALLEL_LEVEL}
|
||||||
add_vector (${irate})
|
add_vector (${irate})
|
||||||
add_vector (${orate})
|
add_vector (${orate})
|
||||||
endmacro ()
|
endmacro ()
|
||||||
|
@ -462,7 +462,7 @@ IF(NOT PA_OUTPUT_OSX_FRAMEWORK AND NOT PA_DISABLE_INSTALL)
|
|||||||
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
"${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake"
|
||||||
IMMEDIATE @ONLY)
|
IMMEDIATE @ONLY)
|
||||||
ADD_CUSTOM_TARGET(uninstall
|
ADD_CUSTOM_TARGET(uninstall
|
||||||
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake)
|
COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) -parallel ${CMAKE_BUILD_PARALLEL_LEVEL}
|
||||||
ENDIF()
|
ENDIF()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
@ -18,8 +18,12 @@ else # Linux & others
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
export CMAKE_BUILD_PARALLEL_LEVEL=$(( ${cpus} > 2 ? $((${cpus} - 2)) : ${cpus} ))
|
||||||
|
|
||||||
|
echo "Using ${CMAKE_BUILD_PARALLEL_LEVEL} processors for cmake build"
|
||||||
|
|
||||||
# Build Audacity
|
# Build Audacity
|
||||||
cmake --build build -j "${cpus}" --config "${AUDACITY_BUILD_TYPE}"
|
cmake --build build --config "${AUDACITY_BUILD_TYPE}"
|
||||||
|
|
||||||
BIN_OUTPUT_DIR=build/bin/${AUDACITY_BUILD_TYPE}
|
BIN_OUTPUT_DIR=build/bin/${AUDACITY_BUILD_TYPE}
|
||||||
SYMBOLS_OUTPUT_DIR=debug
|
SYMBOLS_OUTPUT_DIR=debug
|
||||||
@ -29,7 +33,7 @@ mkdir ${SYMBOLS_OUTPUT_DIR}
|
|||||||
if [[ "${OSTYPE}" == msys* ]]; then # Windows
|
if [[ "${OSTYPE}" == msys* ]]; then # Windows
|
||||||
# copy PDBs to debug folder...
|
# copy PDBs to debug folder...
|
||||||
find ${BIN_OUTPUT_DIR} -name '*.pdb' | xargs -I % cp % ${SYMBOLS_OUTPUT_DIR}
|
find ${BIN_OUTPUT_DIR} -name '*.pdb' | xargs -I % cp % ${SYMBOLS_OUTPUT_DIR}
|
||||||
# and remove debug symbol files from the file tree before archieving
|
# and remove debug symbol files from the file tree before archiving
|
||||||
find ${BIN_OUTPUT_DIR} -name '*.iobj' -o -name '*.ipdb' -o -name '*.pdb' -o -name '*.ilk' | xargs rm -f
|
find ${BIN_OUTPUT_DIR} -name '*.iobj' -o -name '*.ipdb' -o -name '*.pdb' -o -name '*.ilk' | xargs rm -f
|
||||||
elif [[ "${OSTYPE}" == darwin* ]]; then # macOS
|
elif [[ "${OSTYPE}" == darwin* ]]; then # macOS
|
||||||
find ${BIN_OUTPUT_DIR} -name '*.dSYM' | xargs -J % mv % ${SYMBOLS_OUTPUT_DIR}
|
find ${BIN_OUTPUT_DIR} -name '*.dSYM' | xargs -J % mv % ${SYMBOLS_OUTPUT_DIR}
|
||||||
|
@ -10,7 +10,7 @@ if [[ "${OSTYPE}" == msys* ]]; then # Windows
|
|||||||
|
|
||||||
# Chocolatey packages
|
# Chocolatey packages
|
||||||
choco_packages=(
|
choco_packages=(
|
||||||
sccache
|
sccache
|
||||||
conan
|
conan
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -44,6 +44,7 @@ else # Linux & others
|
|||||||
g++
|
g++
|
||||||
git
|
git
|
||||||
wget
|
wget
|
||||||
|
bash
|
||||||
|
|
||||||
# GitHub Actions
|
# GitHub Actions
|
||||||
libasound2-dev
|
libasound2-dev
|
||||||
@ -53,7 +54,7 @@ else # Linux & others
|
|||||||
)
|
)
|
||||||
sudo apt-get update -y
|
sudo apt-get update -y
|
||||||
sudo apt-get install -y --no-install-recommends "${apt_packages[@]}"
|
sudo apt-get install -y --no-install-recommends "${apt_packages[@]}"
|
||||||
|
|
||||||
# Download Conan from github
|
# Download Conan from github
|
||||||
wget "https://github.com/conan-io/conan/releases/latest/download/conan-ubuntu-64.deb" -nv -O /tmp/conan.deb
|
wget "https://github.com/conan-io/conan/releases/latest/download/conan-ubuntu-64.deb" -nv -O /tmp/conan.deb
|
||||||
sudo dpkg -i /tmp/conan.deb
|
sudo dpkg -i /tmp/conan.deb
|
||||||
|
@ -6,7 +6,7 @@ set -uo pipefail
|
|||||||
|
|
||||||
max_retry=5
|
max_retry=5
|
||||||
counter=0
|
counter=0
|
||||||
num_secs_await_retry=1
|
num_secs_await_retry=5
|
||||||
|
|
||||||
echo "Trying: " /usr/bin/hdiutil "$@"
|
echo "Trying: " /usr/bin/hdiutil "$@"
|
||||||
|
|
||||||
|
@ -1145,6 +1145,8 @@ if( CMAKE_SYSTEM_NAME MATCHES "Windows" )
|
|||||||
-D DST="${_EXEDIR}"
|
-D DST="${_EXEDIR}"
|
||||||
-D WXWIN="${_SHARED_PROXY_BASE_PATH}/$<CONFIG>/"
|
-D WXWIN="${_SHARED_PROXY_BASE_PATH}/$<CONFIG>/"
|
||||||
-P ${AUDACITY_MODULE_PATH}/CopyLibs.cmake
|
-P ${AUDACITY_MODULE_PATH}/CopyLibs.cmake
|
||||||
|
-parallel ${CMAKE_BUILD_PARALLEL_LEVEL}
|
||||||
|
|
||||||
POST_BUILD
|
POST_BUILD
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -1234,6 +1236,7 @@ elseif( CMAKE_SYSTEM_NAME MATCHES "Darwin" )
|
|||||||
-D DST="${_PKGLIB}"
|
-D DST="${_PKGLIB}"
|
||||||
-D WXWIN="${_SHARED_PROXY_BASE_PATH}/$<CONFIG>"
|
-D WXWIN="${_SHARED_PROXY_BASE_PATH}/$<CONFIG>"
|
||||||
-P ${AUDACITY_MODULE_PATH}/CopyLibs.cmake
|
-P ${AUDACITY_MODULE_PATH}/CopyLibs.cmake
|
||||||
|
-parallel ${CMAKE_BUILD_PARALLEL_LEVEL}
|
||||||
POST_BUILD
|
POST_BUILD
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -1303,6 +1306,7 @@ else()
|
|||||||
-D DST="${_DEST}/${_PKGLIB}"
|
-D DST="${_DEST}/${_PKGLIB}"
|
||||||
-D WXWIN="${_SHARED_PROXY_BASE_PATH}/$<CONFIG>"
|
-D WXWIN="${_SHARED_PROXY_BASE_PATH}/$<CONFIG>"
|
||||||
-P ${AUDACITY_MODULE_PATH}/CopyLibs.cmake
|
-P ${AUDACITY_MODULE_PATH}/CopyLibs.cmake
|
||||||
|
-parallel ${CMAKE_BUILD_PARALLEL_LEVEL}
|
||||||
POST_BUILD
|
POST_BUILD
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user