diff --git a/.azure-pipelines/azure-pipelines-linux.yml b/.azure-pipelines/azure-pipelines-linux.yml index 54eb8385..a071fa4f 100755 --- a/.azure-pipelines/azure-pipelines-linux.yml +++ b/.azure-pipelines/azure-pipelines-linux.yml @@ -12,18 +12,22 @@ jobs: CONFIG: linux_64_OGRE_VERSION1.10 UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + SHORT_CONFIG: linux_64_OGRE_VERSION1.10 linux_64_OGRE_VERSION1.12: CONFIG: linux_64_OGRE_VERSION1.12 UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + SHORT_CONFIG: linux_64_OGRE_VERSION1.12 linux_aarch64_OGRE_VERSION1.10: CONFIG: linux_aarch64_OGRE_VERSION1.10 UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + SHORT_CONFIG: linux_aarch64_OGRE_VERSION1.10 linux_aarch64_OGRE_VERSION1.12: CONFIG: linux_aarch64_OGRE_VERSION1.12 UPLOAD_PACKAGES: 'True' DOCKER_IMAGE: quay.io/condaforge/linux-anvil-cos7-x86_64 + SHORT_CONFIG: linux_aarch64_OGRE_VERSION1.12 timeoutInMinutes: 360 steps: @@ -54,4 +58,33 @@ jobs: env: BINSTAR_TOKEN: $(BINSTAR_TOKEN) FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) \ No newline at end of file + STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) + - script: | + export CI=azure + export CI_RUN_ID=$(build.BuildNumber).$(system.JobAttempt) + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + export CONDA_BLD_DIR=build_artifacts + export ARTIFACT_STAGING_DIR="$(Build.ArtifactStagingDirectory)" + # Archive everything in CONDA_BLD_DIR except environments + export BLD_ARTIFACT_PREFIX=conda_artifacts + if [[ "$AGENT_JOBSTATUS" == "Failed" ]]; then + # Archive the CONDA_BLD_DIR environments only when the job fails + export ENV_ARTIFACT_PREFIX=conda_envs + fi + ./.scripts/create_conda_build_artifacts.sh + displayName: Prepare conda build artifacts + condition: succeededOrFailed() + + - task: PublishPipelineArtifact@1 + displayName: Store conda build artifacts + condition: not(eq(variables.BLD_ARTIFACT_PATH, '')) + inputs: + targetPath: $(BLD_ARTIFACT_PATH) + artifactName: $(BLD_ARTIFACT_NAME) + + - task: PublishPipelineArtifact@1 + displayName: Store conda build environment artifacts + condition: not(eq(variables.ENV_ARTIFACT_PATH, '')) + inputs: + targetPath: $(ENV_ARTIFACT_PATH) + artifactName: $(ENV_ARTIFACT_NAME) \ No newline at end of file diff --git a/.azure-pipelines/azure-pipelines-osx.yml b/.azure-pipelines/azure-pipelines-osx.yml index 553bd419..b2ff8954 100755 --- a/.azure-pipelines/azure-pipelines-osx.yml +++ b/.azure-pipelines/azure-pipelines-osx.yml @@ -11,15 +11,19 @@ jobs: osx_64_OGRE_VERSION1.10: CONFIG: osx_64_OGRE_VERSION1.10 UPLOAD_PACKAGES: 'True' + SHORT_CONFIG: osx_64_OGRE_VERSION1.10 osx_64_OGRE_VERSION1.12: CONFIG: osx_64_OGRE_VERSION1.12 UPLOAD_PACKAGES: 'True' + SHORT_CONFIG: osx_64_OGRE_VERSION1.12 osx_arm64_OGRE_VERSION1.10: CONFIG: osx_arm64_OGRE_VERSION1.10 UPLOAD_PACKAGES: 'True' + SHORT_CONFIG: osx_arm64_OGRE_VERSION1.10 osx_arm64_OGRE_VERSION1.12: CONFIG: osx_arm64_OGRE_VERSION1.12 UPLOAD_PACKAGES: 'True' + SHORT_CONFIG: osx_arm64_OGRE_VERSION1.12 timeoutInMinutes: 360 steps: @@ -39,4 +43,33 @@ jobs: env: BINSTAR_TOKEN: $(BINSTAR_TOKEN) FEEDSTOCK_TOKEN: $(FEEDSTOCK_TOKEN) - STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) \ No newline at end of file + STAGING_BINSTAR_TOKEN: $(STAGING_BINSTAR_TOKEN) + - script: | + export CI=azure + export CI_RUN_ID=$(build.BuildNumber).$(system.JobAttempt) + export FEEDSTOCK_NAME=$(basename ${BUILD_REPOSITORY_NAME}) + export CONDA_BLD_DIR=/Users/runner/miniforge3/conda-bld + export ARTIFACT_STAGING_DIR="$(Build.ArtifactStagingDirectory)" + # Archive everything in CONDA_BLD_DIR except environments + export BLD_ARTIFACT_PREFIX=conda_artifacts + if [[ "$AGENT_JOBSTATUS" == "Failed" ]]; then + # Archive the CONDA_BLD_DIR environments only when the job fails + export ENV_ARTIFACT_PREFIX=conda_envs + fi + ./.scripts/create_conda_build_artifacts.sh + displayName: Prepare conda build artifacts + condition: succeededOrFailed() + + - task: PublishPipelineArtifact@1 + displayName: Store conda build artifacts + condition: not(eq(variables.BLD_ARTIFACT_PATH, '')) + inputs: + targetPath: $(BLD_ARTIFACT_PATH) + artifactName: $(BLD_ARTIFACT_NAME) + + - task: PublishPipelineArtifact@1 + displayName: Store conda build environment artifacts + condition: not(eq(variables.ENV_ARTIFACT_PATH, '')) + inputs: + targetPath: $(ENV_ARTIFACT_PATH) + artifactName: $(ENV_ARTIFACT_NAME) \ No newline at end of file diff --git a/.azure-pipelines/azure-pipelines-win.yml b/.azure-pipelines/azure-pipelines-win.yml index bcf6d38d..c240097b 100755 --- a/.azure-pipelines/azure-pipelines-win.yml +++ b/.azure-pipelines/azure-pipelines-win.yml @@ -11,9 +11,11 @@ jobs: win_64_OGRE_VERSION1.10: CONFIG: win_64_OGRE_VERSION1.10 UPLOAD_PACKAGES: 'True' + SHORT_CONFIG: win_64_OGRE_VERSION1.10 win_64_OGRE_VERSION1.12: CONFIG: win_64_OGRE_VERSION1.12 UPLOAD_PACKAGES: 'True' + SHORT_CONFIG: win_64_OGRE_VERSION1.12 timeoutInMinutes: 360 variables: CONDA_BLD_PATH: D:\\bld\\ @@ -38,7 +40,7 @@ jobs: - script: | call activate base - mamba.exe install 'python=3.9' conda-build conda pip boa 'conda-forge-ci-setup=3' -c conda-forge --strict-channel-priority --yes + mamba.exe install 'python=3.9' conda-build conda pip boa 'liblief=0.11.5 conda-forge-ci-setup=3' -c conda-forge --strict-channel-priority --yes displayName: Install conda-build - script: set PYTHONUNBUFFERED=1 @@ -66,6 +68,33 @@ jobs: displayName: Build recipe env: PYTHONUNBUFFERED: 1 + - script: | + set CI=azure + set CI_RUN_ID=$(build.BuildNumber).$(system.JobAttempt) + set FEEDSTOCK_NAME=$(build.Repository.Name) + set ARTIFACT_STAGING_DIR=$(Build.ArtifactStagingDirectory) + set CONDA_BLD_DIR=$(CONDA_BLD_PATH) + set BLD_ARTIFACT_PREFIX=conda_artifacts + if "%AGENT_JOBSTATUS%" == "Failed" ( + set ENV_ARTIFACT_PREFIX=conda_envs + ) + call ".scripts\create_conda_build_artifacts.bat" + displayName: Prepare conda build artifacts + condition: succeededOrFailed() + + - task: PublishPipelineArtifact@1 + displayName: Store conda build artifacts + condition: not(eq(variables.BLD_ARTIFACT_PATH, '')) + inputs: + targetPath: $(BLD_ARTIFACT_PATH) + artifactName: $(BLD_ARTIFACT_NAME) + + - task: PublishPipelineArtifact@1 + displayName: Store conda build environment artifacts + condition: not(eq(variables.ENV_ARTIFACT_PATH, '')) + inputs: + targetPath: $(ENV_ARTIFACT_PATH) + artifactName: $(ENV_ARTIFACT_NAME) - script: | set "FEEDSTOCK_NAME=%BUILD_REPOSITORY_NAME:*/=%" call activate base diff --git a/.ci_support/linux_64_OGRE_VERSION1.10.yaml b/.ci_support/linux_64_OGRE_VERSION1.10.yaml index c49be5cc..734ea6d2 100644 --- a/.ci_support/linux_64_OGRE_VERSION1.10.yaml +++ b/.ci_support/linux_64_OGRE_VERSION1.10.yaml @@ -43,16 +43,8 @@ libuuid: pin_run_as_build: boost-cpp: max_pin: x.x.x - curl: - max_pin: x graphviz: max_pin: x - libcurl: - max_pin: x - libgdal: - max_pin: x.x - libuuid: - max_pin: x qt_main: - '5.15' target_platform: diff --git a/.ci_support/linux_64_OGRE_VERSION1.12.yaml b/.ci_support/linux_64_OGRE_VERSION1.12.yaml index 401c9810..8dd9c5a8 100644 --- a/.ci_support/linux_64_OGRE_VERSION1.12.yaml +++ b/.ci_support/linux_64_OGRE_VERSION1.12.yaml @@ -43,16 +43,8 @@ libuuid: pin_run_as_build: boost-cpp: max_pin: x.x.x - curl: - max_pin: x graphviz: max_pin: x - libcurl: - max_pin: x - libgdal: - max_pin: x.x - libuuid: - max_pin: x qt_main: - '5.15' target_platform: diff --git a/.ci_support/linux_aarch64_OGRE_VERSION1.10.yaml b/.ci_support/linux_aarch64_OGRE_VERSION1.10.yaml index ca91133c..a0896692 100644 --- a/.ci_support/linux_aarch64_OGRE_VERSION1.10.yaml +++ b/.ci_support/linux_aarch64_OGRE_VERSION1.10.yaml @@ -47,16 +47,8 @@ libuuid: pin_run_as_build: boost-cpp: max_pin: x.x.x - curl: - max_pin: x graphviz: max_pin: x - libcurl: - max_pin: x - libgdal: - max_pin: x.x - libuuid: - max_pin: x qt_main: - '5.15' target_platform: diff --git a/.ci_support/linux_aarch64_OGRE_VERSION1.12.yaml b/.ci_support/linux_aarch64_OGRE_VERSION1.12.yaml index 7fd6dc56..2f78d80a 100644 --- a/.ci_support/linux_aarch64_OGRE_VERSION1.12.yaml +++ b/.ci_support/linux_aarch64_OGRE_VERSION1.12.yaml @@ -47,16 +47,8 @@ libuuid: pin_run_as_build: boost-cpp: max_pin: x.x.x - curl: - max_pin: x graphviz: max_pin: x - libcurl: - max_pin: x - libgdal: - max_pin: x.x - libuuid: - max_pin: x qt_main: - '5.15' target_platform: diff --git a/.ci_support/migrations/graphviz6.yaml b/.ci_support/migrations/graphviz6.yaml deleted file mode 100644 index d590d4bc..00000000 --- a/.ci_support/migrations/graphviz6.yaml +++ /dev/null @@ -1,7 +0,0 @@ -__migrator: - build_number: 1 - kind: version - migration_number: 1 -graphviz: -- '6' -migrator_ts: 1662854030.4341326 diff --git a/.ci_support/osx_64_OGRE_VERSION1.10.yaml b/.ci_support/osx_64_OGRE_VERSION1.10.yaml index f9c56ffb..9e601e06 100644 --- a/.ci_support/osx_64_OGRE_VERSION1.10.yaml +++ b/.ci_support/osx_64_OGRE_VERSION1.10.yaml @@ -1,5 +1,5 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.14' +- '10.15' OGRE_VERSION: - '1.10' assimp: @@ -41,22 +41,12 @@ libprotobuf: macos_machine: - x86_64-apple-darwin13.4.0 macos_min_version: -- '10.14' +- '10.15' pin_run_as_build: boost-cpp: max_pin: x.x.x - bzip2: - max_pin: x - curl: - max_pin: x graphviz: max_pin: x - libcurl: - max_pin: x - libgdal: - max_pin: x.x - zlib: - max_pin: x.x qt_main: - '5.15' target_platform: diff --git a/.ci_support/osx_64_OGRE_VERSION1.12.yaml b/.ci_support/osx_64_OGRE_VERSION1.12.yaml index b074a890..8fb24bdc 100644 --- a/.ci_support/osx_64_OGRE_VERSION1.12.yaml +++ b/.ci_support/osx_64_OGRE_VERSION1.12.yaml @@ -1,5 +1,5 @@ MACOSX_DEPLOYMENT_TARGET: -- '10.14' +- '10.15' OGRE_VERSION: - '1.12' assimp: @@ -41,22 +41,12 @@ libprotobuf: macos_machine: - x86_64-apple-darwin13.4.0 macos_min_version: -- '10.14' +- '10.15' pin_run_as_build: boost-cpp: max_pin: x.x.x - bzip2: - max_pin: x - curl: - max_pin: x graphviz: max_pin: x - libcurl: - max_pin: x - libgdal: - max_pin: x.x - zlib: - max_pin: x.x qt_main: - '5.15' target_platform: diff --git a/.ci_support/osx_arm64_OGRE_VERSION1.10.yaml b/.ci_support/osx_arm64_OGRE_VERSION1.10.yaml index 1028026c..e703a4ef 100644 --- a/.ci_support/osx_arm64_OGRE_VERSION1.10.yaml +++ b/.ci_support/osx_arm64_OGRE_VERSION1.10.yaml @@ -43,18 +43,8 @@ macos_machine: pin_run_as_build: boost-cpp: max_pin: x.x.x - bzip2: - max_pin: x - curl: - max_pin: x graphviz: max_pin: x - libcurl: - max_pin: x - libgdal: - max_pin: x.x - zlib: - max_pin: x.x qt_main: - '5.15' target_platform: diff --git a/.ci_support/osx_arm64_OGRE_VERSION1.12.yaml b/.ci_support/osx_arm64_OGRE_VERSION1.12.yaml index 35407d1c..65b7ddfa 100644 --- a/.ci_support/osx_arm64_OGRE_VERSION1.12.yaml +++ b/.ci_support/osx_arm64_OGRE_VERSION1.12.yaml @@ -43,18 +43,8 @@ macos_machine: pin_run_as_build: boost-cpp: max_pin: x.x.x - bzip2: - max_pin: x - curl: - max_pin: x graphviz: max_pin: x - libcurl: - max_pin: x - libgdal: - max_pin: x.x - zlib: - max_pin: x.x qt_main: - '5.15' target_platform: diff --git a/.ci_support/win_64_OGRE_VERSION1.10.yaml b/.ci_support/win_64_OGRE_VERSION1.10.yaml index 1a371bb5..ee64a28d 100644 --- a/.ci_support/win_64_OGRE_VERSION1.10.yaml +++ b/.ci_support/win_64_OGRE_VERSION1.10.yaml @@ -31,12 +31,6 @@ libprotobuf: pin_run_as_build: boost-cpp: max_pin: x.x.x - curl: - max_pin: x - libcurl: - max_pin: x - libgdal: - max_pin: x.x qt_main: - '5.15' target_platform: diff --git a/.ci_support/win_64_OGRE_VERSION1.12.yaml b/.ci_support/win_64_OGRE_VERSION1.12.yaml index bed6d60f..1ba8f60b 100644 --- a/.ci_support/win_64_OGRE_VERSION1.12.yaml +++ b/.ci_support/win_64_OGRE_VERSION1.12.yaml @@ -31,12 +31,6 @@ libprotobuf: pin_run_as_build: boost-cpp: max_pin: x.x.x - curl: - max_pin: x - libcurl: - max_pin: x - libgdal: - max_pin: x.x qt_main: - '5.15' target_platform: diff --git a/.scripts/build_steps.sh b/.scripts/build_steps.sh index b138b735..463bf1d7 100755 --- a/.scripts/build_steps.sh +++ b/.scripts/build_steps.sh @@ -33,9 +33,9 @@ CONDARC mamba install --update-specs --yes --quiet --channel conda-forge \ - conda-build pip boa conda-forge-ci-setup=3 + conda-build pip boa liblief=0.11.5 conda-forge-ci-setup=3 mamba update --update-specs --yes --quiet --channel conda-forge \ - conda-build pip boa conda-forge-ci-setup=3 + conda-build pip boa liblief=0.11.5 conda-forge-ci-setup=3 # set up the condarc setup_conda_rc "${FEEDSTOCK_ROOT}" "${RECIPE_ROOT}" "${CONFIG_FILE}" diff --git a/.scripts/create_conda_build_artifacts.bat b/.scripts/create_conda_build_artifacts.bat new file mode 100755 index 00000000..79ce625d --- /dev/null +++ b/.scripts/create_conda_build_artifacts.bat @@ -0,0 +1,80 @@ +setlocal enableextensions enabledelayedexpansion + +rem INPUTS (environment variables that need to be set before calling this script): +rem +rem CI (azure/github_actions/UNSET) +rem CI_RUN_ID (unique identifier for the CI job run) +rem FEEDSTOCK_NAME +rem CONFIG (build matrix configuration string) +rem SHORT_CONFIG (uniquely-shortened configuration string) +rem CONDA_BLD_DIR (path to the conda-bld directory) +rem ARTIFACT_STAGING_DIR (use working directory if unset) +rem BLD_ARTIFACT_PREFIX (prefix for the conda build artifact name, skip if unset) +rem ENV_ARTIFACT_PREFIX (prefix for the conda build environments artifact name, skip if unset) + +rem OUTPUTS +rem +rem BLD_ARTIFACT_NAME +rem BLD_ARTIFACT_PATH +rem ENV_ARTIFACT_NAME +rem ENV_ARTIFACT_PATH + +rem Check that the conda-build directory exists +if not exist %CONDA_BLD_DIR% ( + echo conda-build directory does not exist + exit 1 +) + +if not defined ARTIFACT_STAGING_DIR ( + rem Set staging dir to the working dir + set ARTIFACT_STAGING_DIR=%cd% +) + +rem Set a unique ID for the artifact(s), specialized for this particular job run +set ARTIFACT_UNIQUE_ID=%CI_RUN_ID%_%CONFIG% +if not "%ARTIFACT_UNIQUE_ID%" == "%ARTIFACT_UNIQUE_ID:~0,80%" ( + set ARTIFACT_UNIQUE_ID=%CI_RUN_ID%_%SHORT_CONFIG% +) + +rem Set a descriptive ID for the archive(s), specialized for this particular job run +set ARCHIVE_UNIQUE_ID=%CI_RUN_ID%_%CONFIG% + +rem Make the build artifact zip +if defined BLD_ARTIFACT_PREFIX ( + set BLD_ARTIFACT_NAME=%BLD_ARTIFACT_PREFIX%_%ARTIFACT_UNIQUE_ID% + echo BLD_ARTIFACT_NAME: !BLD_ARTIFACT_NAME! + + set "BLD_ARTIFACT_PATH=%ARTIFACT_STAGING_DIR%\%FEEDSTOCK_NAME%_%BLD_ARTIFACT_PREFIX%_%ARCHIVE_UNIQUE_ID%.zip" + 7z a "!BLD_ARTIFACT_PATH!" "%CONDA_BLD_DIR%" -xr^^!.git/ -xr^^!_*_env*/ -xr^^!*_cache/ -bb + if errorlevel 1 exit 1 + echo BLD_ARTIFACT_PATH: !BLD_ARTIFACT_PATH! + + if "%CI%" == "azure" ( + echo ##vso[task.setVariable variable=BLD_ARTIFACT_NAME]!BLD_ARTIFACT_NAME! + echo ##vso[task.setVariable variable=BLD_ARTIFACT_PATH]!BLD_ARTIFACT_PATH! + ) + if "%CI%" == "github_actions" ( + echo ::set-output name=BLD_ARTIFACT_NAME::!BLD_ARTIFACT_NAME! + echo ::set-output name=BLD_ARTIFACT_PATH::!BLD_ARTIFACT_PATH! + ) +) + +rem Make the environments artifact zip +if defined ENV_ARTIFACT_PREFIX ( + set ENV_ARTIFACT_NAME=!ENV_ARTIFACT_PREFIX!_%ARTIFACT_UNIQUE_ID% + echo ENV_ARTIFACT_NAME: !ENV_ARTIFACT_NAME! + + set "ENV_ARTIFACT_PATH=%ARTIFACT_STAGING_DIR%\%FEEDSTOCK_NAME%_%ENV_ARTIFACT_PREFIX%_%ARCHIVE_UNIQUE_ID%.zip" + 7z a "!ENV_ARTIFACT_PATH!" -r "%CONDA_BLD_DIR%"/_*_env*/ -bb + if errorlevel 1 exit 1 + echo ENV_ARTIFACT_PATH: !ENV_ARTIFACT_PATH! + + if "%CI%" == "azure" ( + echo ##vso[task.setVariable variable=ENV_ARTIFACT_NAME]!ENV_ARTIFACT_NAME! + echo ##vso[task.setVariable variable=ENV_ARTIFACT_PATH]!ENV_ARTIFACT_PATH! + ) + if "%CI%" == "github_actions" ( + echo ::set-output name=ENV_ARTIFACT_NAME::!ENV_ARTIFACT_NAME! + echo ::set-output name=ENV_ARTIFACT_PATH::!ENV_ARTIFACT_PATH! + ) +) \ No newline at end of file diff --git a/.scripts/create_conda_build_artifacts.sh b/.scripts/create_conda_build_artifacts.sh new file mode 100755 index 00000000..cba0faee --- /dev/null +++ b/.scripts/create_conda_build_artifacts.sh @@ -0,0 +1,113 @@ +#!/usr/bin/env bash + +# INPUTS (environment variables that need to be set before calling this script): +# +# CI (azure/github_actions/UNSET) +# CI_RUN_ID (unique identifier for the CI job run) +# FEEDSTOCK_NAME +# CONFIG (build matrix configuration string) +# SHORT_CONFIG (uniquely-shortened configuration string) +# CONDA_BLD_DIR (path to the conda-bld directory) +# ARTIFACT_STAGING_DIR (use working directory if unset) +# BLD_ARTIFACT_PREFIX (prefix for the conda build artifact name, skip if unset) +# ENV_ARTIFACT_PREFIX (prefix for the conda build environments artifact name, skip if unset) + +# OUTPUTS +# +# BLD_ARTIFACT_NAME +# BLD_ARTIFACT_PATH +# ENV_ARTIFACT_NAME +# ENV_ARTIFACT_PATH + +source .scripts/logging_utils.sh + +# DON'T do set -x, because it results in double echo-ing pipeline commands +# and that might end up inserting extraneous quotation marks in output variables +set -e + +# Check that the conda-build directory exists +if [ ! -d "$CONDA_BLD_DIR" ]; then + echo "conda-build directory does not exist" + exit 1 +fi + +# Set staging dir to the working dir, in Windows style if applicable +if [[ -z "${ARTIFACT_STAGING_DIR}" ]]; then + if pwd -W; then + ARTIFACT_STAGING_DIR=$(pwd -W) + else + ARTIFACT_STAGING_DIR=$PWD + fi +fi +echo "ARTIFACT_STAGING_DIR: $ARTIFACT_STAGING_DIR" + +FEEDSTOCK_ROOT=$(cd "$(dirname "$0")/.."; pwd;) +if [ -z ${FEEDSTOCK_NAME} ]; then + export FEEDSTOCK_NAME=$(basename ${FEEDSTOCK_ROOT}) +fi + +# Set a unique ID for the artifact(s), specialized for this particular job run +ARTIFACT_UNIQUE_ID="${CI_RUN_ID}_${CONFIG}" +if [[ ${#ARTIFACT_UNIQUE_ID} -gt 80 ]]; then + ARTIFACT_UNIQUE_ID="${CI_RUN_ID}_${SHORT_CONFIG}" +fi +echo "ARTIFACT_UNIQUE_ID: $ARTIFACT_UNIQUE_ID" + +# Set a descriptive ID for the archive(s), specialized for this particular job run +ARCHIVE_UNIQUE_ID="${CI_RUN_ID}_${CONFIG}" + +# Make the build artifact zip +if [[ ! -z "$BLD_ARTIFACT_PREFIX" ]]; then + export BLD_ARTIFACT_NAME="${BLD_ARTIFACT_PREFIX}_${ARTIFACT_UNIQUE_ID}" + export BLD_ARTIFACT_PATH="${ARTIFACT_STAGING_DIR}/${FEEDSTOCK_NAME}_${BLD_ARTIFACT_PREFIX}_${ARCHIVE_UNIQUE_ID}.zip" + + ( startgroup "Archive conda build directory" ) 2> /dev/null + + # Try 7z and fall back to zip if it fails (for cross-platform use) + if ! 7z a "$BLD_ARTIFACT_PATH" "$CONDA_BLD_DIR" '-xr!.git/' '-xr!_*_env*/' '-xr!*_cache/' -bb; then + pushd "$CONDA_BLD_DIR" + zip -r -y -T "$BLD_ARTIFACT_PATH" . -x '*.git/*' '*_*_env*/*' '*_cache/*' + popd + fi + + ( endgroup "Archive conda build directory" ) 2> /dev/null + + echo "BLD_ARTIFACT_NAME: $BLD_ARTIFACT_NAME" + echo "BLD_ARTIFACT_PATH: $BLD_ARTIFACT_PATH" + + if [[ "$CI" == "azure" ]]; then + echo "##vso[task.setVariable variable=BLD_ARTIFACT_NAME]$BLD_ARTIFACT_NAME" + echo "##vso[task.setVariable variable=BLD_ARTIFACT_PATH]$BLD_ARTIFACT_PATH" + elif [[ "$CI" == "github_actions" ]]; then + echo "::set-output name=BLD_ARTIFACT_NAME::$BLD_ARTIFACT_NAME" + echo "::set-output name=BLD_ARTIFACT_PATH::$BLD_ARTIFACT_PATH" + fi +fi + +# Make the environments artifact zip +if [[ ! -z "$ENV_ARTIFACT_PREFIX" ]]; then + export ENV_ARTIFACT_NAME="${ENV_ARTIFACT_PREFIX}_${ARTIFACT_UNIQUE_ID}" + export ENV_ARTIFACT_PATH="${ARTIFACT_STAGING_DIR}/${FEEDSTOCK_NAME}_${ENV_ARTIFACT_PREFIX}_${ARCHIVE_UNIQUE_ID}.zip" + + ( startgroup "Archive conda build environments" ) 2> /dev/null + + # Try 7z and fall back to zip if it fails (for cross-platform use) + if ! 7z a "$ENV_ARTIFACT_PATH" -r "$CONDA_BLD_DIR"/'_*_env*/' -bb; then + pushd "$CONDA_BLD_DIR" + zip -r -y -T "$ENV_ARTIFACT_PATH" . -i '*_*_env*/*' + popd + fi + + ( endgroup "Archive conda build environments" ) 2> /dev/null + + echo "ENV_ARTIFACT_NAME: $ENV_ARTIFACT_NAME" + echo "ENV_ARTIFACT_PATH: $ENV_ARTIFACT_PATH" + + if [[ "$CI" == "azure" ]]; then + echo "##vso[task.setVariable variable=ENV_ARTIFACT_NAME]$ENV_ARTIFACT_NAME" + echo "##vso[task.setVariable variable=ENV_ARTIFACT_PATH]$ENV_ARTIFACT_PATH" + elif [[ "$CI" == "github_actions" ]]; then + echo "::set-output name=ENV_ARTIFACT_NAME::$ENV_ARTIFACT_NAME" + echo "::set-output name=ENV_ARTIFACT_PATH::$ENV_ARTIFACT_PATH" + fi +fi \ No newline at end of file diff --git a/.scripts/run_osx_build.sh b/.scripts/run_osx_build.sh index 736a39a0..65cbdd91 100755 --- a/.scripts/run_osx_build.sh +++ b/.scripts/run_osx_build.sh @@ -23,11 +23,11 @@ bash $MINIFORGE_FILE -b -p ${MINIFORGE_HOME} source ${MINIFORGE_HOME}/etc/profile.d/conda.sh conda activate base -echo -e "\n\nInstalling ['conda-forge-ci-setup=3'] and conda-build." +echo -e "\n\nInstalling ['liblief=0.11.5', 'conda-forge-ci-setup=3'] and conda-build." mamba install --update-specs --quiet --yes --channel conda-forge \ - conda-build pip boa conda-forge-ci-setup=3 + conda-build pip boa liblief=0.11.5 conda-forge-ci-setup=3 mamba update --update-specs --yes --quiet --channel conda-forge \ - conda-build pip boa conda-forge-ci-setup=3 + conda-build pip boa liblief=0.11.5 conda-forge-ci-setup=3 diff --git a/conda-forge.yml b/conda-forge.yml index c6495923..343ef7a9 100644 --- a/conda-forge.yml +++ b/conda-forge.yml @@ -8,3 +8,8 @@ github: provider: linux_aarch64: default test_on_native_only: true +azure: + store_build_artifacts: true +remote_ci_setup: + - liblief=0.11.5 + - conda-forge-ci-setup=3 diff --git a/recipe/3269.patch b/recipe/3269.patch new file mode 100644 index 00000000..9253f193 --- /dev/null +++ b/recipe/3269.patch @@ -0,0 +1,814 @@ +From f96ee7492e18e8677e02bdf55ce7bf704cbfa331 Mon Sep 17 00:00:00 2001 +From: Silvio Traversaro +Date: Thu, 13 Oct 2022 11:03:55 +0200 +Subject: [PATCH] Fix Instance() method of Singleton classes + +In particular, make sure that all the Instance() methods +of the same class always use the same instantiation. +--- + gazebo/common/FuelModelDatabase.cc | 13 +++++++++++++ + gazebo/common/FuelModelDatabase.hh | 3 +++ + gazebo/common/MeshManager.cc | 13 +++++++++++++ + gazebo/common/MeshManager.hh | 3 +++ + gazebo/common/ModelDatabase.cc | 13 +++++++++++++ + gazebo/common/ModelDatabase.hh | 3 +++ + gazebo/common/SingletonT.hh | 2 +- + gazebo/common/SystemPaths.cc | 13 +++++++++++++ + gazebo/common/SystemPaths.hh | 3 +++ + gazebo/gui/KeyEventHandler.cc | 13 +++++++++++++ + gazebo/gui/KeyEventHandler.hh | 3 +++ + gazebo/gui/ModelAlign.cc | 13 +++++++++++++ + gazebo/gui/ModelAlign.hh | 3 +++ + gazebo/gui/ModelManipulator.cc | 13 +++++++++++++ + gazebo/gui/ModelManipulator.hh | 3 +++ + gazebo/gui/ModelSnap.cc | 13 +++++++++++++ + gazebo/gui/ModelSnap.hh | 3 +++ + gazebo/gui/MouseEventHandler.cc | 13 +++++++++++++ + gazebo/gui/MouseEventHandler.hh | 3 +++ + gazebo/gui/plot/PlotManager.cc | 13 +++++++++++++ + gazebo/gui/plot/PlotManager.hh | 3 +++ + gazebo/gui/plot/TopicCurveHandler.cc | 16 ++++++++++++++++ + gazebo/rendering/RTShaderSystem.cc | 13 +++++++++++++ + gazebo/rendering/RTShaderSystem.hh | 3 +++ + gazebo/rendering/RenderEngine.cc | 13 +++++++++++++ + gazebo/rendering/RenderEngine.hh | 3 +++ + gazebo/sensors/SensorManager.cc | 14 ++++++++++++++ + gazebo/sensors/SensorManager.hh | 3 +++ + gazebo/transport/ConnectionManager.cc | 13 +++++++++++++ + gazebo/transport/ConnectionManager.hh | 3 +++ + gazebo/transport/TopicManager.cc | 13 +++++++++++++ + gazebo/transport/TopicManager.hh | 3 +++ + gazebo/util/Diagnostics.cc | 13 +++++++++++++ + gazebo/util/Diagnostics.hh | 3 +++ + gazebo/util/IntrospectionManager.cc | 13 +++++++++++++ + gazebo/util/IntrospectionManager.hh | 3 +++ + gazebo/util/LogPlay.cc | 13 +++++++++++++ + gazebo/util/LogPlay.hh | 3 +++ + gazebo/util/LogRecord.cc | 13 +++++++++++++ + gazebo/util/LogRecord.hh | 3 +++ + gazebo/util/OpenAL.cc | 13 +++++++++++++ + gazebo/util/OpenAL.hh | 3 +++ + 42 files changed, 338 insertions(+), 1 deletion(-) + +diff --git a/gazebo/common/FuelModelDatabase.cc b/gazebo/common/FuelModelDatabase.cc +index 3ba2b04fb8..4fa5bd26c9 100644 +--- a/gazebo/common/FuelModelDatabase.cc ++++ b/gazebo/common/FuelModelDatabase.cc +@@ -322,3 +322,16 @@ std::string FuelModelDatabase::CachedFilePath(const std::string &_uri) + + return path; + } ++ ++////////////////////////////////////////////////// ++FuelModelDatabase* FuelModelDatabase::Instance() ++{ ++#ifndef _WIN32 ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ return SingletonT::Instance(); ++#ifndef _WIN32 ++ #pragma GCC diagnostic pop ++#endif ++} +diff --git a/gazebo/common/FuelModelDatabase.hh b/gazebo/common/FuelModelDatabase.hh +index 81daafbefc..cfa8f0d1ab 100644 +--- a/gazebo/common/FuelModelDatabase.hh ++++ b/gazebo/common/FuelModelDatabase.hh +@@ -123,6 +123,9 @@ namespace gazebo + /// \return Local path to the file + public: std::string CachedFilePath(const std::string &_uri); + ++ /// \brief Returns a pointer to the unique (static) instance ++ public: static FuelModelDatabase* Instance(); ++ + /// \brief Private data. + private: std::unique_ptr dataPtr; + +diff --git a/gazebo/common/MeshManager.cc b/gazebo/common/MeshManager.cc +index 6c0104a7ea..e151f8abda 100644 +--- a/gazebo/common/MeshManager.cc ++++ b/gazebo/common/MeshManager.cc +@@ -1394,5 +1394,18 @@ void MeshManager::ConvertPolylinesToVerticesAndEdges( + } + } + } ++ ++////////////////////////////////////////////////// ++MeshManager* MeshManager::Instance() ++{ ++#ifndef _WIN32 ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ return SingletonT::Instance(); ++#ifndef _WIN32 ++ #pragma GCC diagnostic pop ++#endif ++} + } + } +diff --git a/gazebo/common/MeshManager.hh b/gazebo/common/MeshManager.hh +index a6778cc07d..16f22a0327 100644 +--- a/gazebo/common/MeshManager.hh ++++ b/gazebo/common/MeshManager.hh +@@ -261,6 +261,9 @@ namespace gazebo + const ignition::math::Vector2d &_p, + double _tol); + ++ /// \brief Returns a pointer to the unique (static) instance ++ public: static MeshManager* Instance(); ++ + /// \brief Singleton implementation + private: friend class SingletonT; + +diff --git a/gazebo/common/ModelDatabase.cc b/gazebo/common/ModelDatabase.cc +index 54be36799a..4e46add362 100644 +--- a/gazebo/common/ModelDatabase.cc ++++ b/gazebo/common/ModelDatabase.cc +@@ -683,3 +683,16 @@ std::string ModelDatabase::GetModelFile(const std::string &_uri) + + return result; + } ++ ++////////////////////////////////////////////////// ++ModelDatabase* ModelDatabase::Instance() ++{ ++#ifndef _WIN32 ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ return SingletonT::Instance(); ++#ifndef _WIN32 ++ #pragma GCC diagnostic pop ++#endif ++} +diff --git a/gazebo/common/ModelDatabase.hh b/gazebo/common/ModelDatabase.hh +index 0821abad8d..e78fffacdd 100644 +--- a/gazebo/common/ModelDatabase.hh ++++ b/gazebo/common/ModelDatabase.hh +@@ -150,6 +150,9 @@ namespace gazebo + /// no one else should use this function. + private: bool UpdateModelCacheImpl(); + ++ /// \brief Returns a pointer to the unique (static) instance ++ public: static ModelDatabase* Instance(); ++ + /// \brief Private data. + private: ModelDatabasePrivate *dataPtr; + +diff --git a/gazebo/common/SingletonT.hh b/gazebo/common/SingletonT.hh +index e97b7c792e..9d08bfc760 100644 +--- a/gazebo/common/SingletonT.hh ++++ b/gazebo/common/SingletonT.hh +@@ -33,7 +33,7 @@ template + class SingletonT + { + /// \brief Get an instance of the singleton +- public: static T *Instance() ++ public: static T *Instance() GAZEBO_DEPRECATED(11.0) + { + return &GetInstance(); + } +diff --git a/gazebo/common/SystemPaths.cc b/gazebo/common/SystemPaths.cc +index 2e0f770433..08e84f234e 100644 +--- a/gazebo/common/SystemPaths.cc ++++ b/gazebo/common/SystemPaths.cc +@@ -577,3 +577,16 @@ void SystemPaths::AddSearchPathSuffix(const std::string &_suffix) + + this->suffixPaths.push_back(s); + } ++ ++////////////////////////////////////////////////// ++SystemPaths* SystemPaths::Instance() ++{ ++#ifndef _WIN32 ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ return SingletonT::Instance(); ++#ifndef _WIN32 ++ #pragma GCC diagnostic pop ++#endif ++} +diff --git a/gazebo/common/SystemPaths.hh b/gazebo/common/SystemPaths.hh +index 3c62d28c07..f1f05b183a 100644 +--- a/gazebo/common/SystemPaths.hh ++++ b/gazebo/common/SystemPaths.hh +@@ -181,6 +181,9 @@ namespace gazebo + private: void InsertUnique(const std::string &_path, + std::list &_list); + ++ /// \brief Returns a pointer to the unique (static) instance ++ public: static SystemPaths* Instance(); ++ + /// \brief Paths to installed gazebo media files + private: std::list gazeboPaths; + +diff --git a/gazebo/gui/KeyEventHandler.cc b/gazebo/gui/KeyEventHandler.cc +index e433805ad7..77cf0fa5fd 100644 +--- a/gazebo/gui/KeyEventHandler.cc ++++ b/gazebo/gui/KeyEventHandler.cc +@@ -116,3 +116,16 @@ bool KeyEventHandler::Handle(const common::KeyEvent &_event, + } + return false; + } ++ ++////////////////////////////////////////////////// ++KeyEventHandler* KeyEventHandler::Instance() ++{ ++#ifndef _WIN32 ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ return SingletonT::Instance(); ++#ifndef _WIN32 ++ #pragma GCC diagnostic pop ++#endif ++} +diff --git a/gazebo/gui/KeyEventHandler.hh b/gazebo/gui/KeyEventHandler.hh +index 61e4d9046e..0f045d12df 100644 +--- a/gazebo/gui/KeyEventHandler.hh ++++ b/gazebo/gui/KeyEventHandler.hh +@@ -145,6 +145,9 @@ namespace gazebo + private: bool Handle(const common::KeyEvent &_event, + std::list &_list); + ++ /// \brief Returns a pointer to the unique (static) instance ++ public: static KeyEventHandler* Instance(); ++ + /// \brief This is a singleton class. + private: friend class SingletonT; + +diff --git a/gazebo/gui/ModelAlign.cc b/gazebo/gui/ModelAlign.cc +index af0cba86d2..fa7af11587 100644 +--- a/gazebo/gui/ModelAlign.cc ++++ b/gazebo/gui/ModelAlign.cc +@@ -362,3 +362,16 @@ void ModelAlign::SetHighlighted(const rendering::VisualPtr &_vis, + } + } + } ++ ++////////////////////////////////////////////////// ++ModelAlign* ModelAlign::Instance() ++{ ++#ifndef _WIN32 ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ return SingletonT::Instance(); ++#ifndef _WIN32 ++ #pragma GCC diagnostic pop ++#endif ++} +diff --git a/gazebo/gui/ModelAlign.hh b/gazebo/gui/ModelAlign.hh +index 2b38a6a355..f396414048 100644 +--- a/gazebo/gui/ModelAlign.hh ++++ b/gazebo/gui/ModelAlign.hh +@@ -97,6 +97,9 @@ namespace gazebo + private: void SetHighlighted(const rendering::VisualPtr &_vis, + const bool _highlight); + ++ /// \brief Returns a pointer to the unique (static) instance ++ public: static ModelAlign* Instance(); ++ + /// \brief This is a singleton class. + private: friend class SingletonT; + +diff --git a/gazebo/gui/ModelManipulator.cc b/gazebo/gui/ModelManipulator.cc +index b1682f8c89..11603e7d85 100644 +--- a/gazebo/gui/ModelManipulator.cc ++++ b/gazebo/gui/ModelManipulator.cc +@@ -987,6 +987,19 @@ void ModelManipulator::OnKeyReleaseEvent(const common::KeyEvent &_event) + this->dataPtr->keyEvent.key = 0; + } + ++////////////////////////////////////////////////// ++ModelManipulator* ModelManipulator::Instance() ++{ ++#ifndef _WIN32 ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ return SingletonT::Instance(); ++#ifndef _WIN32 ++ #pragma GCC diagnostic pop ++#endif ++} ++ + // Function migrated here from GLWidget.cc and commented out since it doesn't + // seem like it's currently used. Kept here for future references + ///////////////////////////////////////////////// +diff --git a/gazebo/gui/ModelManipulator.hh b/gazebo/gui/ModelManipulator.hh +index ecd06954b7..77d3177853 100644 +--- a/gazebo/gui/ModelManipulator.hh ++++ b/gazebo/gui/ModelManipulator.hh +@@ -179,6 +179,9 @@ namespace gazebo + const ignition::math::Vector3d &_axis, + const ignition::math::Vector3d &_scale, const std::string &_geom); + ++ /// \brief Returns a pointer to the unique (static) instance ++ public: static ModelManipulator* Instance(); ++ + /// \brief This is a singleton class. + private: friend class SingletonT; + +diff --git a/gazebo/gui/ModelSnap.cc b/gazebo/gui/ModelSnap.cc +index 8c920bad8c..356c0956ce 100644 +--- a/gazebo/gui/ModelSnap.cc ++++ b/gazebo/gui/ModelSnap.cc +@@ -507,3 +507,16 @@ void ModelSnap::Update() + this->dataPtr->selectedTriangleDirty = false; + } + } ++ ++////////////////////////////////////////////////// ++ModelSnap* ModelSnap::Instance() ++{ ++#ifndef _WIN32 ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ return SingletonT::Instance(); ++#ifndef _WIN32 ++ #pragma GCC diagnostic pop ++#endif ++} +diff --git a/gazebo/gui/ModelSnap.hh b/gazebo/gui/ModelSnap.hh +index e942a256c6..b3aaef2f7b 100644 +--- a/gazebo/gui/ModelSnap.hh ++++ b/gazebo/gui/ModelSnap.hh +@@ -111,6 +111,9 @@ namespace gazebo + /// \brief Update the visual representation of the snap spot. + private: void Update(); + ++ /// \brief Returns a pointer to the unique (static) instance ++ public: static ModelSnap* Instance(); ++ + /// \brief This is a singleton class. + private: friend class SingletonT; + +diff --git a/gazebo/gui/MouseEventHandler.cc b/gazebo/gui/MouseEventHandler.cc +index e6cfc46f9b..762eedf5ef 100644 +--- a/gazebo/gui/MouseEventHandler.cc ++++ b/gazebo/gui/MouseEventHandler.cc +@@ -135,3 +135,16 @@ void MouseEventHandler::Handle(const common::MouseEvent &_event, + break; + } + } ++ ++////////////////////////////////////////////////// ++MouseEventHandler* MouseEventHandler::Instance() ++{ ++#ifndef _WIN32 ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ return SingletonT::Instance(); ++#ifndef _WIN32 ++ #pragma GCC diagnostic pop ++#endif ++} +diff --git a/gazebo/gui/MouseEventHandler.hh b/gazebo/gui/MouseEventHandler.hh +index 42c09c3042..62290a5ca5 100644 +--- a/gazebo/gui/MouseEventHandler.hh ++++ b/gazebo/gui/MouseEventHandler.hh +@@ -156,6 +156,9 @@ namespace gazebo + private: void Handle(const common::MouseEvent &_event, + std::list &_list); + ++ /// \brief Returns a pointer to the unique (static) instance ++ public: static MouseEventHandler* Instance(); ++ + /// \brief List of mouse press filters. + private: std::list pressFilters; + +diff --git a/gazebo/gui/plot/PlotManager.cc b/gazebo/gui/plot/PlotManager.cc +index b50f6065af..634b19e406 100644 +--- a/gazebo/gui/plot/PlotManager.cc ++++ b/gazebo/gui/plot/PlotManager.cc +@@ -190,3 +190,16 @@ std::string PlotManager::HumanReadableName(const std::string &_uri) const + + return label; + } ++ ++////////////////////////////////////////////////// ++PlotManager* PlotManager::Instance() ++{ ++#ifndef _WIN32 ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ return SingletonT::Instance(); ++#ifndef _WIN32 ++ #pragma GCC diagnostic pop ++#endif ++} +diff --git a/gazebo/gui/plot/PlotManager.hh b/gazebo/gui/plot/PlotManager.hh +index 0a31e7ac3e..29101fca76 100644 +--- a/gazebo/gui/plot/PlotManager.hh ++++ b/gazebo/gui/plot/PlotManager.hh +@@ -87,6 +87,9 @@ namespace gazebo + /// \return Human readable name + public: std::string HumanReadableName(const std::string &_uri) const; + ++ /// \brief Returns a pointer to the unique (static) instance ++ public: static PlotManager* Instance(); ++ + /// \brief This is a singleton class. + private: friend class SingletonT; + +diff --git a/gazebo/gui/plot/TopicCurveHandler.cc b/gazebo/gui/plot/TopicCurveHandler.cc +index 34bfc75660..c7103f9789 100644 +--- a/gazebo/gui/plot/TopicCurveHandler.cc ++++ b/gazebo/gui/plot/TopicCurveHandler.cc +@@ -55,6 +55,9 @@ namespace gazebo + /// \param[in] _msg WorldStats msg. + public: void OnStats(ConstWorldStatisticsPtr &_msg); + ++ /// \brief Returns a pointer to the unique (static) instance ++ public: static TopicTime* Instance(); ++ + /// \brief Node for communications. + private: transport::NodePtr node; + +@@ -168,6 +171,19 @@ void TopicTime::OnStats(ConstWorldStatisticsPtr &_msg) + this->lastSimTime = msgs::Convert(t); + } + ++////////////////////////////////////////////////// ++TopicTime* TopicTime::Instance() ++{ ++#ifndef _WIN32 ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ return SingletonT::Instance(); ++#ifndef _WIN32 ++ #pragma GCC diagnostic pop ++#endif ++} ++ + ///////////////////////////////////////////////// + common::Time TopicTime::LastSimTime() + { +diff --git a/gazebo/rendering/RTShaderSystem.cc b/gazebo/rendering/RTShaderSystem.cc +index fe7197ab5f..72f86bf782 100644 +--- a/gazebo/rendering/RTShaderSystem.cc ++++ b/gazebo/rendering/RTShaderSystem.cc +@@ -810,3 +810,16 @@ void RTShaderSystem::UpdateShadows(ScenePtr _scene) + sceneMgr->setShadowTextureCasterMaterial(_scene->ShadowCasterMaterialName()); + #endif + } ++ ++////////////////////////////////////////////////// ++RTShaderSystem* RTShaderSystem::Instance() ++{ ++#ifndef _WIN32 ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ return SingletonT::Instance(); ++#ifndef _WIN32 ++ #pragma GCC diagnostic pop ++#endif ++} +diff --git a/gazebo/rendering/RTShaderSystem.hh b/gazebo/rendering/RTShaderSystem.hh +index 61da4d25ee..b9227357f9 100644 +--- a/gazebo/rendering/RTShaderSystem.hh ++++ b/gazebo/rendering/RTShaderSystem.hh +@@ -187,6 +187,9 @@ namespace gazebo + /// \brief Re-apply shadows. Call this if a shadow paramenter is changed. + private: void ReapplyShadows(); + ++ /// \brief Returns a pointer to the unique (static) instance ++ public: static RTShaderSystem* Instance(); ++ + /// \brief Make the RTShader system a singleton. + private: friend class SingletonT; + +diff --git a/gazebo/rendering/RenderEngine.cc b/gazebo/rendering/RenderEngine.cc +index 87d78ea95d..cc07bef340 100644 +--- a/gazebo/rendering/RenderEngine.cc ++++ b/gazebo/rendering/RenderEngine.cc +@@ -883,3 +883,16 @@ Ogre::OverlaySystem *RenderEngine::OverlaySystem() const + return this->dataPtr->overlaySystem; + } + #endif ++ ++////////////////////////////////////////////////// ++RenderEngine* RenderEngine::Instance() ++{ ++#ifndef _WIN32 ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ return SingletonT::Instance(); ++#ifndef _WIN32 ++ #pragma GCC diagnostic pop ++#endif ++} +diff --git a/gazebo/rendering/RenderEngine.hh b/gazebo/rendering/RenderEngine.hh +index ae62ae8457..fa3f28bb84 100644 +--- a/gazebo/rendering/RenderEngine.hh ++++ b/gazebo/rendering/RenderEngine.hh +@@ -168,6 +168,9 @@ namespace gazebo + /// \brief Check the rendering capabilities of the system. + private: void CheckSystemCapabilities(); + ++ /// \brief Returns a pointer to the unique (static) instance ++ public: static RenderEngine* Instance(); ++ + /// \brief ID for a dummy window. Used for gui-less operation + protected: uint64_t dummyWindowId; + +diff --git a/gazebo/sensors/SensorManager.cc b/gazebo/sensors/SensorManager.cc +index a44c8e8158..0c9d14d1c0 100644 +--- a/gazebo/sensors/SensorManager.cc ++++ b/gazebo/sensors/SensorManager.cc +@@ -1005,6 +1005,20 @@ bool SensorManager::ImageSensorContainer::WaitForPrerendered(double _timeoutsec) + return (ret == std::cv_status::no_timeout); + } + ++////////////////////////////////////////////////// ++SensorManager* SensorManager::Instance() ++{ ++#ifndef _WIN32 ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ return SingletonT::Instance(); ++#ifndef _WIN32 ++ #pragma GCC diagnostic pop ++#endif ++} ++ ++ + ///////////////////////////////////////////////// + SimTimeEventHandler::SimTimeEventHandler() + { +diff --git a/gazebo/sensors/SensorManager.hh b/gazebo/sensors/SensorManager.hh +index dea9caee49..657875014d 100644 +--- a/gazebo/sensors/SensorManager.hh ++++ b/gazebo/sensors/SensorManager.hh +@@ -193,6 +193,9 @@ namespace gazebo + /// \param[in] _sensor Pointer to a sensor to add. + private: void AddSensor(SensorPtr _sensor); + ++ /// \brief Returns a pointer to the unique (static) instance ++ public: static SensorManager* Instance(); ++ + /// \cond + /// \brief A container for sensors of a specific type. This is used to + /// separate sensors which rely on the rendering engine from those +diff --git a/gazebo/transport/ConnectionManager.cc b/gazebo/transport/ConnectionManager.cc +index 17016a4362..312ceac712 100644 +--- a/gazebo/transport/ConnectionManager.cc ++++ b/gazebo/transport/ConnectionManager.cc +@@ -712,3 +712,16 @@ void ConnectionManager::TriggerUpdate() + { + this->updateCondition.notify_all(); + } ++ ++////////////////////////////////////////////////// ++ConnectionManager* ConnectionManager::Instance() ++{ ++#ifndef _WIN32 ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ return SingletonT::Instance(); ++#ifndef _WIN32 ++ #pragma GCC diagnostic pop ++#endif ++} +diff --git a/gazebo/transport/ConnectionManager.hh b/gazebo/transport/ConnectionManager.hh +index 6dc212bc13..65169d1e69 100644 +--- a/gazebo/transport/ConnectionManager.hh ++++ b/gazebo/transport/ConnectionManager.hh +@@ -167,6 +167,9 @@ namespace gazebo + /// \brief Run the manager update loop once + private: void RunUpdate(); + ++ /// \brief Returns a pointer to the unique (static) instance ++ public: static ConnectionManager* Instance(); ++ + /// \brief Condition used to trigger an update. + private: boost::condition_variable updateCondition; + +diff --git a/gazebo/transport/TopicManager.cc b/gazebo/transport/TopicManager.cc +index 14fa782fa4..4acc0e6592 100644 +--- a/gazebo/transport/TopicManager.cc ++++ b/gazebo/transport/TopicManager.cc +@@ -457,3 +457,16 @@ void TopicManager::PauseIncoming(bool _pause) + { + this->pauseIncoming = _pause; + } ++ ++////////////////////////////////////////////////// ++TopicManager* TopicManager::Instance() ++{ ++#ifndef _WIN32 ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ return SingletonT::Instance(); ++#ifndef _WIN32 ++ #pragma GCC diagnostic pop ++#endif ++} +diff --git a/gazebo/transport/TopicManager.hh b/gazebo/transport/TopicManager.hh +index b2adc04c8d..6c05abae6e 100644 +--- a/gazebo/transport/TopicManager.hh ++++ b/gazebo/transport/TopicManager.hh +@@ -244,6 +244,9 @@ namespace gazebo + /// \param[in] _ptr Node to process. + public: void AddNodeToProcess(NodePtr _ptr); + ++ /// \brief Returns a pointer to the unique (static) instance ++ public: static TopicManager* Instance(); ++ + /// \brief A map of string->list of Node pointers + typedef std::map > SubNodeMap; + +diff --git a/gazebo/util/Diagnostics.cc b/gazebo/util/Diagnostics.cc +index 1b3b4dc054..55626b0fc1 100644 +--- a/gazebo/util/Diagnostics.cc ++++ b/gazebo/util/Diagnostics.cc +@@ -249,6 +249,19 @@ common::Time DiagnosticManager::Time(const std::string &_label) const + return common::Time(); + } + ++////////////////////////////////////////////////// ++DiagnosticManager* DiagnosticManager::Instance() ++{ ++#ifndef _WIN32 ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ return SingletonT::Instance(); ++#ifndef _WIN32 ++ #pragma GCC diagnostic pop ++#endif ++} ++ + ////////////////////////////////////////////////// + DiagnosticTimer::DiagnosticTimer(const std::string &_name) + : Timer(), +diff --git a/gazebo/util/Diagnostics.hh b/gazebo/util/Diagnostics.hh +index 1b5782fdb1..cee46128ee 100644 +--- a/gazebo/util/Diagnostics.hh ++++ b/gazebo/util/Diagnostics.hh +@@ -143,6 +143,9 @@ namespace gazebo + const common::Time &_wallTime, + const common::Time &_elapsedtime); + ++ /// \brief Returns a pointer to the unique (static) instance ++ public: static DiagnosticManager* Instance(); ++ + // Singleton implementation + private: friend class SingletonT; + +diff --git a/gazebo/util/IntrospectionManager.cc b/gazebo/util/IntrospectionManager.cc +index 048e605317..54073e647b 100644 +--- a/gazebo/util/IntrospectionManager.cc ++++ b/gazebo/util/IntrospectionManager.cc +@@ -642,3 +642,16 @@ bool IntrospectionManager::ValidateParameter(const gazebo::msgs::Param &_msg, + + return true; + } ++ ++////////////////////////////////////////////////// ++IntrospectionManager* IntrospectionManager::Instance() ++{ ++#ifndef _WIN32 ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ return SingletonT::Instance(); ++#ifndef _WIN32 ++ #pragma GCC diagnostic pop ++#endif ++} +diff --git a/gazebo/util/IntrospectionManager.hh b/gazebo/util/IntrospectionManager.hh +index b471a7a907..d150181edd 100644 +--- a/gazebo/util/IntrospectionManager.hh ++++ b/gazebo/util/IntrospectionManager.hh +@@ -193,6 +193,9 @@ namespace gazebo + private: bool ValidateParameter(const gazebo::msgs::Param &_msg, + const std::set &_allowedValues) const; + ++ /// \brief Returns a pointer to the unique (static) instance ++ public: static IntrospectionManager* Instance(); ++ + /// \brief This is a singleton. + private: friend class SingletonT; + +diff --git a/gazebo/util/LogPlay.cc b/gazebo/util/LogPlay.cc +index e0b80b381f..70cfcc3346 100644 +--- a/gazebo/util/LogPlay.cc ++++ b/gazebo/util/LogPlay.cc +@@ -838,3 +838,16 @@ bool LogPlay::PrevChunk() + + return true; + } ++ ++////////////////////////////////////////////////// ++LogPlay* LogPlay::Instance() ++{ ++#ifndef _WIN32 ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ return SingletonT::Instance(); ++#ifndef _WIN32 ++ #pragma GCC diagnostic pop ++#endif ++} +diff --git a/gazebo/util/LogPlay.hh b/gazebo/util/LogPlay.hh +index d3ba5a31e2..29013d9ee0 100644 +--- a/gazebo/util/LogPlay.hh ++++ b/gazebo/util/LogPlay.hh +@@ -184,6 +184,9 @@ namespace gazebo + /// chunks before the current one. + private: bool PrevChunk(); + ++ /// \brief Returns a pointer to the unique (static) instance ++ public: static LogPlay* Instance(); ++ + /// \internal + /// \brief Private data pointer + private: std::unique_ptr dataPtr; +diff --git a/gazebo/util/LogRecord.cc b/gazebo/util/LogRecord.cc +index e1e2543ffc..19658f54a4 100644 +--- a/gazebo/util/LogRecord.cc ++++ b/gazebo/util/LogRecord.cc +@@ -1110,3 +1110,16 @@ unsigned int LogRecord::BufferSize() const + + return size; + } ++ ++////////////////////////////////////////////////// ++LogRecord* LogRecord::Instance() ++{ ++#ifndef _WIN32 ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ return SingletonT::Instance(); ++#ifndef _WIN32 ++ #pragma GCC diagnostic pop ++#endif ++} +diff --git a/gazebo/util/LogRecord.hh b/gazebo/util/LogRecord.hh +index 525d6d4e4a..c756d83728 100644 +--- a/gazebo/util/LogRecord.hh ++++ b/gazebo/util/LogRecord.hh +@@ -262,6 +262,9 @@ namespace gazebo + /// \brief Used to get the simulation pause state. + private: void OnPause(const bool _pause); + ++ /// \brief Returns a pointer to the unique (static) instance ++ public: static LogRecord* Instance(); ++ + /// \brief This is a singleton + private: friend class SingletonT; + +diff --git a/gazebo/util/OpenAL.cc b/gazebo/util/OpenAL.cc +index 77ff598dda..9cf773e37f 100644 +--- a/gazebo/util/OpenAL.cc ++++ b/gazebo/util/OpenAL.cc +@@ -187,6 +187,19 @@ std::set OpenAL::DeviceList() const + return deviceList; + } + ++////////////////////////////////////////////////// ++OpenAL* OpenAL::Instance() ++{ ++#ifndef _WIN32 ++ #pragma GCC diagnostic push ++ #pragma GCC diagnostic ignored "-Wdeprecated-declarations" ++#endif ++ return SingletonT::Instance(); ++#ifndef _WIN32 ++ #pragma GCC diagnostic pop ++#endif ++} ++ + //////////////////////////////////////////////////////////////////////////////// + //////////////////////////////////////////////////////////////////////////////// + // OPENAL LISTENER +diff --git a/gazebo/util/OpenAL.hh b/gazebo/util/OpenAL.hh +index a98c926e31..f476b69dab 100644 +--- a/gazebo/util/OpenAL.hh ++++ b/gazebo/util/OpenAL.hh +@@ -81,6 +81,9 @@ namespace gazebo + /// \return A list of audio device names + public: std::set DeviceList() const; + ++ /// \brief Returns a pointer to the unique (static) instance ++ public: static OpenAL* Instance(); ++ + /// \internal + /// \brief Private data pointer. + private: std::unique_ptr dataPtr; diff --git a/recipe/conda_build_config.yaml b/recipe/conda_build_config.yaml index 1eb6b40d..194e25c4 100644 --- a/recipe/conda_build_config.yaml +++ b/recipe/conda_build_config.yaml @@ -1,7 +1,7 @@ macos_min_version: # [osx and x86_64] - - 10.14 # [osx and x86_64] + - 10.15 # [osx and x86_64] MACOSX_DEPLOYMENT_TARGET: # [osx and x86_64] - - 10.14 # [osx and x86_64] + - 10.15 # [osx and x86_64] # This is done to de-prioritize 1.12 OGRE_VERSION: diff --git a/recipe/meta.yaml b/recipe/meta.yaml index 21913966..e5344195 100644 --- a/recipe/meta.yaml +++ b/recipe/meta.yaml @@ -7,15 +7,16 @@ package: source: - url: https://github.com/osrf/{{ name }}/archive/{{ name }}{{ version.split('.')[0] }}_{{ version }}.tar.gz - sha256: 6ef2721c1279bc836a845022784fb8bf9860468b36abbc5c1887446ea594d261 + sha256: c4d32b76c213b0f74f01a10d2134232280a13fb58529f9a2ce8a7ab7bca8691a patches: - fix_build.patch # [unix] - use-external-libs-config.patch - fix-invisible-meshes.patch - 3190.patch + - 3269.patch build: - number: 0 + number: 1 run_exports: - {{ pin_subpackage('gazebo', max_pin='x') }}