diff --git a/.github/workflows/docker-builds.yml b/.github/workflows/docker-builds.yml index b6fd6169..c1b495da 100644 --- a/.github/workflows/docker-builds.yml +++ b/.github/workflows/docker-builds.yml @@ -320,20 +320,20 @@ jobs: --build-missing \ --push NO - - name: Build vfx2 level 1 Conan packages + - name: Build vfx1 level 6 Conan packages run: | set -ex uv run aswfdocker \ --verbose \ build \ --ci-image-type PACKAGE \ - --group vfx2-1 \ + --group vfx1-6 \ --version ${{ matrix.version_noclang }} \ --use-conan \ --build-missing \ --push NO - - name: Build vfx2 level 2 non-Conan packages + - name: Build vfx2 non-Conan packages run: | set -ex uv run aswfdocker \ diff --git a/CHANGELOG.md b/CHANGELOG.md index c3d2c83d..e02c76e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,36 @@ All notable changes to this project will be documented in this file. +# 2026-03-23 + +OpenUSD updates and Conan package. + +- All releases + - [OpenUSD now built as a Conan package](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/231) + - Conan package is named openusd, build container remains ci-usd to avoid breaking existing workflows + - [additional OpenUSD dependencies enabled](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/262) + - usdview + - Python + - Alembic with hdf5 + - MaterialX (previously enabled) + - OpenColorIO + - OpenImageIO + - OpenShadingLanguage (updates to osl Conan recipe now that OpenUSD requires() it) + - OpenVDB + - Ptex + - Following optional components are not enabled yet due to more complex dependencies + - Draco + - Embree + - Mayapi + - Renderman + - Vulkan + - Document use cases in `README.md`: + - GitHub Actions + - GPU Workloads + - Extracting binaries from images and packages +- 2026.x (no new container image release yet) + - [OpenUSD 25.08 to 26.03](https://github.com/AcademySoftwareFoundation/aswf-docker/issues/343) + # 2026-03-14 - All releases diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6134492d..42981a3f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -652,7 +652,7 @@ aswfdocker release -t PACKAGE -g vfx1-2 -v 2024 -v 2025 -v 2026 --docker-org asw aswfdocker release -t PACKAGE -g vfx1-3 -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" aswfdocker release -t PACKAGE -g vfx1-4 -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" aswfdocker release -t PACKAGE -g vfx1-5 -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" -aswfdocker release -t PACKAGE -g vfx2-1 -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" +aswfdocker release -t PACKAGE -g vfx1-6 -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" aswfdocker release -t PACKAGE -g vfx2 -v 2024 -v 2025 -v 2026 --docker-org aswf -m "RELEASE_NOTES!" # Finally build the CI images diff --git a/README.md b/README.md index 8c1b2f2c..1d7b9103 100644 --- a/README.md +++ b/README.md @@ -96,14 +96,14 @@ The `ci-packagename` image contains all the dependencies required to build `pack | | [aswf/ci-materialx:2024](https://hub.docker.com/r/aswf/ci-materialx/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-materialx/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-materialx/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-materialx) | Based on `aswf/ci-common:4`, comes with all MaterialX upstream dependencies pre-installed. | | | [aswf/ci-materialx:2025](https://hub.docker.com/r/aswf/ci-materialx/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-materialx/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-materialx/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-materialx) | Based on `aswf/ci-common:5`, comes with all MaterialX upstream dependencies pre-installed. | | | [aswf/ci-materialx:2026](https://hub.docker.com/r/aswf/ci-materialx/tags?name=2026) ![Image Version](https://img.shields.io/docker/v/aswf/ci-materialx/2026) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-materialx/2026) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-materialx) | Based on `aswf/ci-common:6`, comes with all MaterialX upstream dependencies pre-installed. | -| [aswf/ci-usd](https://hub.docker.com/r/aswf/ci-usd) | [aswf/ci-usd:2019](https://hub.docker.com/r/aswf/ci-usd/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:1`, comes with all USD upstream dependencies pre-installed. | -| | [aswf/ci-usd:2020](https://hub.docker.com/r/aswf/ci-usd/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:1`, comes with all USD upstream dependencies pre-installed. | -| | [aswf/ci-usd:2021](https://hub.docker.com/r/aswf/ci-usd/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:2`, comes with all USD upstream dependencies pre-installed. | -| | [aswf/ci-usd:2022](https://hub.docker.com/r/aswf/ci-usd/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:2`, comes with all USD upstream dependencies pre-installed. | -| | [aswf/ci-usd:2023](https://hub.docker.com/r/aswf/ci-usd/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:3`, comes with all USD upstream dependencies pre-installed. | -| | [aswf/ci-usd:2024](https://hub.docker.com/r/aswf/ci-usd/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:4`, comes with all USD upstream dependencies pre-installed. | -| | [aswf/ci-usd:2025](https://hub.docker.com/r/aswf/ci-usd/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:5`, comes with all USD upstream dependencies pre-installed. | -| | [aswf/ci-usd:2026](https://hub.docker.com/r/aswf/ci-usd/tags?name=2026) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2026) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2026) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:6`, comes with all USD upstream dependencies pre-installed. | +| [aswf/ci-usd](https://hub.docker.com/r/aswf/ci-usd) | [aswf/ci-usd:2019](https://hub.docker.com/r/aswf/ci-usd/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:1`, comes with all OpenUSD upstream dependencies pre-installed. | +| | [aswf/ci-usd:2020](https://hub.docker.com/r/aswf/ci-usd/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:1`, comes with all OpenUSD upstream dependencies pre-installed. | +| | [aswf/ci-usd:2021](https://hub.docker.com/r/aswf/ci-usd/tags?name=2021) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2021) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2021) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:2`, comes with all OpenUSD upstream dependencies pre-installed. | +| | [aswf/ci-usd:2022](https://hub.docker.com/r/aswf/ci-usd/tags?name=2022) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2022) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2022) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:2`, comes with all OpenUSD upstream dependencies pre-installed. | +| | [aswf/ci-usd:2023](https://hub.docker.com/r/aswf/ci-usd/tags?name=2023) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2023) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2023) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:3`, comes with all OpenUSD upstream dependencies pre-installed. | +| | [aswf/ci-usd:2024](https://hub.docker.com/r/aswf/ci-usd/tags?name=2024) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2024) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2024) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:4`, comes with all OpenUSD upstream dependencies pre-installed. | +| | [aswf/ci-usd:2025](https://hub.docker.com/r/aswf/ci-usd/tags?name=2025) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2025) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2025) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:5`, comes with all OpenUSD upstream dependencies pre-installed. | +| | [aswf/ci-usd:2026](https://hub.docker.com/r/aswf/ci-usd/tags?name=2026) ![Image Version](https://img.shields.io/docker/v/aswf/ci-usd/2026) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-usd/2026) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-usd) | Based on `aswf/ci-common:6`, comes with all OpenUSD upstream dependencies pre-installed. | | [aswf/ci-osl](https://hub.docker.com/r/aswf/ci-osl) | [aswf/ci-osl:2018](https://hub.docker.com/r/aswf/ci-osl/tags?name=2018) ![Image Version](https://img.shields.io/docker/v/aswf/ci-osl/2018) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-osl/2018) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-osl) | Based on `aswf/ci-common:1`, comes with all OpenShadingLanguage upstream dependencies pre-installed. | | | [aswf/ci-osl:2019](https://hub.docker.com/r/aswf/ci-osl/tags?name=2019) ![Image Version](https://img.shields.io/docker/v/aswf/ci-osl/2019) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-osl/2019) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-osl) | Based on `aswf/ci-common:1`, comes with all OpenShadingLanguage upstream dependencies pre-installed. | | | [aswf/ci-osl:2020](https://hub.docker.com/r/aswf/ci-osl/tags?name=2020) ![Image Version](https://img.shields.io/docker/v/aswf/ci-osl/2020) | ![Image Size](https://img.shields.io/docker/image-size/aswf/ci-osl/2020) ![Pulls](https://img.shields.io/docker/pulls/aswf/ci-osl) | Based on `aswf/ci-common:1`, comes with all OpenShadingLanguage upstream dependencies pre-installed. | @@ -173,33 +173,28 @@ You may need to first create a free [Linux Foundation account](https://sso.linux As of December 2025 there are full 2018, 2019, 2020, 2021, 2022, 2023, 2024, 2025 and 2026. [VFX Platform](https://vfxplatform.com) compliant images. -Note that the -pre-2024 versions of the images still exist but are not maintained / rebuilt anymore, which +The pre-2024 versions of the images still exist but are not maintained / rebuilt anymore, which means they might be obsolete (especially the OS part). ## CI Packages In order to decouple the building of packages (which can take a lot of time, -such as clang, Qt and USD) from the management of the CI Images, the packages -are built and stored into "scratch" Docker images that can be "copied" into the -CI images at image build time by Docker. - -Storing these CI packages into Docker images has the additional benefit of -being completely free to store on the Docker Hub repository. -The main negative point about this way of storing build artifacts is that -tarballs are not available directly to download. It is very trivial to generate -one and the provided `download-package.sh` script can be used to generate a -local tarball from any package. - -Also, CI packages are built using experimental Docker syntax that allows cache -folders to be mounted at build time, and is built with `docker buildx`. The new +such as clang, Qt and OpenUSD) from the creation of the CI images, the +component packages are built and stored as Conan packages. In previous versions some packages +were built and stored as individual docker images named `ci-packagename-package` +and uploaded to Docker Hub: this approach is no longer used, all packages +are built using Conan. + +CI packages are built using BuildKit Docker syntax that allows cache +folders to be mounted at build time, and is built with `docker buildx`. The Docker BuildKit system allows the building of many packages in parallel in an efficient way with support for [ccache](https://ccache.dev/). -Starting with the 2023 versions, the non-ASWF dependencies and most of the ASWF -projects are being built as Conan packages only, with the eventual goal of getting -rid of all the ci-package-{packagename} intermediate Docker images, and mostly -assembling the CI build images from Conan packages. +The Conan packages are then assembled into container images and uploaded +to Docker Hub: image `ci-openexr` (for instance) contains all the pre-built dependencies to build +OpenEXR, but does not contain a build of OpenEXR itself. The `ci-vfxall` image includes +builds of every package in `aswf-docker` and should contain a large number of the +dependencies required to build a typical C/C++ VFX library or application. ## Python Utilities @@ -210,6 +205,8 @@ Check [aswfdocker](python/README.md) for python utility usage. To build packages and images locally follow the instructions to install the [aswfdocker](python/README.md) python utility. +The `group` names for `PACKAGE` and `IMAGE` builds are distinct and are defined in `versions.yaml`. At some point Conan dependency management will be leveraged to automatically determine build order, until then all the packages in group `vfx1-2` must be built before the ones in `vfx1-1`, and components in a given group do not depend on each other. + ### Packages Packages require a recent Docker version with @@ -223,18 +220,19 @@ powerful machine!): aswfdocker --verbose build -t PACKAGE ``` -To build a single package, e.g. USD: +To build a single Conan package, e.g. OpenUSD: ```bash # First list the available CI packages to know which package belong to which "group": aswfdocker packages # Then run the build -aswfdocker --verbose build -t PACKAGE --group vfx --version 2019 --target usd +aswfdocker --verbose build --ci-image-type PACKAGE --group vfx-6 --version 2026 --use-coman --target openusd # Or the simpler but less flexible syntax: -aswfdocker build -n aswftesting/ci-package-usd:2019 +aswfdocker build --full-name aswftesting/ci-package-usd:2026 ``` ### Images + Images can be built with recent Docker versions but do not require [buildx](https://docs.docker.com/buildx/working-with-buildx/) but it is recommended to speed up large builds. @@ -242,7 +240,7 @@ recommended to speed up large builds. To build all images (very unlikely to succeed unless run on a very very powerful machine!): ```bash -aswfdocker --verbose build -t IMAGE +aswfdocker --verbose build --ci-image-type IMAGE ``` To build a single image: @@ -251,7 +249,153 @@ To build a single image: # First list the available CI images to know which package belong to which "group": aswfdocker images # Then run the build -aswfdocker --verbose build -t IMAGE --group vfx1 --version 2019 --target openexr +aswfdocker --verbose build --ci-image-type IMAGE --group vfx1 --version 2026 --target openexr # Or the simpler but less flexible syntax: -aswfdocker build -n aswftesting/ci-openexr:2019 +aswfdocker build --ci-image-type aswftesting/ci-openexr:2026 +``` + +## Use Cases + +### GitHub Actions + +For Linux builds on GitHub Actions, in the workflow YAML file it is sufficient to specify: + +``` +container: aswf/ci-openexr:2026 +``` + +or: + +``` +container: + image: aswf/ci-openexr:2026 +``` + +to cause the `aswf/ci-openexr:2026` container image to be pulled down from [Docker Hub](https://hub.docker.com/r/aswf/ci-openexr) and have the build run within the context of a container created from that image. + +ASWF projects will typically use the [GitHub Actions `matrix` strategy](https://docs.github.com/en/actions/how-tos/write-workflows/choose-what-workflows-do/run-job-variations) to run build against multiple VFX Platform years. + +Projects which do not (yet) have dedicated container images can pick one from a project which is "close enough" in terms of dependencies, keeping in mind that `ci-openexr` only includes the dependencies to build the [OpenEXR project](https://github.com/AcademySoftwareFoundation/openexr), it does not contain a build of OpenEXR itself. When in doubt, the [`ci-vfxall`](https://hub.docker.com/r/aswf/ci-vfxall) image includes builds of every currently supported package. + +A project's CI may wish to be more specific about the version of the container image it wishes to use, for instance: + +``` +container: aswf/ci-openxr:2026.3 +``` + +pins to a specific release of the VFX Platform 2026 `ci-openexr` container image, whereas: + +``` +container: aswf/ci-openexr:2026 +``` + +pulls the latest version available. A project can also decide to explicitly specify the SHA-256 signature of a container, in which case the numeric version can be appended as a comment, similarly to how GitHub Actions versions can be pinned to a SHA-256 signature: + +``` +container: + image: aswf/ci-openexr@sha256:9ddf6fccd32619a23a02db56aa6761e0b87ffce7374fa103768ded0ae09f1120 # 2026.3 +``` + +The SHA-256 signature can be found on the [Docker Hub tags page](https://hub.docker.com/r/aswf/ci-openexr/tags) for the container image, or with: + ``` +$ docker buildx imagetools inspect aswf/ci-openexr:2026.3 --format '{{ json .Manifest }}' | jq -r '.digest' +sha256:9ddf6fccd32619a23a02db56aa6761e0b87ffce7374fa103768ded0ae09f1120 +``` + +Projects consuming these images should decide on the best policy for them: + +- always pull the latest version for a VFX Platform year +- pin to a specific version for a VFX Plaform year +- pin to a specific version using a SHA-256 signature + +The `aswf-docker` release process is fairly lengthy and complex, and in infrequent cases a specific version of a container image may have had to be re-released with the same version tag applied. We aim to minimize these occurances, which would typically occur only within a short window of time after the initial release. Once a container image version has been validated by its consumer project, it can be considered immutable. + +### GPU Considerations + +The container images include CUDA, OptiX, OpenGL and Vulkan libraries and can be used to run GPU accelerated workloads such as test suites for GPU accelerated code paths. + +The host system must have the [NVIDIA Container Toolkit](https://github.com/NVIDIA/nvidia-container-toolkit) installed to allow GPU devices to be mapped into the container and accessible by a binary running inside it. The NVIDIA GPU driver also needs to be installed on the host: the Container Toolkit will map the hardware specific shared libraries into the container at startup time. There is no need to install the GPU driver in the container itself. + +Academy Software Foundation projects running their CI in the context of the [https://github.com/AcademySoftwareFoundation/] GitHub organization have access to GPU accelerated hosted runners where the NVIDIA Container Toolkit is already installed. + +#### CUDA CI Workloads + +To run a CUDA workload, it is sufficient to map the GPU device with the `--gpus all` option: + +``` +container: + image: aswf/ci-openexr:2026 + options: --gpus all +``` + +#### OptiX CI Workloads + +The[Open Shading Language](https://github.com/AcademySoftwareFoundation/OpenShadingLanguage) optionally uses NVIDIA OptiX for ray tracing acceleration. This requires additional [driver capabilities](https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/1.10.0/user-guide.html#driver-capabilities) to be mapped into the container at startup time: + +[https://github.com/AcademySoftwareFoundation/OpenShadingLanguage/blob/main/.github/workflows/ci.yml] + +``` +container: + image: aswf/ci-osl:2026-clang20.3 + options: '-e NVIDIA_DRIVER_CAPABILITIES=compute,graphics,utility --gpus all' +``` + +The `options` syntax may seem a bit odd but is what was empirically determined to pass the desired options to allow the required driver capabilities to be exposed and allow the OSL test suite to run its GPU accelerated components. + +#### OpenGL CI Workloads + +OpenGL Linux binaries typically require an X11 server to be running, which can be complicated to set up in a CI environment. Instead of using [GLX](https://registry.khronos.org/OpenGL/specs/gl/glx1.4.pdf) to interface OpenGL with an X11 server, OpenColorIO can optionally use [EGL](https://registry.khronos.org/EGL/specs/eglspec.1.0.pdf) to create an image buffer and render to it without the need for a running X server: + +[OpenImageIO OpenGL helper core](https://github.com/AcademySoftwareFoundation/OpenColorIO/blob/main/src/libutils/oglapphelpers/oglapp.cpp) + +OpenColorIO runs its GPU CI workloads on [AWS Codebuild](https://aws.amazon.com/codebuild/). + +The `NVIDIA_DRIVER_CAPABILITIES` environment varible needs to be set to enable additional capabilities for OpenGL workloads: + +``` +NVIDIA_DRIVER_CAPABILITIES=compute,graphics,utility +``` + +#### OpenGL on a Workstation + +In an X11 workstation environment, you can run an OpenGL binary inside a container with: + +``` +docker run -it --rm --gpus all -e NVIDIA_DRIVER_CAPABILITIES=all -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix aswftesting/ci-common:6 /usr/bin/glxgears +``` + +### Harvesting Pre-Built Binaries + +The container images can be used to harvest pre-built binaries: + +```bash +docker image pull aswf/ci-openexr:2026 +docker create --name tmp-openexr aswf/ci-openexr:2026 +docker cp tmp-openexr:/usr/local/lib/libImath-3_2.so.30.3.2.2 /tmp/libImath-3_2.so.30.3.2.2 +docker rm tmp-openexr +``` + +A challenge is that when creating the image +`aswf/ci-openexr`, all the Conan packages which are pre-requisites to build OpenEXR (but not OpenEXR itself) get "flattened" into `/usr/local/`: this can make it difficult to extract only the binaries for a specific package. The list of files in a specific Conan package can be found in the [ASWF Artifactory Repository](https://linuxfoundation.jfrog.io/ui/packages) + +### Downloading Conan Packages + +In a local clone of the [aswf-docker repository](https://github.com/AcademySoftwareFoundation/aswf-docker) follow the instructions in [python/README.md](https://github.com/AcademySoftwareFoundation/aswf-docker/blob/main/python/README.md) to set up a dev environment and activate the venv virtual environment. You should then be able to fetch a pre-build Conan package with: + +```bash +git clone https://github.com/AcademySoftwareFoundation/aswf-docker +cd aswf-docker +uv sync --all-extras +source .venv/bin/activate +CONAN_HOME=/path_to/aswf-docker/packages/conan/settings conan install -cc core.cache:storage_path=/tmp/conan_home/d --requires=imath/3.2.2@aswf/vfx2026 --profile:all=packages/conan/settings/profiles_aswf/vfx2026 --deployer-folder /tmp --deployer=direct_deploy +``` + +You will end up with the contents of the `imath` Conan package in `/tmp/direct_deploy/imath/`. You can use `--deployer=full_deploy` to get all of its transitive dependencies installed as well, this time in `/tmp/full_deploy/host/`: + +``` +$ ls /tmp/full_deploy/host +boost bzip2 cpython expat gdbm imath libbacktrace libffi mpdecimal openssl pybind11 sqlite3 tcl tk util-linux-libuuid xz_utils zlib +``` + +This will also create a cache of Conan packages in `/tmp/conan_home/d/` which you may want to delete. diff --git a/ci-usd/Dockerfile b/ci-usd/Dockerfile index 5aff66cb..0d342606 100644 --- a/ci-usd/Dockerfile +++ b/ci-usd/Dockerfile @@ -16,54 +16,8 @@ ARG ASWF_CXX_STANDARD ARG ASWF_VFXPLATFORM_VERSION -ARG ASWF_B2_VERSION -ARG ASWF_BZIP2_VERSION -ARG ASWF_CPPUNIT_VERSION -ARG ASWF_EXPAT_VERSION -ARG ASWF_FMT_VERSION -ARG ASWF_GTEST_VERSION -ARG ASWF_LIBBACKTRACE_VERSION -ARG ASWF_LIBDEFLATE_VERSION -ARG ASWF_LIBICONV_VERSION -ARG ASWF_LIBXCRYPT_VERSION -ARG ASWF_LZ4_VERSION -ARG ASWF_PUGIXML_VERSION -ARG ASWF_PYSTRING_VERSION -ARG ASWF_SNAPPY_VERSION -ARG ASWF_ONETBB_VERSION -ARG ASWF_TSL_ROBIN_MAP_VERSION -ARG ASWF_YAML_CPP_VERSION -ARG ASWF_ZLIB_VERSION -ARG ASWF_ZSTD_VERSION -ARG ASWF_C_BLOSC_VERSION -ARG ASWF_CPYTHON_VERSION -ARG ASWF_FREETYPE_VERSION -ARG ASWF_GLEW_VERSION -ARG ASWF_GLFW_VERSION -ARG ASWF_LOG4CPLUS_VERSION -ARG ASWF_MINIZIP_NG_VERSION -ARG ASWF_BOOST_VERSION -ARG ASWF_PYBIND11_VERSION -ARG ASWF_LIBJPEG_TURBO_VERSION -ARG ASWF_LIBWEBP_VERSION -ARG ASWF_MD4C_VERSION -ARG ASWF_QT_VERSION -ARG ASWF_PYSIDE_VERSION -ARG ASWF_HIGHWAY_VERSION -ARG ASWF_IMATH_VERSION -ARG ASWF_LCMS_VERSION -ARG ASWF_LIBULTRAHDR_VERSION -ARG ASWF_OPENSUBDIV_VERSION -ARG ASWF_PARTIO_VERSION -ARG ASWF_PTEX_VERSION -ARG ASWF_LIBJXL_VERSION -ARG ASWF_OPENEXR_VERSION -ARG ASWF_ALEMBIC_VERSION -ARG ASWF_OCIO_VERSION -ARG ASWF_OIIO_VERSION -ARG ASWF_MATERIALX_VERSION +ARG ASWF_OPENUSD_VERSION ARG ASWF_NUMPY_VERSION -ARG ASWF_HDF5_VERSION ARG ASWF_VFXPLATFORM_VERSION ARG ASWF_USD_VERSION @@ -85,62 +39,16 @@ ARG ASWF_CXX_STANDARD -ARG ASWF_B2_VERSION -ARG ASWF_BZIP2_VERSION -ARG ASWF_CPPUNIT_VERSION -ARG ASWF_EXPAT_VERSION -ARG ASWF_FMT_VERSION -ARG ASWF_GTEST_VERSION -ARG ASWF_LIBBACKTRACE_VERSION -ARG ASWF_LIBDEFLATE_VERSION -ARG ASWF_LIBICONV_VERSION -ARG ASWF_LIBXCRYPT_VERSION -ARG ASWF_LZ4_VERSION -ARG ASWF_PUGIXML_VERSION -ARG ASWF_PYSTRING_VERSION -ARG ASWF_SNAPPY_VERSION -ARG ASWF_ONETBB_VERSION -ARG ASWF_TSL_ROBIN_MAP_VERSION -ARG ASWF_YAML_CPP_VERSION -ARG ASWF_ZLIB_VERSION -ARG ASWF_ZSTD_VERSION -ARG ASWF_C_BLOSC_VERSION -ARG ASWF_CPYTHON_VERSION -ARG ASWF_FREETYPE_VERSION -ARG ASWF_GLEW_VERSION -ARG ASWF_GLFW_VERSION -ARG ASWF_LOG4CPLUS_VERSION -ARG ASWF_MINIZIP_NG_VERSION -ARG ASWF_BOOST_VERSION -ARG ASWF_PYBIND11_VERSION -ARG ASWF_LIBJPEG_TURBO_VERSION -ARG ASWF_LIBWEBP_VERSION -ARG ASWF_MD4C_VERSION -ARG ASWF_QT_VERSION -ARG ASWF_PYSIDE_VERSION -ARG ASWF_HIGHWAY_VERSION -ARG ASWF_IMATH_VERSION -ARG ASWF_LCMS_VERSION -ARG ASWF_LIBULTRAHDR_VERSION -ARG ASWF_OPENSUBDIV_VERSION -ARG ASWF_PARTIO_VERSION -ARG ASWF_PTEX_VERSION -ARG ASWF_LIBJXL_VERSION -ARG ASWF_OPENEXR_VERSION -ARG ASWF_ALEMBIC_VERSION -ARG ASWF_OCIO_VERSION -ARG ASWF_OIIO_VERSION -ARG ASWF_MATERIALX_VERSION +ARG ASWF_OPENUSD_VERSION ARG ASWF_NUMPY_VERSION -ARG ASWF_HDF5_VERSION ARG ASWF_VFXPLATFORM_VERSION ARG ASWF_USD_VERSION LABEL org.opencontainers.image.name="$ASWF_ORG/ci-usd" -LABEL org.opencontainers.image.title="USD CI Docker Image" -LABEL org.opencontainers.image.description="Contains: Python, Qt, PySide and other USD upstream dependencies\ -Warning: this image does *not* contain USD itself as it is used to *build* USD!" +LABEL org.opencontainers.image.title="OpenUSD CI Docker Image" +LABEL org.opencontainers.image.description="Contains: Python, Qt, PySide and other OpenUSD upstream dependencies\ +Warning: this image does *not* contain OpenUSD itself as it is used to *build* OpenUSD!" LABEL org.opencontainers.image.url="http://aswf.io/" LABEL org.opencontainers.image.source="https://github.com/AcademySoftwareFoundation/aswf-docker/blob/main/ci-usd/Dockerfile" LABEL org.opencontainers.image.vendor="AcademySoftwareFoundation" @@ -151,54 +59,8 @@ LABEL org.opencontainers.image.version="${ASWF_VERSION}" LABEL com.vfxplatform.version="${ASWF_VFXPLATFORM_VERSION}" -LABEL io.aswf.docker.versions.b2="$ASWF_B2_VERSION" -LABEL io.aswf.docker.versions.bzip2="$ASWF_BZIP2_VERSION" -LABEL io.aswf.docker.versions.cppunit="$ASWF_CPPUNIT_VERSION" -LABEL io.aswf.docker.versions.expat="$ASWF_EXPAT_VERSION" -LABEL io.aswf.docker.versions.fmt="$ASWF_FMT_VERSION" -LABEL io.aswf.docker.versions.gtest="$ASWF_GTEST_VERSION" -LABEL io.aswf.docker.versions.libbacktrace="$ASWF_LIBBACKTRACE_VERSION" -LABEL io.aswf.docker.versions.libdeflate="$ASWF_LIBDEFLATE_VERSION" -LABEL io.aswf.docker.versions.libiconv="$ASWF_LIBICONV_VERSION" -LABEL io.aswf.docker.versions.libxcrypt="$ASWF_LIBXCRYPT_VERSION" -LABEL io.aswf.docker.versions.lz4="$ASWF_LZ4_VERSION" -LABEL io.aswf.docker.versions.pugixml="$ASWF_PUGIXML_VERSION" -LABEL io.aswf.docker.versions.pystring="$ASWF_PYSTRING_VERSION" -LABEL io.aswf.docker.versions.snappy="$ASWF_SNAPPY_VERSION" -LABEL io.aswf.docker.versions.onetbb="$ASWF_ONETBB_VERSION" -LABEL io.aswf.docker.versions.tsl-robin-map="$ASWF_TSL_ROBIN_MAP_VERSION" -LABEL io.aswf.docker.versions.yaml-cpp="$ASWF_YAML_CPP_VERSION" -LABEL io.aswf.docker.versions.zlib="$ASWF_ZLIB_VERSION" -LABEL io.aswf.docker.versions.zstd="$ASWF_ZSTD_VERSION" -LABEL io.aswf.docker.versions.c-blosc="$ASWF_C_BLOSC_VERSION" -LABEL io.aswf.docker.versions.cpython="$ASWF_CPYTHON_VERSION" -LABEL io.aswf.docker.versions.freetype="$ASWF_FREETYPE_VERSION" -LABEL io.aswf.docker.versions.glew="$ASWF_GLEW_VERSION" -LABEL io.aswf.docker.versions.glfw="$ASWF_GLFW_VERSION" -LABEL io.aswf.docker.versions.log4cplus="$ASWF_LOG4CPLUS_VERSION" -LABEL io.aswf.docker.versions.minizip-ng="$ASWF_MINIZIP_NG_VERSION" -LABEL io.aswf.docker.versions.boost="$ASWF_BOOST_VERSION" -LABEL io.aswf.docker.versions.pybind11="$ASWF_PYBIND11_VERSION" -LABEL io.aswf.docker.versions.libjpeg-turbo="$ASWF_LIBJPEG_TURBO_VERSION" -LABEL io.aswf.docker.versions.libwebp="$ASWF_LIBWEBP_VERSION" -LABEL io.aswf.docker.versions.md4c="$ASWF_MD4C_VERSION" -LABEL io.aswf.docker.versions.qt="$ASWF_QT_VERSION" -LABEL io.aswf.docker.versions.pyside="$ASWF_PYSIDE_VERSION" -LABEL io.aswf.docker.versions.highway="$ASWF_HIGHWAY_VERSION" -LABEL io.aswf.docker.versions.imath="$ASWF_IMATH_VERSION" -LABEL io.aswf.docker.versions.lcms="$ASWF_LCMS_VERSION" -LABEL io.aswf.docker.versions.libultrahdr="$ASWF_LIBULTRAHDR_VERSION" -LABEL io.aswf.docker.versions.opensubdiv="$ASWF_OPENSUBDIV_VERSION" -LABEL io.aswf.docker.versions.partio="$ASWF_PARTIO_VERSION" -LABEL io.aswf.docker.versions.ptex="$ASWF_PTEX_VERSION" -LABEL io.aswf.docker.versions.libjxl="$ASWF_LIBJXL_VERSION" -LABEL io.aswf.docker.versions.openexr="$ASWF_OPENEXR_VERSION" -LABEL io.aswf.docker.versions.alembic="$ASWF_ALEMBIC_VERSION" -LABEL io.aswf.docker.versions.ocio="$ASWF_OCIO_VERSION" -LABEL io.aswf.docker.versions.oiio="$ASWF_OIIO_VERSION" -LABEL io.aswf.docker.versions.materialx="$ASWF_MATERIALX_VERSION" +LABEL io.aswf.docker.versions.openusd="$ASWF_OPENUSD_VERSION" LABEL io.aswf.docker.versions.numpy="$ASWF_NUMPY_VERSION" -LABEL io.aswf.docker.versions.hdf5="$ASWF_HDF5_VERSION" LABEL io.aswf.docker.versions.vfxplatform="$ASWF_VFXPLATFORM_VERSION" @@ -213,54 +75,8 @@ ENV ASWF_CXX_STANDARD=${ASWF_CXX_STANDARD} ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION} -ENV ASWF_B2_VERSION=$ASWF_B2_VERSION -ENV ASWF_BZIP2_VERSION=$ASWF_BZIP2_VERSION -ENV ASWF_CPPUNIT_VERSION=$ASWF_CPPUNIT_VERSION -ENV ASWF_EXPAT_VERSION=$ASWF_EXPAT_VERSION -ENV ASWF_FMT_VERSION=$ASWF_FMT_VERSION -ENV ASWF_GTEST_VERSION=$ASWF_GTEST_VERSION -ENV ASWF_LIBBACKTRACE_VERSION=$ASWF_LIBBACKTRACE_VERSION -ENV ASWF_LIBDEFLATE_VERSION=$ASWF_LIBDEFLATE_VERSION -ENV ASWF_LIBICONV_VERSION=$ASWF_LIBICONV_VERSION -ENV ASWF_LIBXCRYPT_VERSION=$ASWF_LIBXCRYPT_VERSION -ENV ASWF_LZ4_VERSION=$ASWF_LZ4_VERSION -ENV ASWF_PUGIXML_VERSION=$ASWF_PUGIXML_VERSION -ENV ASWF_PYSTRING_VERSION=$ASWF_PYSTRING_VERSION -ENV ASWF_SNAPPY_VERSION=$ASWF_SNAPPY_VERSION -ENV ASWF_ONETBB_VERSION=$ASWF_ONETBB_VERSION -ENV ASWF_TSL_ROBIN_MAP_VERSION=$ASWF_TSL_ROBIN_MAP_VERSION -ENV ASWF_YAML_CPP_VERSION=$ASWF_YAML_CPP_VERSION -ENV ASWF_ZLIB_VERSION=$ASWF_ZLIB_VERSION -ENV ASWF_ZSTD_VERSION=$ASWF_ZSTD_VERSION -ENV ASWF_C_BLOSC_VERSION=$ASWF_C_BLOSC_VERSION -ENV ASWF_CPYTHON_VERSION=$ASWF_CPYTHON_VERSION -ENV ASWF_FREETYPE_VERSION=$ASWF_FREETYPE_VERSION -ENV ASWF_GLEW_VERSION=$ASWF_GLEW_VERSION -ENV ASWF_GLFW_VERSION=$ASWF_GLFW_VERSION -ENV ASWF_LOG4CPLUS_VERSION=$ASWF_LOG4CPLUS_VERSION -ENV ASWF_MINIZIP_NG_VERSION=$ASWF_MINIZIP_NG_VERSION -ENV ASWF_BOOST_VERSION=$ASWF_BOOST_VERSION -ENV ASWF_PYBIND11_VERSION=$ASWF_PYBIND11_VERSION -ENV ASWF_LIBJPEG_TURBO_VERSION=$ASWF_LIBJPEG_TURBO_VERSION -ENV ASWF_LIBWEBP_VERSION=$ASWF_LIBWEBP_VERSION -ENV ASWF_MD4C_VERSION=$ASWF_MD4C_VERSION -ENV ASWF_QT_VERSION=$ASWF_QT_VERSION -ENV ASWF_PYSIDE_VERSION=$ASWF_PYSIDE_VERSION -ENV ASWF_HIGHWAY_VERSION=$ASWF_HIGHWAY_VERSION -ENV ASWF_IMATH_VERSION=$ASWF_IMATH_VERSION -ENV ASWF_LCMS_VERSION=$ASWF_LCMS_VERSION -ENV ASWF_LIBULTRAHDR_VERSION=$ASWF_LIBULTRAHDR_VERSION -ENV ASWF_OPENSUBDIV_VERSION=$ASWF_OPENSUBDIV_VERSION -ENV ASWF_PARTIO_VERSION=$ASWF_PARTIO_VERSION -ENV ASWF_PTEX_VERSION=$ASWF_PTEX_VERSION -ENV ASWF_LIBJXL_VERSION=$ASWF_LIBJXL_VERSION -ENV ASWF_OPENEXR_VERSION=$ASWF_OPENEXR_VERSION -ENV ASWF_ALEMBIC_VERSION=$ASWF_ALEMBIC_VERSION -ENV ASWF_OCIO_VERSION=$ASWF_OCIO_VERSION -ENV ASWF_OIIO_VERSION=$ASWF_OIIO_VERSION -ENV ASWF_MATERIALX_VERSION=$ASWF_MATERIALX_VERSION +ENV ASWF_OPENUSD_VERSION=$ASWF_OPENUSD_VERSION ENV ASWF_NUMPY_VERSION=$ASWF_NUMPY_VERSION -ENV ASWF_HDF5_VERSION=$ASWF_HDF5_VERSION ENV ASWF_VFXPLATFORM_VERSION=$ASWF_VFXPLATFORM_VERSION ENV ASWF_USD_VERSION=$ASWF_USD_VERSION @@ -281,52 +97,7 @@ COPY < . [requires] -b2/${ASWF_B2_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -bzip2/${ASWF_BZIP2_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -cppunit/${ASWF_CPPUNIT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -expat/${ASWF_EXPAT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -fmt/${ASWF_FMT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -gtest/${ASWF_GTEST_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libbacktrace/${ASWF_LIBBACKTRACE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libdeflate/${ASWF_LIBDEFLATE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libiconv/${ASWF_LIBICONV_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libxcrypt/${ASWF_LIBXCRYPT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -lz4/${ASWF_LZ4_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pugixml/${ASWF_PUGIXML_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pystring/${ASWF_PYSTRING_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -snappy/${ASWF_SNAPPY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -onetbb/${ASWF_ONETBB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -tsl-robin-map/${ASWF_TSL_ROBIN_MAP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -yaml-cpp/${ASWF_YAML_CPP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -zlib/${ASWF_ZLIB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -zstd/${ASWF_ZSTD_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -c-blosc/${ASWF_C_BLOSC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -cpython/${ASWF_CPYTHON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -freetype/${ASWF_FREETYPE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -glew/${ASWF_GLEW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -glfw/${ASWF_GLFW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -log4cplus/${ASWF_LOG4CPLUS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -minizip-ng/${ASWF_MINIZIP_NG_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -boost/${ASWF_BOOST_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pybind11/${ASWF_PYBIND11_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libjpeg-turbo/${ASWF_LIBJPEG_TURBO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libwebp/${ASWF_LIBWEBP_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -md4c/${ASWF_MD4C_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -qt/${ASWF_QT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pyside/${ASWF_PYSIDE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -highway/${ASWF_HIGHWAY_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -imath/${ASWF_IMATH_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -lcms/${ASWF_LCMS_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libultrahdr/${ASWF_LIBULTRAHDR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -opensubdiv/${ASWF_OPENSUBDIV_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -partio/${ASWF_PARTIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -ptex/${ASWF_PTEX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libjxl/${ASWF_LIBJXL_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -openexr/${ASWF_OPENEXR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -alembic/${ASWF_ALEMBIC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -ocio/${ASWF_OCIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -oiio/${ASWF_OIIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -materialx/${ASWF_MATERIALX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +openusd/${ASWF_OPENUSD_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} EOF ENV CONAN_HOME=${ASWF_CONAN_HOME}/.conan2 diff --git a/ci-usd/README.md b/ci-usd/README.md index 0a669635..8d11f33a 100644 --- a/ci-usd/README.md +++ b/ci-usd/README.md @@ -11,286 +11,66 @@ See [aswf.io](https://aswf.io) and [aswf-docker](https://github.com/AcademySoftw for further information, and participate in the discussion on the [ASWF Slack #wg-ci channel](https://academysoftwarefdn.slack.com/archives/C0169RX7MMK). -## USD CI Docker Image +## OpenUSD CI Docker Image -Contains: Python, Qt, PySide and other USD upstream dependencies -Warning: this image does *not* contain USD itself as it is used to *build* USD! +Contains: Python, Qt, PySide and other OpenUSD upstream dependencies +Warning: this image does *not* contain OpenUSD itself as it is used to *build* OpenUSD! [Docker Image Source](https://github.com/AcademySoftwareFoundation/aswf-docker/blob/main/ci-usd/Dockerfile) ## [aswf/ci-usd:2019.9](https://hub.docker.com/r/aswf/ci-usd/tags?page=1&name=2019.9) Contains: -* cppunit-1.14.0 -* gtest-1.8.1 -* onetbb-2018 -* cpython-2.7.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.66.0 -* pybind11-2.4.3 -* qt-5.12.6 -* pyside-5.12.6 -* imath-2.3.0 -* opensubdiv-3_3_3 -* partio-1.10.1 -* ptex-2.1.33 -* openexr-2.3.0 -* alembic-1.7.11 -* ocio-1.1.0 -* oiio-2.0.8 +* openusd-19.11 * numpy-1.14 -* hdf5-1.8.21 * vfxplatform-2019 ## [aswf/ci-usd:2020.8](https://hub.docker.com/r/aswf/ci-usd/tags?page=1&name=2020.8) Contains: -* cppunit-1.15.1 -* gtest-1.10.0 -* onetbb-2019_u6 -* cpython-3.7.3 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.70.0 -* pybind11-2.4.3 -* qt-5.12.6 -* pyside-5.12.6 -* imath-2.4.0 -* opensubdiv-3_4_3 -* partio-1.10.1 -* ptex-2.3.2 -* openexr-2.4.0 -* alembic-1.7.12 -* ocio-1.1.1 -* oiio-2.1.13.0 +* openusd-20.11 * numpy-1.16 -* hdf5-1.8.21 * vfxplatform-2020 ## [aswf/ci-usd:2021.6](https://hub.docker.com/r/aswf/ci-usd/tags?page=1&name=2021.6) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020_u2 -* cpython-3.7.9 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.73.0 -* pybind11-2.6.2 -* qt-5.15.2 -* pyside-5.15.2 -* imath-2.5.5 -* opensubdiv-3_4_3 -* partio-1.14.0 -* ptex-2.3.2 -* openexr-2.5.5 -* alembic-1.7.16 -* ocio-2.0.1 -* oiio-2.2.14.0 +* openusd-21.05 * numpy-1.19 -* hdf5-1.8.21 * vfxplatform-2021 ## [aswf/ci-usd:2022.4](https://hub.docker.com/r/aswf/ci-usd/tags?page=1&name=2022.4) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020.3 -* cpython-3.9.15 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.76.0 -* pybind11-2.8.1 -* qt-5.15.2 -* pyside-5.15.2 -* imath-3.1.5 -* opensubdiv-3_4_4 -* partio-1.14.0 -* ptex-2.4.0 -* openexr-3.1.5 -* alembic-1.8.2 -* ocio-2.1.1 -* oiio-2.4.5.0 -* materialx-1.38.5 +* openusd-22.11 * numpy-1.20 -* hdf5-1.8.21 * vfxplatform-2022 ## [aswf/ci-usd:2023.2](https://hub.docker.com/r/aswf/ci-usd/tags?page=1&name=2023.2) Contains: -* cppunit-1.15.1 -* gtest-1.11.0 -* onetbb-2020.3 -* cpython-3.10.11 -* glew-2.1.0 -* glfw-3.1.2 -* log4cplus-1.1.2 -* boost-1.80.0 -* pybind11-2.9.2 -* qt-5.15.9 -* pyside-5.15.9 -* imath-3.1.9 -* opensubdiv-3_5_0 -* partio-1.17.1 -* ptex-2.4.2 -* openexr-3.1.11 -* alembic-1.8.5 -* ocio-2.2.1 -* oiio-2.4.13.0 -* materialx-1.38.7 +* openusd-23.05 * numpy-1.23.5 -* hdf5-1.8.23 * vfxplatform-2023 ## [aswf/ci-usd:2024.6](https://hub.docker.com/r/aswf/ci-usd/tags?page=1&name=2024.6) Contains: -* b2-5.2.1 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.6.4 -* fmt-11.2.0 -* gtest-1.15.2 -* libbacktrace-cci.20210118 -* libdeflate-1.23 -* libiconv-1.17 -* libxcrypt-4.4.36 -* lz4-1.10.0 -* pugixml-1.14 -* pystring-1.1.4 -* snappy-1.1.10 -* onetbb-2020.3 -* zlib-1.3.1 -* zstd-1.5.6 -* cpython-3.11.13 -* freetype-2.13.2 -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.82.0 -* pybind11-2.13.6 -* libwebp-1.5.0 -* md4c-0.4.8 -* qt-6.5.6 -* pyside-6.5.6 -* highway-1.2.0 -* imath-3.1.12 -* lcms-2.17 -* libultrahdr-1.4.0 -* opensubdiv-3.6.1 -* partio-1.19.0 -* ptex-2.4.2 -* libjxl-0.11.1 -* openexr-3.2.5 -* alembic-1.8.8 -* ocio-2.3.2 -* oiio-2.5.19.0 -* materialx-1.39.1 +* openusd-24.08 * numpy-1.24.3 -* hdf5-1.14.6 * vfxplatform-2024 ## [aswf/ci-usd:2025.5](https://hub.docker.com/r/aswf/ci-usd/tags?page=1&name=2025.5) Contains: -* b2-5.2.1 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.6.4 -* fmt-11.2.0 -* gtest-1.15.2 -* libbacktrace-cci.20210118 -* libdeflate-1.23 -* libiconv-1.17 -* libxcrypt-4.4.36 -* lz4-1.10.0 -* pugixml-1.14 -* pystring-1.1.4 -* snappy-1.1.10 -* onetbb-2021.13.0 -* zlib-1.3.1 -* zstd-1.5.6 -* cpython-3.11.13 -* freetype-2.13.2 -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.85.0 -* pybind11-2.13.6 -* libwebp-1.5.0 -* md4c-0.4.8 -* qt-6.5.6 -* pyside-6.5.6 -* highway-1.2.0 -* imath-3.1.12 -* lcms-2.17 -* libultrahdr-1.4.0 -* opensubdiv-3.6.1 -* partio-1.19.0 -* ptex-2.4.3 -* libjxl-0.11.1 -* openexr-3.3.7 -* alembic-1.8.8 -* ocio-2.4.2 -* oiio-3.1.6.2 -* materialx-1.39.3 +* openusd-25.05.01 * numpy-1.26.4 -* hdf5-1.14.6 * vfxplatform-2025 ## [aswf/ci-usd:2026.3](https://hub.docker.com/r/aswf/ci-usd/tags?page=1&name=2026.3) Contains: -* b2-5.3.2 -* bzip2-1.0.8 -* cppunit-1.15.1 -* expat-2.7.1 -* fmt-11.2.0 -* gtest-1.17.0 -* libbacktrace-cci.20210118 -* libdeflate-1.24 -* libiconv-1.18 -* libxcrypt-4.4.38 -* lz4-1.10.0 -* pugixml-1.15 -* pystring-1.1.4 -* snappy-1.2.2 -* onetbb-2022.1.0 -* zlib-1.3.1 -* zstd-1.5.7 -* cpython-3.13.3 -* freetype-2.13.2 -* glew-2.2.0 -* glfw-3.4 -* log4cplus-2.1.2 -* boost-1.88.0 -* pybind11-2.13.6 -* libwebp-1.5.0 -* md4c-0.5.2 -* qt-6.8.3 -* pyside-6.8.3 -* highway-1.2.0 -* imath-3.2.2 -* lcms-2.17 -* libultrahdr-1.4.0 -* opensubdiv-3.7.0 -* partio-1.19.0 -* ptex-2.4.3 -* libjxl-0.11.1 -* openexr-3.4.5 -* alembic-1.8.10 -* ocio-2.5.1 -* oiio-3.1.10.0 -* materialx-1.39.4 +* openusd-26.03 * numpy-2.3.2 -* hdf5-1.14.6 * vfxplatform-2026 diff --git a/ci-usd/image.yaml b/ci-usd/image.yaml index b5ec90ca..c98df3e0 100644 --- a/ci-usd/image.yaml +++ b/ci-usd/image.yaml @@ -1,58 +1,12 @@ name: "usd" -title: "USD CI Docker Image" +title: "OpenUSD CI Docker Image" description: | - Contains: Python, Qt, PySide and other USD upstream dependencies - Warning: this image does *not* contain USD itself as it is used to *build* USD! + Contains: Python, Qt, PySide and other OpenUSD upstream dependencies + Warning: this image does *not* contain OpenUSD itself as it is used to *build* OpenUSD! packages: - - b2 # base1-1 packages - - bzip2 - - cppunit - - expat - - fmt - - gtest - - libbacktrace - - libdeflate - - libiconv - - libxcrypt - - lz4 - - pugixml - - pystring - - snappy - - onetbb - - tsl-robin-map - - yaml-cpp - - zlib - - zstd - - c-blosc # base1-2 packages - - cpython - - freetype - - glew - - glfw - - log4cplus - - minizip-ng - - boost # base1-3 packages - - pybind11 - - libjpeg-turbo # base2-1 packages - - libwebp - - md4c - - qt # base2-2 packages - - pyside # base2-3 packages - - highway # vfx1-1 packages - - imath - - lcms - - libultrahdr - - opensubdiv - - partio - - ptex - - libjxl # vfx1-2 packages - - openexr - - alembic # vfx1-3 packages - - ocio - - oiio # vfx1-4 packages - - materialx # vfx2-1 packages + - openusd # all dependencies will be installed except openusd itself implicit_packages: - numpy - - hdf5 - vfxplatform docker_from: ${ASWF_ORG}/ci-common:${CI_COMMON_VERSION}-clang${ASWF_CLANG_MAJOR_VERSION} docker_package_version: $ASWF_VFXPLATFORM_VERSION diff --git a/ci-vfxall/Dockerfile b/ci-vfxall/Dockerfile index eea10b9f..dc745810 100644 --- a/ci-vfxall/Dockerfile +++ b/ci-vfxall/Dockerfile @@ -31,9 +31,9 @@ ARG ASWF_OPENEXR_VERSION ARG ASWF_OIIO_VERSION ARG ASWF_OCIO_VERSION ARG ASWF_OPENFX_VERSION +ARG ASWF_OPENUSD_VERSION ARG ASWF_OPENVDB_VERSION ARG ASWF_MATERIALX_VERSION -ARG ASWF_USD_VERSION ARG ASWF_OSL_VERSION ARG ASWF_OTIO_VERSION ARG ASWF_RAWTOACES_VERSION @@ -44,7 +44,6 @@ ARG ASWF_VFXPLATFORM_VERSION # Comment out this block to use Conan packages -FROM ${ASWF_PKG_ORG}/ci-package-usd:$ASWF_VFXPLATFORM_VERSION-$ASWF_USD_VERSION AS ci-package-usd FROM ${ASWF_PKG_ORG}/ci-package-otio:$ASWF_VFXPLATFORM_VERSION-$ASWF_OTIO_VERSION AS ci-package-otio FROM ${ASWF_ORG}/ci-common:${CI_COMMON_VERSION}-clang${ASWF_CLANG_MAJOR_VERSION} AS ci-vfxall @@ -75,9 +74,9 @@ ARG ASWF_OPENEXR_VERSION ARG ASWF_OIIO_VERSION ARG ASWF_OCIO_VERSION ARG ASWF_OPENFX_VERSION +ARG ASWF_OPENUSD_VERSION ARG ASWF_OPENVDB_VERSION ARG ASWF_MATERIALX_VERSION -ARG ASWF_USD_VERSION ARG ASWF_OSL_VERSION ARG ASWF_OTIO_VERSION ARG ASWF_RAWTOACES_VERSION @@ -113,9 +112,9 @@ LABEL io.aswf.docker.versions.openexr="$ASWF_OPENEXR_VERSION" LABEL io.aswf.docker.versions.oiio="$ASWF_OIIO_VERSION" LABEL io.aswf.docker.versions.ocio="$ASWF_OCIO_VERSION" LABEL io.aswf.docker.versions.openfx="$ASWF_OPENFX_VERSION" +LABEL io.aswf.docker.versions.openusd="$ASWF_OPENUSD_VERSION" LABEL io.aswf.docker.versions.openvdb="$ASWF_OPENVDB_VERSION" LABEL io.aswf.docker.versions.materialx="$ASWF_MATERIALX_VERSION" -LABEL io.aswf.docker.versions.usd="$ASWF_USD_VERSION" LABEL io.aswf.docker.versions.osl="$ASWF_OSL_VERSION" LABEL io.aswf.docker.versions.otio="$ASWF_OTIO_VERSION" LABEL io.aswf.docker.versions.rawtoaces="$ASWF_RAWTOACES_VERSION" @@ -149,9 +148,9 @@ ENV ASWF_OPENEXR_VERSION=$ASWF_OPENEXR_VERSION ENV ASWF_OIIO_VERSION=$ASWF_OIIO_VERSION ENV ASWF_OCIO_VERSION=$ASWF_OCIO_VERSION ENV ASWF_OPENFX_VERSION=$ASWF_OPENFX_VERSION +ENV ASWF_OPENUSD_VERSION=$ASWF_OPENUSD_VERSION ENV ASWF_OPENVDB_VERSION=$ASWF_OPENVDB_VERSION ENV ASWF_MATERIALX_VERSION=$ASWF_MATERIALX_VERSION -ENV ASWF_USD_VERSION=$ASWF_USD_VERSION ENV ASWF_OSL_VERSION=$ASWF_OSL_VERSION ENV ASWF_OTIO_VERSION=$ASWF_OTIO_VERSION ENV ASWF_RAWTOACES_VERSION=$ASWF_RAWTOACES_VERSION @@ -159,7 +158,6 @@ ENV ASWF_NUMPY_VERSION=$ASWF_NUMPY_VERSION ENV ASWF_VFXPLATFORM_VERSION=$ASWF_VFXPLATFORM_VERSION -COPY --from=ci-package-usd /. /usr/local/ COPY --from=ci-package-otio /. /usr/local/ COPY ci-vfxall/README.md ci-vfxall/image.yaml /usr/local/aswf/ @@ -190,9 +188,9 @@ openexr/${ASWF_OPENEXR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} oiio/${ASWF_OIIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} ocio/${ASWF_OCIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} openfx/${ASWF_OPENFX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} +openusd/${ASWF_OPENUSD_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} openvdb/${ASWF_OPENVDB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} materialx/${ASWF_MATERIALX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -# usd/${ASWF_USD_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} osl/${ASWF_OSL_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} # otio/${ASWF_OTIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} rawtoaces/${ASWF_RAWTOACES_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} diff --git a/ci-vfxall/README.md b/ci-vfxall/README.md index 0768748d..b2b660e4 100644 --- a/ci-vfxall/README.md +++ b/ci-vfxall/README.md @@ -33,8 +33,8 @@ Contains: * openexr-2.3.0 * oiio-2.0.8 * ocio-1.1.0 +* openusd-19.11 * openvdb-6.2.1 -* usd-19.11 * osl-1.10.9 * otio-0.12.1 * numpy-1.14 @@ -56,8 +56,8 @@ Contains: * openexr-2.3.0 * oiio-2.0.8 * ocio-1.1.0 +* openusd-19.11 * openvdb-6.2.1 -* usd-19.11 * osl-1.10.9 * otio-0.12.1 * numpy-1.14 @@ -79,8 +79,8 @@ Contains: * openexr-2.3.0 * oiio-2.0.8 * ocio-1.1.0 +* openusd-19.11 * openvdb-6.2.1 -* usd-19.11 * osl-1.10.9 * otio-0.12.1 * numpy-1.14 @@ -102,8 +102,8 @@ Contains: * openexr-2.3.0 * oiio-2.0.8 * ocio-1.1.0 +* openusd-19.11 * openvdb-6.2.1 -* usd-19.11 * osl-1.10.9 * otio-0.12.1 * numpy-1.14 @@ -125,8 +125,8 @@ Contains: * openexr-2.4.0 * oiio-2.1.13.0 * ocio-1.1.1 +* openusd-20.11 * openvdb-7.1.0 -* usd-20.11 * osl-1.10.10 * otio-0.12.1 * numpy-1.16 @@ -148,8 +148,8 @@ Contains: * openexr-2.5.5 * oiio-2.2.14.0 * ocio-2.0.1 +* openusd-21.05 * openvdb-8.0.1 -* usd-21.05 * osl-1.11.13.0 * otio-0.13 * numpy-1.19 @@ -171,9 +171,9 @@ Contains: * openexr-3.1.5 * oiio-2.4.5.0 * ocio-2.1.1 +* openusd-22.11 * openvdb-9.1.0 * materialx-1.38.5 -* usd-22.11 * osl-1.12.7.0 * otio-0.14.1 * numpy-1.20 @@ -195,9 +195,9 @@ Contains: * openexr-3.1.5 * oiio-2.4.5.0 * ocio-2.1.1 +* openusd-22.11 * openvdb-9.1.0 * materialx-1.38.5 -* usd-22.11 * osl-1.12.7.0 * otio-0.14.1 * numpy-1.20 @@ -219,9 +219,9 @@ Contains: * openexr-3.1.5 * oiio-2.4.5.0 * ocio-2.1.1 +* openusd-22.11 * openvdb-9.1.0 * materialx-1.38.5 -* usd-22.11 * osl-1.12.7.0 * otio-0.14.1 * numpy-1.20 @@ -243,9 +243,9 @@ Contains: * openexr-3.1.5 * oiio-2.4.5.0 * ocio-2.1.1 +* openusd-22.11 * openvdb-9.1.0 * materialx-1.38.5 -* usd-22.11 * osl-1.12.7.0 * otio-0.14.1 * numpy-1.20 @@ -267,9 +267,9 @@ Contains: * openexr-3.1.5 * oiio-2.4.5.0 * ocio-2.1.1 +* openusd-22.11 * openvdb-9.1.0 * materialx-1.38.5 -* usd-22.11 * osl-1.12.7.0 * otio-0.14.1 * numpy-1.20 @@ -291,9 +291,9 @@ Contains: * openexr-3.1.11 * oiio-2.4.13.0 * ocio-2.2.1 +* openusd-23.05 * openvdb-10.0.1 * materialx-1.38.7 -* usd-23.05 * osl-1.12.13.0 * otio-0.15 * numpy-1.23.5 @@ -315,9 +315,9 @@ Contains: * openexr-3.1.11 * oiio-2.4.13.0 * ocio-2.2.1 +* openusd-23.05 * openvdb-10.0.1 * materialx-1.38.7 -* usd-23.05 * osl-1.12.13.0 * otio-0.15 * numpy-1.23.5 @@ -341,9 +341,9 @@ Contains: * oiio-2.5.19.0 * ocio-2.3.2 * openfx-1.5s +* openusd-24.08 * openvdb-11.0.0 * materialx-1.39.1 -* usd-24.08 * osl-1.13.11.0 * otio-0.17.0 * rawtoaces-1.1.0 @@ -368,9 +368,9 @@ Contains: * oiio-2.5.19.0 * ocio-2.3.2 * openfx-1.5s +* openusd-24.08 * openvdb-11.0.0 * materialx-1.39.1 -* usd-24.08 * osl-1.13.11.0 * otio-0.17.0 * rawtoaces-1.1.0 @@ -395,9 +395,9 @@ Contains: * oiio-3.1.6.2 * ocio-2.4.2 * openfx-1.5s +* openusd-25.05.01 * openvdb-12.1.1 * materialx-1.39.3 -* usd-25.05.01 * osl-1.14.7.0 * otio-0.17.0 * rawtoaces-1.1.0 @@ -422,9 +422,9 @@ Contains: * oiio-3.1.6.2 * ocio-2.4.2 * openfx-1.5s +* openusd-25.05.01 * openvdb-12.1.1 * materialx-1.39.3 -* usd-25.05.01 * osl-1.14.7.0 * otio-0.17.0 * rawtoaces-1.1.0 @@ -449,9 +449,9 @@ Contains: * oiio-3.1.10.0 * ocio-2.5.1 * openfx-1.5s +* openusd-26.03 * openvdb-13.0.0 * materialx-1.39.4 -* usd-25.08 * osl-1.15.1.0 * otio-0.17.0 * rawtoaces-2.0.0 @@ -476,9 +476,9 @@ Contains: * oiio-3.1.10.0 * ocio-2.5.1 * openfx-1.5s +* openusd-26.03 * openvdb-13.0.0 * materialx-1.39.4 -* usd-25.08 * osl-1.15.1.0 * otio-0.17.0 * rawtoaces-2.0.0 diff --git a/ci-vfxall/image.yaml b/ci-vfxall/image.yaml index f2b0d34b..1fad7d82 100644 --- a/ci-vfxall/image.yaml +++ b/ci-vfxall/image.yaml @@ -18,9 +18,9 @@ packages: - oiio - ocio - openfx + - openusd - openvdb - materialx - - usd - osl - otio - rawtoaces diff --git a/packages/conan/recipes/openusd/conandata.yml b/packages/conan/recipes/openusd/conandata.yml new file mode 100644 index 00000000..032329e1 --- /dev/null +++ b/packages/conan/recipes/openusd/conandata.yml @@ -0,0 +1,45 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/EstebanDugueperoux2/conan-center-index/blob/1d8986d11305e1303b1581532f327cdd9d32ed20/recipes/openusd/all/conandata.yml + +sources: + "26.03": + url: "https://github.com/PixarAnimationStudios/OpenUSD/archive/refs/tags/v26.03.tar.gz" + sha256: "590ea75ffa3ac0c35fdd080df04d61a696733b8f3d6a79bdc3f13f8077162d36" + "25.11": + url: "https://github.com/PixarAnimationStudios/OpenUSD/archive/refs/tags/v25.11.tar.gz" + sha256: "c37c633b5037a4552f61574670ecca8836229b78326bd62622f3422671188667" + "25.05.01": + url: "https://github.com/PixarAnimationStudios/OpenUSD/archive/refs/tags/v25.05.01.tar.gz" + sha256: "f424e8db26e063a1b005423ee52142e75c38185bbd4b8126ef64173e906dd50f" + "24.08": + url: "https://github.com/PixarAnimationStudios/OpenUSD/archive/refs/tags/v24.08.tar.gz" + sha256: "6640bb184bf602c6df14fa4a83af6ac5ae1ab8d1d38cf7bb7decfaa9a7ad5d06" + +patches: + "26.03": + # Cannot compile with C++ 20 until https://github.com/PixarAnimationStudios/OpenUSD/issues/4017 is resolved + # - patch_file: "patches/26.03-cxx-standard.patch" + # patch_description: "Don't overrride C++ version" + # patch_type: "conan" + - patch_file: "patches/26.03-dependency-cache.patch" + patch_description: "Missing parameter for std::atomic::store() https://github.com/PixarAnimationStudios/OpenUSD/issues/4016" + patch_type: "conan" + - patch_file: "patches/26.03-cmake-packages.patch" + patch_description: "Emulate behavior of custom CMake modules when building with Conan" + patch_type: "conan" + "25.05.01": + - patch_file: "patches/26.03-dependency-cache.patch" + patch_description: "Missing parameter for std::atomic::store() https://github.com/PixarAnimationStudios/OpenUSD/issues/4016" + patch_type: "conan" + - patch_file: "patches/25.05.01-cmake-packages.patch" + patch_description: "Emulate behavior of custom CMake modules when building with Conan" + patch_type: "conan" + "24.08": + - patch_file: "patches/24.08-cmake-packages.patch" + patch_description: "Emulate behavior of custom CMake modules when building with Conan" + patch_type: "conan" + - patch_file: "patches/24.08-materialx-1.39.diff" + patch_description: "Allow 24.08 to build against MaterialX 1.39.x https://patch-diff.githubusercontent.com/raw/PixarAnimationStudios/OpenUSD/pull/3159.diff" diff --git a/packages/conan/recipes/openusd/conanfile.py b/packages/conan/recipes/openusd/conanfile.py new file mode 100644 index 00000000..2e448100 --- /dev/null +++ b/packages/conan/recipes/openusd/conanfile.py @@ -0,0 +1,532 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/EstebanDugueperoux2/conan-center-index/blob/1d8986d11305e1303b1581532f327cdd9d32ed20/recipes/openusd/all/conanfile.py + +from conan import ConanFile +from conan.errors import ConanInvalidConfiguration +from conan.tools.apple import is_apple_os +from conan.tools.build import check_min_cppstd +from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout +from conan.tools.files import apply_conandata_patches, export_conandata_patches, copy, get, rm, rmdir +from conan.tools.env import VirtualBuildEnv, VirtualRunEnv +from conan.tools.scm import Version + +import os + +required_conan_version = ">=1.53.0" + +class OpenUSDConan(ConanFile): + name = "openusd" + description = "Universal Scene Description" + license = "DocumentRef-LICENSE.txt:LicenseRef-Modified-Apache-2.0-License" + url = "https://github.com/conan-io/conan-center-index" + homepage = "https://openusd.org/" + topics = ("3d", "scene", "usd") + package_type = "library" + settings = "os", "arch", "compiler", "build_type" + options = { + "shared": [True, False], + "fPIC": [True, False], + "with_alembic": [True, False], # ASWF: build with Alembic plugin + "with_hdf5": [True, False], # ASWF: build with HDF5 for Alembic + "with_gpu": [True, False], # ASWF: build with GPU support + "with_gl": [True, False], # ASWF: build with OpenGL + "with_metal": [True, False], # ASWF: build with Metal + "with_vulkan": [True, False], # ASWF: build with Vulkan + "with_materialx": [True, False], # ASWF: build with MaterialX + "with_opencolorio": [True, False], # ASWF: build OpenColorIO plugin + "with_openimageio": [True, False], # ASWF: build OpenImageIO plugin + "with_openvdb": [True, False], # ASWF: build with OpenVDB + "with_osl": [True, False], # ASWF: build with OpenShadingLanguage + "with_ptex": [True, False], # ASWF: build with Ptex + "with_python": [True, False], # ASWF: build with Python + "with_usdview": [True, False], # ASWF: build usdview + } + default_options = { + "shared": False, + "fPIC": False, + "with_alembic": True , # ASWF: build with Alembic plugin + "with_hdf5": True, # ASWF: build with HDF5 for Alembic + "with_gpu": True, # ASWF: build with GPU support + "with_gl": True, # ASWF: build with OpenGL + "with_metal": False, # ASWF: build with Metal + "with_vulkan": False, # ASWF: build with Vulkan, requires VULKAN_SDK and libshaderc + "with_materialx": True, # ASWF: build with MateriaX + "with_opencolorio": True, # ASWF: build OpenColorIO plugin + "with_openimageio": True, # ASWF: build OpenImageIO plugin + "with_openvdb": True, # ASWF: build with OpenVDB + "with_osl": True, # ASWF: build with OpenShadingLanguage + "with_ptex": True, # ASWF: build with Ptex + "with_python": True, # ASWF: build with Python + "with_usdview": True, # ASWF: build usdview + } + + short_paths = True + + @property + def _min_cppstd(self): + return 17 + + @property + def _compilers_minimum_version(self): + # as defined in https://github.com/PixarAnimationStudios/OpenUSD/blob/release/VERSIONS.md + return { + "apple-clang": "13", + "clang": "7", + "gcc": "9", + "msvc": "191", + "Visual Studio": "15", + } + + def export_sources(self): + export_conandata_patches(self) + + def config_options(self): + if self.settings.os == "Windows": + del self.options.fPIC + + def configure(self): + if self.options.shared: + self.options.rm_safe("fPIC") + + def layout(self): + cmake_layout(self, src_folder="src") + + def requirements(self): + self.requires("onetbb/2021.12.0", transitive_headers=True, transitive_libs=True) + self.requires("opensubdiv/3.7.0") + self.requires("opengl/system") + # ASWF: optional requirements + if self.options.with_alembic: + self.requires("alembic/1.8.10") + if self.options.with_hdf5: + self.requires("hdf5/1.14.6") + if self.options.with_materialx: + self.requires("materialx/1.39.4") + if self.options.with_opencolorio: + self.requires("ocio/2.5.1") + if self.options.with_openimageio: + self.requires("oiio/3.1.10.0") + if self.options.with_openvdb: + self.requires("openvdb/13.0.0") + if self.options.with_osl: + self.requires("osl/1.15.1.0") + if self.options.with_ptex: + self.requires("ptex/2.4.3") + if self.options.with_python: + self.requires("cpython/[>=3.9]", transitive_headers=True, transitive_libs=True) + if Version(self.version) < "25.05": + self.requires("boost/1.84.0", transitive_headers=True, transitive_libs=True) + if self.options.with_usdview: + self.requires("pyside/6.8.3") + + def build_requirements(self): + self.tool_requires("cmake/[>=3.16 <4]") + self.tool_requires("cpython/[>=3.0.0]") + if self.options.with_usdview: + # ASWF: building usdview requires running uic tool from pyside + self.tool_requires("pyside/6.8.3") + + def validate(self): + if self.settings.compiler.cppstd: + check_min_cppstd(self, self._min_cppstd) + minimum_version = self._compilers_minimum_version.get(str(self.settings.compiler), False) + if minimum_version and Version(self.settings.compiler.version) < minimum_version: + raise ConanInvalidConfiguration( + f"{self.ref} requires C++{self._min_cppstd}, which your compiler does not support." + ) + # Require same options as in https://github.com/PixarAnimationStudios/OpenUSD/blob/release/build_scripts/build_usd.py#L1450 + if not self.dependencies["opensubdiv"].options.with_tbb and self.options.shared: + raise ConanInvalidConfiguration("openusd requires -o opensubdiv/*:with_tbb=True when building shared") + if not self.dependencies["opensubdiv"].options.with_opengl: + raise ConanInvalidConfiguration("openusd requires -o opensubdiv/*:with_opengl=True") + # As onetbb is a hard requirement if OpenUSD and onetbb forbids static build then we cannot support static builds + # See https://github.com/conan-io/conan/issues/15040#issuecomment-1790753531 + if not self.options.shared: + raise ConanInvalidConfiguration("openusd does not supports static build because onetbb conancenter recipe forbids it") + + def source(self): + get(self, **self.conan_data["sources"][self.version], strip_root=True) + + def generate(self): + tc = CMakeToolchain(self) + # Use variables in documented in https://github.com/PixarAnimationStudios/OpenUSD/blob/release/BUILDING.md + tc.variables["PXR_BUILD_USDVIEW"] = self.options.with_usdview # ASWF: build usdview + if self.options.with_usdview: + # ASWF: USD needs to be told where uic lives + pyside_info = self.dependencies["pyside"] + tc.variables["PYSIDEUICBINARY"] = os.path.join( + pyside_info.package_folder, + pyside_info.cpp_info.bindirs[0], + "uic" + ) + + tc.variables["PXR_BUILD_TESTS"] = False + tc.variables["PXR_BUILD_EXAMPLES"] = False + tc.variables["PXR_BUILD_TUTORIALS"] = False + tc.variables["PXR_BUILD_HTML_DOCUMENTATION"] = False + tc.variables["PXR_BUILD_ALEMBIC_PLUGIN"] = self.options.with_alembic # ASWF: build Alembic plugin + tc.variables["PXR_ENABLE_HDF5_SUPPORT"] = self.options.with_hdf5 # ASWF: build HDF5 for Alembic + tc.variables["PXR_BUILD_GPU_SUPPORT"] = self.options.with_gpu # ASWF: build GPU support + tc.variables["PXR_ENABLE_GL_SUPPORT"] = self.options.with_gl # ASWF: build OpenGL + tc.variables["PXR_ENABLE_METAL_SUPPORT"] = self.options.with_metal # ASWF: build Metal + tc.variables["PXR_ENABLE_VULKAN_SUPPORT"] = self.options.with_vulkan # ASWF: build Vulkan + + tc.variables["PXR_ENABLE_MATERIALX_SUPPORT"] = self.options.with_materialx # ASWF: build MaterialX support + if self.options.with_materialx: + materialx_info = self.dependencies["materialx"] + tc.variables["MATERIALX_STDLIB_DIR"] = os.path.join(materialx_info.package_folder,"share","MaterialX") + tc.variables["PXR_BUILD_OPENCOLORIO_PLUGIN"] = self.options.with_opencolorio # ASWF: build OpenColorIO plugin + tc.variables["PXR_BUILD_OPENIMAGEIO_PLUGIN"] = self.options.with_openimageio # ASWF: build OpenImageIO plugin + tc.variables["PXR_ENABLE_OPENVDB_SUPPORT"] = self.options.with_openvdb # ASWF: build OpenVDB support + tc.variables["PXR_ENABLE_OSL_SUPPORT"] = self.options.with_osl # ASWF: build OpenShadingLanguage components + tc.variables["PXR_ENABLE_PTEX_SUPPORT"] = self.options.with_ptex # ASWF: build Ptex support + tc.variables["PXR_ENABLE_PYTHON_SUPPORT"] = self.options.with_python # ASWF: build Python support + + tc.variables["OPENSUBDIV_LIBRARIES"] = "OpenSubdiv::osdcpu;OpenSubdiv::osdgpu" + tc.variables["OPENSUBDIV_INCLUDE_DIR"] = self.dependencies['opensubdiv'].cpp_info.includedirs[0].replace("\\", "/") + target_suffix = "" if self.dependencies["opensubdiv"].options.shared else "_static" + tc.variables["OPENSUBDIV_OSDCPU_LIBRARY"] = "OpenSubdiv::osdcpu"+target_suffix + tc.variables["TBB_tbb_LIBRARY"] = "TBB::tbb" + tc.generate() + + tc = CMakeDeps(self) + tc.set_property("opensubdiv::osdcpu", "cmake_target_name", "OpenSubdiv::osdcpu") + tc.set_property("opensubdiv::osdcpu", "cmake_target_aliases", ["OpenSubdiv::osdcpu_static"]) + + tc.generate() + + def build(self): + # ASWF: apply patches + apply_conandata_patches(self) + + if self.options.with_python: + # ASWF: USD requires some Python modules + import subprocess + python_info = self.dependencies["cpython"] + python_bin = os.path.join( + python_info.package_folder, + python_info.cpp_info.bindirs[0], + "python" + ) + subprocess.check_call([python_bin, "-m", "pip", "install", "PyOpenGL", "jinja2"]) + + cmake = CMake(self) + cmake.configure() + cmake.build() + + def package(self): + # ASWF: license files in package subdirectory + copy(self, "LICENSE.txt", self.source_folder, os.path.join(self.package_folder, "licenses", self.name)) + cmake = CMake(self) + cmake.install() + + # ASWF: keep cmake for outside conan use + # rm(self, "pxrConfig.cmake", self.package_folder) + # rmdir(self, os.path.join(self.package_folder, "cmake")) + + def package_info(self): + if self.settings.os in ["Linux", "FreeBSD"]: + self.cpp_info.system_libs.append("m") + self.cpp_info.system_libs.append("pthread") + self.cpp_info.system_libs.append("dl") + + self.cpp_info.components["usd_arch"].libs = ["usd_arch"] + + self.cpp_info.components["usd_ar"].libs = ["usd_ar"] + self.cpp_info.components["usd_ar"].requires = ["usd_arch", "usd_js", "usd_tf", "usd_plug", "usd_vt"] + if self.options.shared: + self.cpp_info.components["usd_ar"].requires.append("onetbb::libtbb") + + self.cpp_info.components["usd_cameraUtil"].libs = ["usd_cameraUtil"] + self.cpp_info.components["usd_cameraUtil"].requires = ["usd_tf", "usd_gf"] + + self.cpp_info.components["usd_garch"].libs = ["usd_garch"] + self.cpp_info.components["usd_garch"].requires = ["usd_arch", "usd_tf", "opengl::opengl"] + + self.cpp_info.components["usd_geomUtil"].libs = ["usd_geomUtil"] + self.cpp_info.components["usd_geomUtil"].requires = ["usd_arch", "usd_gf", "usd_tf", "usd_vt", "usd_pxOsd"] + + self.cpp_info.components["usd_gf"].libs = ["usd_gf"] + self.cpp_info.components["usd_gf"].requires = ["usd_arch", "usd_tf"] + + self.cpp_info.components["usd_glf"].libs = ["usd_glf"] + self.cpp_info.components["usd_glf"].requires = ["usd_ar", "usd_arch", "usd_garch", "usd_gf", "usd_hf", "usd_hio", "usd_plug", "usd_tf", "usd_trace", "usd_sdf", "opengl::opengl"] + + self.cpp_info.components["usd_hd"].libs = ["usd_hd"] + self.cpp_info.components["usd_hd"].requires = ["usd_plug", "usd_tf", "usd_trace", "usd_vt", "usd_work", "usd_sdf", "usd_cameraUtil", "usd_hf", "usd_pxOsd", "usd_sdr"] + if self.options.shared: + self.cpp_info.components["usd_hd"].requires.append("onetbb::libtbb") + + self.cpp_info.components["usd_hdar"].libs = ["usd_hdar"] + self.cpp_info.components["usd_hdar"].requires = ["usd_hd", "usd_ar"] + + self.cpp_info.components["usd_hdGp"].libs = ["usd_hdGp"] + self.cpp_info.components["usd_hdGp"].requires = ["usd_hd", "usd_hf"] + if self.options.shared: + self.cpp_info.components["usd_hdGp"].requires.append("onetbb::libtbb") + + self.cpp_info.components["usd_hdsi"].libs = ["usd_hdsi"] + self.cpp_info.components["usd_hdsi"].requires = ["usd_plug", "usd_tf", "usd_trace", "usd_vt", "usd_work", "usd_sdf", "usd_cameraUtil", "usd_geomUtil", "usd_hf", "usd_hd", "usd_pxOsd"] + + self.cpp_info.components["usd_hdSt"].libs = ["usd_hdSt"] + self.cpp_info.components["usd_hdSt"].requires = ["usd_hio", "usd_garch", "usd_glf", "usd_hd", "usd_hdsi", "usd_hgiGL", "usd_hgiInterop", "usd_sdr", "usd_tf", "usd_trace", "opensubdiv::opensubdiv"] + if self.options.with_ptex: + self.cpp_info.components["usd_hdSt"].requires.append("ptex::ptex") + if self.options.with_materialx: + self.cpp_info.components["usd_hdSt"].requires.extend(["materialx::MaterialXCore", "materialx::MaterialXFormat", "materialx::MaterialXGenShader", + "materialx::MaterialXGenGlsl", "materialx::MaterialXGenMsl", "materialx::MaterialXRender"]) + if self.options.with_openimageio: + self.cpp_info.components["usd_hdSt"].requires.append("oiio::OpenImageIO") + + self.cpp_info.components["usd_hdx"].libs = ["usd_hdx"] + self.cpp_info.components["usd_hdx"].requires = ["usd_plug", "usd_tf", "usd_vt", "usd_gf", "usd_work", "usd_garch", "usd_glf", "usd_pxOsd", "usd_hd", "usd_hdSt", "usd_hgi", "usd_hgiInterop", "usd_cameraUtil", "usd_sdf"] + if self.options.with_ptex: + self.cpp_info.components["usd_hdx"].requires.append("ptex::ptex") + if self.options.with_materialx: + self.cpp_info.components["usd_hdx"].requires.extend(["materialx::MaterialXCore", "materialx::MaterialXFormat", "materialx::MaterialXGenShader", + "materialx::MaterialXGenGlsl", "materialx::MaterialXGenMsl", "materialx::MaterialXRender"]) + if self.options.with_opencolorio: + self.cpp_info.components["usd_hdx"].requires.append("ocio::ocio") + if self.options.with_openimageio: + self.cpp_info.components["usd_hdx"].requires.append("oiio::OpenImageIO") + + self.cpp_info.components["usd_hf"].libs = ["usd_hf"] + self.cpp_info.components["usd_hf"].requires = ["usd_plug", "usd_tf", "usd_trace"] + + self.cpp_info.components["usd_hgi"].libs = ["usd_hgi"] + self.cpp_info.components["usd_hgi"].requires = ["usd_gf", "usd_plug", "usd_tf", "usd_hio"] + + self.cpp_info.components["usd_hgiGL"].libs = ["usd_hgiGL"] + self.cpp_info.components["usd_hgiGL"].requires = ["usd_arch", "usd_garch", "usd_hgi", "usd_tf", "usd_trace"] + + if is_apple_os(self): + self.cpp_info.components["usd_hgiMetal"].libs = ["usd_hgiMetal"] + self.cpp_info.components["usd_hgiMetal"].requires = ["usd_arch", "usd_hgi", "usd_tf", "usd_trace"] + + self.cpp_info.components["usd_hgiInterop"].libs = ["usd_hgiInterop"] + self.cpp_info.components["usd_hgiInterop"].requires = ["usd_garch", "usd_gf", "usd_tf", "usd_hgi", "usd_vt", "usd_trace"] + if is_apple_os(self): + self.cpp_info.components["usd_hgiInterop"].requires.append("usd_hgiMetal") + + self.cpp_info.components["usd_hio"].libs = ["usd_hio"] + self.cpp_info.components["usd_hio"].requires = ["usd_arch", "usd_js", "usd_plug", "usd_tf", "usd_vt", "usd_trace", "usd_ar", "usd_hf"] + + self.cpp_info.components["usd_js"].libs = ["usd_js"] + self.cpp_info.components["usd_js"].requires = ["usd_tf"] + + self.cpp_info.components["usd_kind"].libs = ["usd_kind"] + self.cpp_info.components["usd_kind"].requires = ["usd_tf", "usd_plug"] + + self.cpp_info.components["usd_pcp"].libs = ["usd_pcp"] + self.cpp_info.components["usd_pcp"].requires = ["usd_tf", "usd_trace", "usd_vt", "usd_sdf", "usd_work", "usd_ar"] + if self.options.shared: + self.cpp_info.components["usd_pcp"].requires.append("onetbb::libtbb") + + self.cpp_info.components["usd_pegtl"].libs = ["usd_pegtl"] + self.cpp_info.components["usd_pegtl"].requires = ["usd_arch"] + + self.cpp_info.components["usd_plug"].libs = ["usd_plug"] + self.cpp_info.components["usd_plug"].requires = ["usd_arch", "usd_tf", "usd_js", "usd_trace", "usd_work"] + if self.options.shared: + self.cpp_info.components["usd_plug"].requires.append("onetbb::libtbb") + + self.cpp_info.components["usd_pxOsd"].libs = ["usd_pxOsd"] + self.cpp_info.components["usd_pxOsd"].requires = ["usd_tf", "usd_gf", "usd_vt", "opensubdiv::opensubdiv"] + + self.cpp_info.components["usd_sdf"].libs = ["usd_sdf"] + self.cpp_info.components["usd_sdf"].requires = ["usd_arch", "usd_tf", "usd_ts", "usd_gf", "usd_trace", "usd_vt", "usd_work", "usd_ar"] + + self.cpp_info.components["usd_sdr"].libs = ["usd_sdr"] + self.cpp_info.components["usd_sdr"].requires = ["usd_tf", "usd_vt", "usd_ar", "usd_sdf"] + + self.cpp_info.components["usd_tf"].libs = ["usd_tf"] + self.cpp_info.components["usd_tf"].requires = ["usd_arch"] + if self.options.shared: + self.cpp_info.components["usd_tf"].requires.append("onetbb::libtbb") + # ASWF: if building against Python is requested, almost every DSO is linked + # against libusd_python.so and Python includes are required throughout. + # Since almost every component requires usd_tf, we add the dependency here. + # Transition from boost::python to usd_python in USD 25.05 + if self.options.with_python: + if Version(self.version) < "25.05": + self.cpp_info.components["usd_tf"].requires.append("boost::python") + else: + self.cpp_info.components["usd_boost"].libs = ["usd_boost"] + self.cpp_info.components["usd_tf"].requires.append("usd_python") + self.cpp_info.components["usd_python"].libs = ["usd_python"] + self.cpp_info.components["usd_python"].requires = ["usd_boost", "cpython::cpython"] + + self.cpp_info.components["usd_trace"].libs = ["usd_trace"] + self.cpp_info.components["usd_trace"].requires = ["usd_arch", "usd_tf", "usd_js"] + if self.options.shared: + self.cpp_info.components["usd_trace"].requires.append("onetbb::libtbb") + + self.cpp_info.components["usd_ts"].libs = ["usd_ts"] + self.cpp_info.components["usd_ts"].requires = ["usd_arch", "usd_gf", "usd_plug", "usd_tf", "usd_trace", "usd_vt"] + + self.cpp_info.components["usd_usd"].libs = ["usd_usd"] + self.cpp_info.components["usd_usd"].requires = ["usd_arch", "usd_kind", "usd_pcp", "usd_sdf", "usd_ar", "usd_plug", "usd_tf", "usd_trace", "usd_vt", "usd_work"] + if self.options.shared: + self.cpp_info.components["usd_usd"].requires.append("onetbb::libtbb") + + self.cpp_info.components["usd_usdAppUtils"].libs = ["usd_usdAppUtils"] + self.cpp_info.components["usd_usdAppUtils"].requires = ["usd_garch", "usd_gf", "usd_hio", "usd_sdf", "usd_tf", "usd_usd", "usd_usdGeom", "usd_usdImagingGL"] + if self.options.with_ptex: + self.cpp_info.components["usd_usdAppUtils"].requires.append("ptex::ptex") + if self.options.with_materialx: + self.cpp_info.components["usd_usdAppUtils"].requires.extend(["materialx::MaterialXCore", "materialx::MaterialXFormat", + "materialx::MaterialXGenShader", "materialx::MaterialXRender", + "materialx::MaterialXGenGlsl", "materialx::MaterialXGenMsl"]) + if self.options.with_opencolorio: + self.cpp_info.components["usd_usdAppUtils"].requires.append("ocio::ocio") + if self.options.with_openimageio: + self.cpp_info.components["usd_usdAppUtils"].requires.append("oiio::OpenImageIO") + + self.cpp_info.components["usd_usdGeom"].libs = ["usd_usdGeom"] + self.cpp_info.components["usd_usdGeom"].requires = ["usd_js", "usd_tf", "usd_plug", "usd_vt", "usd_sdf", "usd_trace", "usd_usd", "usd_work"] + if self.options.shared: + self.cpp_info.components["usd_usdGeom"].requires.append("onetbb::libtbb") + + if Version(self.version) >= "25.02": + self.cpp_info.components["usd_usdGeomValidators"].libs = ["usd_usdGeomValidators"] + self.cpp_info.components["usd_usdGeomValidators"].requires = ["usd_tf", "usd_plug", "usd_sdf", "usd_usd", "usd_usdGeom", "usd_usdValidation"] + + self.cpp_info.components["usd_usdHydra"].libs = ["usd_usdHydra"] + self.cpp_info.components["usd_usdHydra"].requires = ["usd_tf", "usd_usd", "usd_usdShade"] + + self.cpp_info.components["usd_usdImaging"].libs = ["usd_usdImaging"] + self.cpp_info.components["usd_usdImaging"].requires = ["usd_gf", "usd_tf", "usd_plug", "usd_trace", "usd_vt", "usd_work", "usd_geomUtil", "usd_hd", "usd_hdar", "usd_hio", "usd_pxOsd", "usd_sdf", "usd_usd", "usd_usdGeom", "usd_usdLux", "usd_usdRender", "usd_usdShade", "usd_usdVol", "usd_ar"] + if self.options.shared: + self.cpp_info.components["usd_usdImaging"].requires.append("onetbb::libtbb") + + self.cpp_info.components["usd_usdImagingGL"].libs = ["usd_usdImagingGL"] + self.cpp_info.components["usd_usdImagingGL"].requires = ["usd_gf", "usd_tf", "usd_plug", "usd_trace", "usd_vt", "usd_work", "usd_hio", "usd_garch", "usd_glf", "usd_hd", "usd_hdsi", "usd_hdx", "usd_pxOsd", "usd_sdf", "usd_sdr", "usd_usd", "usd_usdGeom", "usd_usdHydra", "usd_usdShade", "usd_usdImaging", "usd_ar"] + if self.options.shared: + self.cpp_info.components["usd_usdImagingGL"].requires.append("onetbb::libtbb") + if self.options.with_ptex: + self.cpp_info.components["usd_usdImagingGL"].requires.append("ptex::ptex") + if self.options.with_materialx: + self.cpp_info.components["usd_usdImagingGL"].requires.extend(["materialx::MaterialXCore", "materialx::MaterialXFormat", + "materialx::MaterialXGenShader", "materialx::MaterialXRender", + "materialx::MaterialXGenGlsl", "materialx::MaterialXGenMsl"]) + if self.options.with_opencolorio: + self.cpp_info.components["usd_usdImagingGL"].requires.append("ocio::ocio") + if self.options.with_openimageio: + self.cpp_info.components["usd_usdImagingGL"].requires.append("oiio::OpenImageIO") + + self.cpp_info.components["usd_usdLux"].libs = ["usd_usdLux"] + self.cpp_info.components["usd_usdLux"].requires = ["usd_tf", "usd_vt", "usd_sdf", "usd_usd", "usd_usdGeom", "usd_usdShade"] + + self.cpp_info.components["usd_usdMedia"].libs = ["usd_usdMedia"] + self.cpp_info.components["usd_usdMedia"].requires = ["usd_tf", "usd_vt", "usd_sdf", "usd_usd", "usd_usdGeom"] + + self.cpp_info.components["usd_usdPhysics"].libs = ["usd_usdPhysics"] + self.cpp_info.components["usd_usdPhysics"].requires = ["usd_tf", "usd_plug", "usd_vt", "usd_sdf", "usd_trace", "usd_usd", "usd_usdGeom", "usd_usdShade", "usd_work"] + if self.options.shared: + self.cpp_info.components["usd_usdPhysics"].requires.append("onetbb::libtbb") + + if Version(self.version) >= "25.02": + self.cpp_info.components["usd_usdPhysicsValidators"].libs = ["usd_usdPhysicsValidators"] + + self.cpp_info.components["usd_usdProc"].libs = ["usd_usdProc"] + self.cpp_info.components["usd_usdProc"].requires = ["usd_tf", "usd_usd", "usd_usdGeom"] + + self.cpp_info.components["usd_usdProcImaging"].libs = ["usd_usdProcImaging"] + self.cpp_info.components["usd_usdProcImaging"].requires = ["usd_usdImaging", "usd_usdProc"] + + self.cpp_info.components["usd_usdRender"].libs = ["usd_usdRender"] + self.cpp_info.components["usd_usdRender"].requires = ["usd_gf", "usd_tf", "usd_usd", "usd_usdGeom", "usd_usdShade"] + + self.cpp_info.components["usd_usdRi"].libs = ["usd_usdRi"] + self.cpp_info.components["usd_usdRi"].requires = ["usd_tf", "usd_vt", "usd_sdf", "usd_usd", "usd_usdShade", "usd_usdGeom"] + + self.cpp_info.components["usd_usdRiPxrImaging"].libs = ["usd_usdRiPxrImaging"] + self.cpp_info.components["usd_usdRiPxrImaging"].requires = ["usd_gf", "usd_tf", "usd_plug", "usd_trace", "usd_vt", "usd_work", "usd_hd", "usd_pxOsd", "usd_sdf", "usd_usd", "usd_usdGeom", "usd_usdLux", "usd_usdShade", "usd_usdImaging", "usd_usdVol", "usd_ar"] + if self.options.shared: + self.cpp_info.components["usd_usdRiPxrImaging"].requires.append("onetbb::libtbb") + + if Version(self.version) > "24.08": + self.cpp_info.components["usd_usdSemantics"].libs = ["usd_usdSemantics"] + + self.cpp_info.components["usd_usdShade"].libs = ["usd_usdShade"] + self.cpp_info.components["usd_usdShade"].requires = ["usd_tf", "usd_vt", "usd_js", "usd_sdf", "usd_sdr", "usd_usd", "usd_usdGeom"] + + if Version(self.version) >= "25.02": + self.cpp_info.components["usd_usdShadeValidators"].libs = ["usd_usdShadeValidators"] + + self.cpp_info.components["usd_usdSkel"].libs = ["usd_usdSkel"] + self.cpp_info.components["usd_usdSkel"].requires = ["usd_arch", "usd_gf", "usd_tf", "usd_trace", "usd_vt", "usd_work", "usd_sdf", "usd_usd", "usd_usdGeom"] + if self.options.shared: + self.cpp_info.components["usd_usdSkel"].requires.append("onetbb::libtbb") + + self.cpp_info.components["usd_usdSkelImaging"].libs = ["usd_usdSkelImaging"] + self.cpp_info.components["usd_usdSkelImaging"].requires = ["usd_hio", "usd_hd", "usd_usdImaging", "usd_usdSkel"] + + if Version(self.version) >= "25.02": + self.cpp_info.components["usd_usdSkelValidators"].libs = ["usd_usdSkelValidators"] + + self.cpp_info.components["usd_usdUI"].libs = ["usd_usdUI"] + self.cpp_info.components["usd_usdUI"].requires = ["usd_tf", "usd_vt", "usd_sdf", "usd_usd"] + + self.cpp_info.components["usd_usdUtils"].libs = ["usd_usdUtils"] + self.cpp_info.components["usd_usdUtils"].requires = ["usd_arch", "usd_tf", "usd_gf", "usd_sdf", "usd_usd", "usd_usdGeom", "usd_usdShade"] + + if Version(self.version) >= "25.02": + self.cpp_info.components["usd_usdUtilsValidators"].libs = ["usd_usdUtilsValidators"] + self.cpp_info.components["usd_usdValidation"].libs = ["usd_usdValidation"] + + self.cpp_info.components["usd_usdVol"].libs = ["usd_usdVol"] + self.cpp_info.components["usd_usdVol"].requires = ["usd_tf", "usd_usd", "usd_usdGeom"] + + self.cpp_info.components["usd_usdVolImaging"].libs = ["usd_usdVolImaging"] + self.cpp_info.components["usd_usdVolImaging"].requires = ["usd_usdImaging"] + + self.cpp_info.components["usd_vt"].libs = ["usd_vt"] + self.cpp_info.components["usd_vt"].requires = ["usd_arch", "usd_tf", "usd_gf", "usd_trace"] + if self.options.shared: + self.cpp_info.components["usd_vt"].requires.append("onetbb::libtbb") + + self.cpp_info.components["usd_work"].libs = ["usd_work"] + self.cpp_info.components["usd_work"].requires = ["usd_tf", "usd_trace"] + if self.options.shared: + self.cpp_info.components["usd_work"].requires.append("onetbb::libtbb") + + # ASWF: components and requirements for additional components + if self.options.with_alembic: + self.cpp_info.components["usd_usdAbc"].requires = ["alembic::alembic"] + if self.options.with_hdf5: + self.cpp_info.components["usd_usdAbc"].requires.append("hdf5::hdf5") + if self.options.shared: + self.cpp_info.components["usd_usdAbc"].requires.append("onetbb::libtbb") + self.cpp_info.components["usd_usdAbc"].bindirs = [ os.path.join("plugins", "usd") ] + + if self.options.with_materialx: + self.cpp_info.components["usd_usdMtlx"].libs = ["usd_usdMtlx"] + self.cpp_info.components["usd_usdMtlx"].requires = ["materialx::MaterialXCore", "materialx::MaterialXFormat"] + self.cpp_info.components["usd_usdBakeMtlx"].libs = ["usd_usdBakeMtlx"] + self.cpp_info.components["usd_usdBakeMtlx"].requires = ["materialx::MaterialXCore", "materialx::MaterialXFormat", + "materialx::MaterialXRenderGlsl", "materialx::MaterialXRenderHw", + "materialx::MaterialXGenGlsl", "materialx::MaterialXRender", + "materialx::MaterialXGenShader"] + + if self.options.shared: + self.cpp_info.components["usd_usdMtlx"].requires.append("onetbb::libtbb") + self.cpp_info.components["usd_usdBakeMtlx"].requires.append("onetbb::libtbb") + if self.options.with_openimageio: + self.cpp_info.components["usd_usdBakeMtlx"].requires.append("oiio::OpenImageIO") + + if self.options.with_openvdb: + self.cpp_info.components["usd_usdHioOpenVDB"].requires = ["openvdb::openvdb"] + + if self.options.with_osl: + self.cpp_info.components["usd_usdOsl"].requires = ["osl::osl"] + self.cpp_info.components["usd_usdOsl"].bindirs = [ os.path.join("plugins", "usd") ] + + if self.options.with_usdview: + self.cpp_info.components["usd_usdview"].requires = ["cpython::cpython", "pyside::pyside"] + if self.options.shared: + self.cpp_info.components["usd_usdview"].requires.append("onetbb::libtbb") + diff --git a/packages/conan/recipes/openusd/patches/24.08-cmake-packages.patch b/packages/conan/recipes/openusd/patches/24.08-cmake-packages.patch new file mode 100644 index 00000000..6dc9887d --- /dev/null +++ b/packages/conan/recipes/openusd/patches/24.08-cmake-packages.patch @@ -0,0 +1,121 @@ +diff --git cmake/defaults/Packages.cmake cmake/defaults/Packages.cmake +index d99dd79ac..bfda2778a 100644 +--- cmake/defaults/Packages.cmake ++++ cmake/defaults/Packages.cmake +@@ -116,10 +116,10 @@ + set(python_version_nodot "${PYTHON_VERSION_MAJOR}${PYTHON_VERSION_MINOR}") + find_package(Boost + COMPONENTS +- python${python_version_nodot} ++ python + REQUIRED + ) +- set(Boost_PYTHON_LIBRARY "${Boost_PYTHON${python_version_nodot}_LIBRARY}") ++ get_target_property(Boost_PYTHON_LIBRARY Boost::python INTERFACE_LINK_LIBRARIES) + + # --Jinja2 + find_package(Jinja2) +@@ -264,6 +264,16 @@ + # --Ptex + if (PXR_ENABLE_PTEX_SUPPORT) + find_package(PTex REQUIRED) ++ get_target_property( ++ PTEX_INCLUDE_DIR ++ Ptex::Ptex_dynamic ++ INTERFACE_INCLUDE_DIRECTORIES ++ ) ++ get_target_property( ++ PTEX_LIBRARY ++ Ptex::Ptex_dynamic ++ INTERFACE_LINK_LIBRARIES ++ ) + add_definitions(-DPXR_PTEX_SUPPORT_ENABLED) + endif() + # --OpenVDB +@@ -297,6 +297,9 @@ + + if (PXR_BUILD_ALEMBIC_PLUGIN) + find_package(Alembic REQUIRED) ++ set(ALEMBIC_FOUND TRUE) ++ set(ALEMBIC_INCLUDE_DIR ${Alembic_INCLUDE_DIR}) ++ set(ALEMBIC_LIBRARIES ${Alembic_LIBRARIES}) + set(REQUIRES_Imath TRUE) + if (PXR_ENABLE_HDF5_SUPPORT) + find_package(HDF5 REQUIRED +--- pxr/usd/usdMtlx/CMakeLists.txt ++++ pxr/usd/usdMtlx/CMakeLists.txt +@@ -5,7 +5,13 @@ + add_definitions(-DPXR_MATERIALX_STDLIB_DIR="${MATERIALX_STDLIB_DIR}") + endif() + ++get_target_property(MATERIALX_CORE_LIBS materialx::MaterialXCore INTERFACE_LINK_LIBRARIES) ++get_target_property(MATERIALX_FORMAT_LIBS materialx::MaterialXFormat INTERFACE_LINK_LIBRARIES) ++ + pxr_library(usdMtlx ++ INCLUDE_DIRS ++ ${materialx_INCLUDE_DIR} ++ + LIBRARIES + arch + gf +@@ -19,8 +25,8 @@ + usdShade + usdUI + usdUtils +- MaterialXCore +- MaterialXFormat ++ ${MATERIALX_CORE_LIBS} ++ ${MATERIALX_FORMAT_LIBS} + + CPPFILES + debugCodes.cpp +--- pxr/imaging/plugin/hioOiio/CMakeLists.txt ++++ pxr/imaging/plugin/hioOiio/CMakeLists.txt +@@ -26,7 +26,7 @@ + ${__OIIO_IMATH_LIBS} + + INCLUDE_DIRS +- ${OIIO_INCLUDE_DIRS} ++ ${OpenImageIO_INCLUDE_DIR} + ${__OIIO_IMATH_INCLUDE} + + CPPFILES +--- pxr/imaging/hdx/CMakeLists.txt ++++ pxr/imaging/hdx/CMakeLists.txt +@@ -11,8 +11,8 @@ + + set (optionalCppFiles "") + if (PXR_BUILD_OPENCOLORIO_PLUGIN) +- list(APPEND optionalLibs ${OCIO_LIBRARIES}) +- list(APPEND optionalIncludeDirs ${OCIO_INCLUDE_DIRS}) ++ list(APPEND optionalLibs ${OpenColorIO_LIBRARIES}) ++ list(APPEND optionalIncludeDirs ${OpenColorIO_INCLUDE_DIR}) + endif() + + pxr_library(hdx +--- pxr/usd/plugin/sdrOsl/CMakeLists.txt ++++ pxr/usd/plugin/sdrOsl/CMakeLists.txt +@@ -27,7 +27,7 @@ + + INCLUDE_DIRS + ${OSL_INCLUDE_DIR} +- ${OIIO_INCLUDE_DIRS} ++ ${OpenImageIO_INCLUDE_DIRS} + ${__OSL_IMATH_INCLUDE} + + PUBLIC_CLASSES +--- pxr/imaging/hioOpenVDB/CMakeLists.txt ++++ pxr/imaging/hioOpenVDB/CMakeLists.txt +@@ -28,10 +28,10 @@ + tf + usd + ${__VDB_IMATH_LIBS} +- ${OPENVDB_LIBRARY} ++ ${OpenVDB_LIBRARIES} + + INCLUDE_DIRS +- ${OPENVDB_INCLUDE_DIR} ++ ${OpenVDB_INCLUDE_DIR} + + PUBLIC_CLASSES + utils diff --git a/packages/conan/recipes/openusd/patches/24.08-materialx-1.39.diff b/packages/conan/recipes/openusd/patches/24.08-materialx-1.39.diff new file mode 100644 index 00000000..3bce0962 --- /dev/null +++ b/packages/conan/recipes/openusd/patches/24.08-materialx-1.39.diff @@ -0,0 +1,431 @@ +diff --git pxr/imaging/hdSt/materialXFilter.cpp pxr/imaging/hdSt/materialXFilter.cpp +index f3f38b18b3b..f1f8b87b55c 100644 +--- pxr/imaging/hdSt/materialXFilter.cpp ++++ pxr/imaging/hdSt/materialXFilter.cpp +@@ -495,10 +495,9 @@ _UpdatePrimvarNodes( + (*mxHdPrimvarDefaultValueMap)[primvarName] = defaultPrimvarValue; + } + +- // Texcoord nodes will have an index parameter set +- primvarNameIt = hdPrimvarNode.parameters.find(_tokens->index); +- if (primvarNameIt != hdPrimvarNode.parameters.end()) { +- // Get the sdr node for the texcoord node ++ else { ++ // Other primvar nodes will be either a texcoord node or a ++ // custom node that uses a texcoord node. + SdrRegistry &sdrRegistry = SdrRegistry::GetInstance(); + const SdrShaderNodeConstPtr sdrTexCoordNode = + sdrRegistry.GetShaderNodeByIdentifierAndType( +@@ -511,12 +510,7 @@ _UpdatePrimvarNodes( + texCoordName = metadata[SdrNodeMetadata->Primvars]; + } + +- // Figure out the mx typename +- mx::NodeDefPtr mxNodeDef = mxDoc->getNodeDef( +- hdPrimvarNode.nodeTypeId.GetString()); +- if (mxNodeDef) { +- (*mxHdPrimvarMap)[texCoordName] = mxNodeDef->getType(); +- } ++ (*mxHdPrimvarMap)[texCoordName] = getVector2Name(); + } + } + } +@@ -634,26 +628,41 @@ _GetGlTFSurfaceMaterialTag(HdMaterialNode2 const& terminal) + return materialToken.GetString(); + } + +-static const mx::TypeDesc* ++static const mx::TypeDesc + _GetMxTypeDescription(std::string const& typeName) + { ++#if MATERIALX_MAJOR_VERSION == 1 && MATERIALX_MINOR_VERSION <= 38 ++ using MxTypeDesc = const mx::TypeDesc*; ++#else ++ using MxTypeDesc = const mx::TypeDesc; ++#endif ++ + // Add whatever is necessary for current codebase: +- static const auto _typeLibrary = +- std::map{ +- {"float", mx::Type::FLOAT}, +- {"color3", mx::Type::COLOR3}, +- {"color4", mx::Type::COLOR4}, +- {"vector2", mx::Type::VECTOR2}, +- {"vector3", mx::Type::VECTOR3}, +- {"vector4", mx::Type::VECTOR4}, +- {"surfaceshader", mx::Type::SURFACESHADER} +- }; ++ static const auto _typeLibrary = ++ std::map{ ++ {"float", mx::Type::FLOAT}, ++ {"color3", mx::Type::COLOR3}, ++ {"color4", mx::Type::COLOR4}, ++ {"vector2", mx::Type::VECTOR2}, ++ {"vector3", mx::Type::VECTOR3}, ++ {"vector4", mx::Type::VECTOR4}, ++ {"surfaceshader", mx::Type::SURFACESHADER} ++ }; + + const auto typeDescIt = _typeLibrary.find(typeName); + if (typeDescIt != _typeLibrary.end()) { +- return typeDescIt->second; +- } +- return nullptr; ++#if MATERIALX_MAJOR_VERSION == 1 && MATERIALX_MINOR_VERSION <= 38 ++ return *typeDescIt->second; ++#else ++ return typeDescIt->second; ++#endif ++ } ++ ++#if MATERIALX_MAJOR_VERSION == 1 && MATERIALX_MINOR_VERSION <= 38 ++ return *mx::Type::NONE; ++#else ++ return mx::Type::NONE; ++#endif + } + + // This function adds a stripped down version of the surfaceshader node to the +@@ -678,14 +687,14 @@ _AddStrippedSurfaceNode( + if (!mxInputDef) { + continue; + } +- auto const* mxTypeDesc = _GetMxTypeDescription(mxInputDef->getType()); +- if (!mxTypeDesc) { ++ auto const mxTypeDesc = _GetMxTypeDescription(mxInputDef->getType()); ++ if (mxTypeIsNone(mxTypeDesc)) { + continue; + } + // If hdNode is connected to the surfaceshader node, recursively call + // this function to make sure that surfaceshader node is added to + // the mxDocument +- if (mxTypeDesc == mx::Type::SURFACESHADER) { ++ if (mxTypeIsSurfaceShader(mxTypeDesc)) { + auto const& hdConnectedPath = connIt.second.front().upstreamNode; + auto const& hdConnectedNode = hdNetwork.nodes.at(hdConnectedPath); + mx::NodePtr mxConnectedNode = +@@ -696,14 +705,13 @@ _AddStrippedSurfaceNode( + mxInput->setConnectedNode(mxConnectedNode); + } + // Add the connection as an input with each component set to 0.5 +- else if (mxTypeDesc->getBaseType() == mx::TypeDesc::BASETYPE_FLOAT && +- mxTypeDesc->getSemantic() != mx::TypeDesc::SEMANTIC_MATRIX) { ++ else if (mxTypeDesc.getBaseType() == mx::TypeDesc::BASETYPE_FLOAT && ++ mxTypeDesc.getSemantic() != mx::TypeDesc::SEMANTIC_MATRIX) { + std::string valueStr = "0.5"; +- for (size_t i = 1; i < mxTypeDesc->getSize(); ++i) { ++ for (size_t i = 1; i < mxTypeDesc.getSize(); ++i) { + valueStr += ", 0.5"; + } +- mx::InputPtr mxInput = +- mxNode->addInput(mxInputDef->getName(), mxInputDef->getType()); ++ mx::InputPtr mxInput = mxNode->addInputFromNodeDef(mxInputDef->getName()); + mxInput->setValueString(valueStr); + } + } +@@ -715,16 +723,15 @@ _AddStrippedSurfaceNode( + if (!mxInputDef) { + continue; + } +- auto const* mxTypeDesc = _GetMxTypeDescription(mxInputDef->getType()); +- if (!mxTypeDesc) { ++ auto const mxTypeDesc = _GetMxTypeDescription(mxInputDef->getType()); ++ if (mxTypeIsNone(mxTypeDesc)) { + continue; + } + +- if (mxTypeDesc->getBaseType() == mx::TypeDesc::BASETYPE_FLOAT && +- mxTypeDesc->getSemantic() != mx::TypeDesc::SEMANTIC_MATRIX) { ++ if (mxTypeDesc.getBaseType() == mx::TypeDesc::BASETYPE_FLOAT && ++ mxTypeDesc.getSemantic() != mx::TypeDesc::SEMANTIC_MATRIX) { + // Add the parameter as an input to the mxNode in the mx Document +- mx::InputPtr mxInput = +- mxNode->addInput(mxInputDef->getName(), mxInputDef->getType()); ++ mx::InputPtr mxInput = mxNode->addInputFromNodeDef(mxInputDef->getName()); + mxInput->setValueString(HdMtlxConvertToString(paramIt.second)); + } + } +@@ -787,9 +794,9 @@ _GetMaterialTag( + // Outputting anything that is not a surfaceshader will be + // considered opaque, unless outputting a color4 or vector4. + // XXX This is not fully per USD specs, but is supported by MaterialX. +- auto const* typeDesc = ++ auto const typeDesc = + _GetMxTypeDescription(activeOutputs.back()->getType()); +- if (typeDesc == mx::Type::COLOR4 || typeDesc == mx::Type::VECTOR4) { ++ if (typeDesc.isFloat4()) { + return HdStMaterialTagTokens->translucent.GetString(); + } + return HdStMaterialTagTokens->defaultMaterialTag.GetString(); +@@ -1100,7 +1107,7 @@ _AddMaterialXParams( + + // MaterialX parameter Information + const auto* variable = paramsBlock[i]; +- const auto varType = variable->getType(); ++ const auto varType = getMxTypeDesc(variable); + + // Create a corresponding HdSt_MaterialParam + HdSt_MaterialParam param; +@@ -1111,9 +1118,9 @@ _AddMaterialXParams( + const auto paramValueIt = + mxParamNameToValue.find(variable->getVariable()); + if (paramValueIt != mxParamNameToValue.end()) { +- if (varType->getBaseType() == mx::TypeDesc::BASETYPE_BOOLEAN || +- varType->getBaseType() == mx::TypeDesc::BASETYPE_FLOAT || +- varType->getBaseType() == mx::TypeDesc::BASETYPE_INTEGER) { ++ if (varType.getBaseType() == mx::TypeDesc::BASETYPE_BOOLEAN || ++ varType.getBaseType() == mx::TypeDesc::BASETYPE_FLOAT || ++ varType.getBaseType() == mx::TypeDesc::BASETYPE_INTEGER) { + param.fallbackValue = paramValueIt->second; + } + } +@@ -1124,52 +1131,52 @@ _AddMaterialXParams( + const auto varValue = variable->getValue(); + std::istringstream valueStream(varValue + ? varValue->getValueString() : std::string()); +- if (varType->getBaseType() == mx::TypeDesc::BASETYPE_BOOLEAN) { ++ if (varType.getBaseType() == mx::TypeDesc::BASETYPE_BOOLEAN) { + const bool val = valueStream.str() == "true"; + param.fallbackValue = VtValue(val); + } +- else if (varType->getBaseType() == mx::TypeDesc::BASETYPE_FLOAT) { +- if (varType->getSize() == 1) { ++ else if (varType.getBaseType() == mx::TypeDesc::BASETYPE_FLOAT) { ++ if (varType.getSize() == 1) { + float val; + valueStream >> val; + param.fallbackValue = VtValue(val); + } +- else if (varType->getSize() == 2) { ++ else if (varType.getSize() == 2) { + GfVec2f val; + valueStream >> val[0] >> separator >> val[1]; + param.fallbackValue = VtValue(val); + } +- else if (varType->getSize() == 3) { ++ else if (varType.getSize() == 3) { + GfVec3f val; + valueStream >> val[0] >> separator >> val[1] >> separator + >> val[2]; + param.fallbackValue = VtValue(val); + } +- else if (varType->getSize() == 4) { ++ else if (varType.getSize() == 4) { + GfVec4f val; + valueStream >> val[0] >> separator >> val[1] >> separator + >> val[2] >> separator >> val[3]; + param.fallbackValue = VtValue(val); + } + } +- else if (varType->getBaseType() == mx::TypeDesc::BASETYPE_INTEGER) { +- if (varType->getSize() == 1) { ++ else if (varType.getBaseType() == mx::TypeDesc::BASETYPE_INTEGER) { ++ if (varType.getSize() == 1) { + int val; + valueStream >> val; + param.fallbackValue = VtValue(val); + } +- else if (varType->getSize() == 2) { ++ else if (varType.getSize() == 2) { + GfVec2i val; + valueStream >> val[0] >> separator >> val[1]; + param.fallbackValue = VtValue(val); + } +- else if (varType->getSize() == 3) { ++ else if (varType.getSize() == 3) { + GfVec3i val; + valueStream >> val[0] >> separator >> val[1] >> separator + >> val[2]; + param.fallbackValue = VtValue(val); + } +- else if (varType->getSize() == 4) { ++ else if (varType.getSize() == 4) { + GfVec4i val; + valueStream >> val[0] >> separator >> val[1] >> separator + >> val[2] >> separator >> val[3]; +@@ -1183,7 +1190,7 @@ _AddMaterialXParams( + } + + // For filename inputs, manage the associated texture node +- if (varType->getSemantic() == mx::TypeDesc::SEMANTIC_FILENAME) { ++ if (varType.getSemantic() == mx::TypeDesc::SEMANTIC_FILENAME) { + // Get the anonymized MaterialX node name from the param name + // annonNodeName_paramName -> annonNodeName + std::string mxNodeName = variable->getVariable(); +diff --git pxr/imaging/hdSt/materialXShaderGen.cpp pxr/imaging/hdSt/materialXShaderGen.cpp +index 3de8ae9872f..ee7ce074bd4 100644 +--- pxr/imaging/hdSt/materialXShaderGen.cpp ++++ pxr/imaging/hdSt/materialXShaderGen.cpp +@@ -156,13 +156,12 @@ HdStMaterialXShaderGen::_EmitGlslfxHeader(mx::ShaderStage& mxStage) const + Base::emitString(R"( "attributes": {)" "\n", mxStage); + std::string line = ""; unsigned int i = 0; + for (mx::StringMap::const_reference primvarPair : _mxHdPrimvarMap) { +- const mx::TypeDesc *mxType = mx::TypeDesc::get(primvarPair.second); +- if (mxType == nullptr) { ++ const mx::TypeDesc mxType = getMxTypeDesc(primvarPair.second); ++ if (mxTypeIsNone(mxType)) { + TF_WARN("MaterialX geomprop '%s' has unknown type '%s'", + primvarPair.first.c_str(), primvarPair.second.c_str()); + } +- const std::string type = mxType +- ? Base::_syntax->getTypeName(mxType) : "vec2"; ++ const std::string type = mxGetTypeString(mxType, Base::_syntax); + + line += " \"" + primvarPair.first + "\": {\n"; + line += " \"type\": \"" + type + "\"\n"; +@@ -285,12 +284,15 @@ HdStMaterialXShaderGen::_EmitMxSurfaceShader( + if (outputConnection) { + + std::string finalOutput = outputConnection->getVariable(); ++#if MATERIALX_MAJOR_VERSION == 1 && MATERIALX_MINOR_VERSION <= 38 ++ // channels feature removed in MaterialX 1.39 + const std::string& channels = outputSocket->getChannels(); + if (!channels.empty()) { + finalOutput = Base::_syntax->getSwizzledVariable( + finalOutput, outputConnection->getType(), + channels, outputSocket->getType()); + } ++#endif + + if (mxGraph.hasClassification( + mx::ShaderNode::Classification::SURFACE)) { +@@ -311,7 +313,7 @@ HdStMaterialXShaderGen::_EmitMxSurfaceShader( + } + } + else { +- if (!outputSocket->getType()->isFloat4()) { ++ if (!getMxTypeDesc(outputSocket).isFloat4()) { + Base::toVec4(outputSocket->getType(), finalOutput); + } + emitLine(finalOutputReturn + +@@ -323,7 +325,7 @@ HdStMaterialXShaderGen::_EmitMxSurfaceShader( + ? Base::_syntax->getValue( + outputSocket->getType(), *outputSocket->getValue()) + : Base::_syntax->getDefaultValue(outputSocket->getType()); +- if (!outputSocket->getType()->isFloat4()) { ++ if (!getMxTypeDesc(outputSocket).isFloat4()) { + std::string finalOutput = outputSocket->getVariable() + "_tmp"; + emitLine(Base::_syntax->getTypeName(outputSocket->getType()) + + " " + finalOutput + " = " + outputValue, mxStage); +@@ -415,8 +417,8 @@ HdStMaterialXShaderGen::_EmitMxInitFunction( + mxStage.getUniformBlock(mx::HW::PUBLIC_UNIFORMS); + for (size_t i = 0; i < paramsBlock.size(); ++i) { + const mx::ShaderPort* variable = paramsBlock[i]; +- const mx::TypeDesc* variableType = variable->getType(); +- if (!_IsHardcodedPublicUniform(*variableType)) { ++ const mx::TypeDesc variableType = getMxTypeDesc(variable); ++ if (!_IsHardcodedPublicUniform(variableType)) { + emitLine(variable->getVariable() + " = HdGet_" + + variable->getVariable() + "()", mxStage); + } +@@ -622,16 +624,16 @@ HdStMaterialXShaderGen::emitVariableDeclarations( + { + Base::emitLineBegin(stage); + const mx::ShaderPort* variable = block[i]; +- const mx::TypeDesc* varType = variable->getType(); ++ const mx::TypeDesc varType = getMxTypeDesc(variable); + + // If bindlessTextures are not enabled the Mx Smpler names are mapped + // to the Hydra equivalents in HdStMaterialXShaderGen*::_EmitMxFunctions +- if (!_bindlessTexturesEnabled && varType == mx::Type::FILENAME) { ++ if (!_bindlessTexturesEnabled && mxTypeDescIsFilename(varType)) { + continue; + } + + // Only declare the variables that we need to initialize with Hd Data +- if ( (isPublicUniform && !_IsHardcodedPublicUniform(*varType)) ++ if ( (isPublicUniform && !_IsHardcodedPublicUniform(varType)) + || MxHdVariables.count(variable->getName()) ) { + Base::emitVariableDeclaration(variable, mx::EMPTY_STRING, + context, stage, false /* assignValue */); +@@ -1349,4 +1351,70 @@ HdStMaterialXShaderGenMsl::_EmitMxFunctions( + } + + ++bool mxTypeIsNone(mx::TypeDesc typeDesc) ++{ ++#if MATERIALX_MAJOR_VERSION == 1 && MATERIALX_MINOR_VERSION <= 38 ++ return typeDesc == *mx::Type::NONE; ++#else ++ return typeDesc == mx::Type::NONE; ++#endif ++} ++ ++bool mxTypeIsSurfaceShader(mx::TypeDesc typeDesc) ++{ ++#if MATERIALX_MAJOR_VERSION == 1 && MATERIALX_MINOR_VERSION <= 38 ++ return typeDesc == *mx::Type::SURFACESHADER; ++#else ++ return typeDesc == mx::Type::SURFACESHADER; ++#endif ++} ++ ++bool mxTypeDescIsFilename(const mx::TypeDesc typeDesc) ++{ ++#if MATERIALX_MAJOR_VERSION == 1 && MATERIALX_MINOR_VERSION <= 38 ++ return typeDesc == *mx::Type::FILENAME; ++#else ++ return typeDesc == mx::Type::FILENAME; ++#endif ++} ++ ++mx::TypeDesc getMxTypeDesc(const std::string& typeName) ++{ ++#if MATERIALX_MAJOR_VERSION == 1 && MATERIALX_MINOR_VERSION <= 38 ++ const mx::TypeDesc* mxType = mx::TypeDesc::get(typeName); ++ if (mxType) ++ return *mxType; ++ return *mx::Type::NONE; ++#else ++ return mx::TypeDesc::get(typeName); ++#endif ++} ++ ++const MaterialX::TypeDesc getMxTypeDesc(const mx::ShaderPort* port) ++{ ++#if MATERIALX_MAJOR_VERSION == 1 && MATERIALX_MINOR_VERSION <= 38 ++ return port->getType() ? *(port->getType()) : *mx::Type::NONE; ++#else ++ return port->getType(); ++#endif ++} ++ ++const std::string mxGetTypeString(const mx::TypeDesc mxType, mx::SyntaxPtr syntax) ++{ ++#if MATERIALX_MAJOR_VERSION == 1 && MATERIALX_MINOR_VERSION <= 38 ++ return (!mxTypeIsNone(mxType)) ? syntax->getTypeName(&mxType) : "vec2"; ++#else ++ return (!mxTypeIsNone(mxType)) ? syntax->getTypeName(mxType) : "vec2"; ++#endif ++} ++ ++const std::string& getVector2Name() ++{ ++#if MATERIALX_MAJOR_VERSION == 1 && MATERIALX_MINOR_VERSION <= 38 ++ return mx::Type::VECTOR2->getName(); ++#else ++ return mx::Type::VECTOR2.getName(); ++#endif ++} ++ + PXR_NAMESPACE_CLOSE_SCOPE +diff --git pxr/imaging/hdSt/materialXShaderGen.h pxr/imaging/hdSt/materialXShaderGen.h +index e61bd13a43a..46ad7b9160c 100644 +--- pxr/imaging/hdSt/materialXShaderGen.h ++++ pxr/imaging/hdSt/materialXShaderGen.h +@@ -192,6 +192,15 @@ class HdStMaterialXShaderGenMsl + MaterialX::ShaderStage& mxStage) const; + }; + ++// helper functions to aid building both MaterialX 1.38.X and 1.39.X ++// once MaterialX 1.38.X is no longer required these should likely be removed. ++bool mxTypeIsNone(MaterialX::TypeDesc typeDesc); ++bool mxTypeIsSurfaceShader(MaterialX::TypeDesc typeDesc); ++bool mxTypeDescIsFilename(const MaterialX::TypeDesc typeDesc); ++MaterialX::TypeDesc getMxTypeDesc(const std::string& typeName); ++const MaterialX::TypeDesc getMxTypeDesc(const MaterialX::ShaderPort* port); ++const std::string mxGetTypeString(const MaterialX::TypeDesc mxType, MaterialX::SyntaxPtr syntax); ++const std::string& getVector2Name(); + + PXR_NAMESPACE_CLOSE_SCOPE + diff --git a/packages/conan/recipes/openusd/patches/25.05.01-cmake-packages.patch b/packages/conan/recipes/openusd/patches/25.05.01-cmake-packages.patch new file mode 100644 index 00000000..e31d3bf9 --- /dev/null +++ b/packages/conan/recipes/openusd/patches/25.05.01-cmake-packages.patch @@ -0,0 +1,110 @@ +diff --git cmake/defaults/Packages.cmake cmake/defaults/Packages.cmake +index d99dd79ac..bfda2778a 100644 +--- cmake/defaults/Packages.cmake ++++ cmake/defaults/Packages.cmake +@@ -248,6 +248,16 @@ + # --Ptex + if (PXR_ENABLE_PTEX_SUPPORT) + find_package(PTex REQUIRED) ++ get_target_property( ++ PTEX_INCLUDE_DIR ++ Ptex::Ptex_dynamic ++ INTERFACE_INCLUDE_DIRECTORIES ++ ) ++ get_target_property( ++ PTEX_LIBRARY ++ Ptex::Ptex_dynamic ++ INTERFACE_LINK_LIBRARIES ++ ) + add_definitions(-DPXR_PTEX_SUPPORT_ENABLED) + endif() + # --OpenVDB +@@ -282,6 +282,9 @@ + + if (PXR_BUILD_ALEMBIC_PLUGIN) + find_package(Alembic REQUIRED) ++ set(ALEMBIC_FOUND TRUE) ++ set(ALEMBIC_INCLUDE_DIR ${Alembic_INCLUDE_DIR}) ++ set(ALEMBIC_LIBRARIES ${Alembic_LIBRARIES}) + set(REQUIRES_Imath TRUE) + if (PXR_ENABLE_HDF5_SUPPORT) + find_package(HDF5 REQUIRED +--- pxr/usd/usdMtlx/CMakeLists.txt ++++ pxr/usd/usdMtlx/CMakeLists.txt +@@ -5,9 +5,15 @@ + add_definitions(-DPXR_MATERIALX_STDLIB_DIR="${MATERIALX_STDLIB_DIR}") + endif() + ++get_target_property(MATERIALX_CORE_LIBS materialx::MaterialXCore INTERFACE_LINK_LIBRARIES) ++get_target_property(MATERIALX_FORMAT_LIBS materialx::MaterialXFormat INTERFACE_LINK_LIBRARIES) ++ + pxr_library(usdMtlx + INCLUDE_SCHEMA_FILES + ++ INCLUDE_DIRS ++ ${materialx_INCLUDE_DIR} ++ + LIBRARIES + arch + gf +@@ -20,8 +20,8 @@ + usdShade + usdUI + usdUtils +- MaterialXCore +- MaterialXFormat ++ ${MATERIALX_CORE_LIBS} ++ ${MATERIALX_FORMAT_LIBS} + + CPPFILES + discovery.cpp +--- pxr/imaging/plugin/hioOiio/CMakeLists.txt ++++ pxr/imaging/plugin/hioOiio/CMakeLists.txt +@@ -26,7 +26,7 @@ + ${__OIIO_IMATH_LIBS} + + INCLUDE_DIRS +- ${OIIO_INCLUDE_DIRS} ++ ${OpenImageIO_INCLUDE_DIR} + ${__OIIO_IMATH_INCLUDE} + + CPPFILES +--- pxr/imaging/hdx/CMakeLists.txt ++++ pxr/imaging/hdx/CMakeLists.txt +@@ -11,8 +11,8 @@ + + set (optionalCppFiles "") + if (PXR_BUILD_OPENCOLORIO_PLUGIN) +- list(APPEND optionalLibs ${OCIO_LIBRARIES}) +- list(APPEND optionalIncludeDirs ${OCIO_INCLUDE_DIRS}) ++ list(APPEND optionalLibs ${OpenColorIO_LIBRARIES}) ++ list(APPEND optionalIncludeDirs ${OpenColorIO_INCLUDE_DIR}) + endif() + + pxr_library(hdx +--- pxr/usd/plugin/sdrOsl/CMakeLists.txt ++++ pxr/usd/plugin/sdrOsl/CMakeLists.txt +@@ -26,7 +26,7 @@ + + INCLUDE_DIRS + ${OSL_INCLUDE_DIR} +- ${OIIO_INCLUDE_DIRS} ++ ${OpenImageIO_INCLUDE_DIRS} + ${__OSL_IMATH_INCLUDE} + + PUBLIC_CLASSES +--- pxr/imaging/hioOpenVDB/CMakeLists.txt ++++ pxr/imaging/hioOpenVDB/CMakeLists.txt +@@ -28,10 +28,10 @@ + tf + usd + ${__VDB_IMATH_LIBS} +- ${OPENVDB_LIBRARY} ++ ${OpenVDB_LIBRARIES} + + INCLUDE_DIRS +- ${OPENVDB_INCLUDE_DIR} ++ ${OpenVDB_INCLUDE_DIR} + ${Boost_INCLUDE_DIRS} + + PUBLIC_CLASSES diff --git a/packages/conan/recipes/openusd/patches/26.03-cmake-packages.patch b/packages/conan/recipes/openusd/patches/26.03-cmake-packages.patch new file mode 100644 index 00000000..96887ae9 --- /dev/null +++ b/packages/conan/recipes/openusd/patches/26.03-cmake-packages.patch @@ -0,0 +1,110 @@ +diff --git cmake/defaults/Packages.cmake cmake/defaults/Packages.cmake +index d99dd79ac..bfda2778a 100644 +--- cmake/defaults/Packages.cmake ++++ cmake/defaults/Packages.cmake +@@ -244,6 +244,16 @@ + # --Ptex + if (PXR_ENABLE_PTEX_SUPPORT) + find_package(PTex REQUIRED) ++ get_target_property( ++ PTEX_INCLUDE_DIR ++ Ptex::Ptex_dynamic ++ INTERFACE_INCLUDE_DIRECTORIES ++ ) ++ get_target_property( ++ PTEX_LIBRARY ++ Ptex::Ptex_dynamic ++ INTERFACE_LINK_LIBRARIES ++ ) + add_definitions(-DPXR_PTEX_SUPPORT_ENABLED) + endif() + # --OpenVDB +@@ -278,6 +288,9 @@ + + if (PXR_BUILD_ALEMBIC_PLUGIN) + find_package(Alembic REQUIRED) ++ set(ALEMBIC_FOUND TRUE) ++ set(ALEMBIC_INCLUDE_DIR ${Alembic_INCLUDE_DIR}) ++ set(ALEMBIC_LIBRARIES ${Alembic_LIBRARIES}) + set(REQUIRES_Imath TRUE) + if (PXR_ENABLE_HDF5_SUPPORT) + find_package(HDF5 REQUIRED +--- pxr/usd/usdMtlx/CMakeLists.txt ++++ pxr/usd/usdMtlx/CMakeLists.txt +@@ -39,9 +39,15 @@ + + endif() + ++get_target_property(MATERIALX_CORE_LIBS materialx::MaterialXCore INTERFACE_LINK_LIBRARIES) ++get_target_property(MATERIALX_FORMAT_LIBS materialx::MaterialXFormat INTERFACE_LINK_LIBRARIES) ++ + pxr_library(usdMtlx + INCLUDE_SCHEMA_FILES + ++ INCLUDE_DIRS ++ ${materialx_INCLUDE_DIR} ++ + LIBRARIES + arch + gf +@@ -54,8 +60,8 @@ + usdShade + usdUI + usdUtils +- MaterialXCore +- MaterialXFormat ++ ${MATERIALX_CORE_LIBS} ++ ${MATERIALX_FORMAT_LIBS} + + CPPFILES + discovery.cpp +--- pxr/imaging/plugin/hioOiio/CMakeLists.txt ++++ pxr/imaging/plugin/hioOiio/CMakeLists.txt +@@ -26,7 +26,7 @@ + ${__OIIO_IMATH_LIBS} + + INCLUDE_DIRS +- ${OIIO_INCLUDE_DIRS} ++ ${OpenImageIO_INCLUDE_DIR} + ${__OIIO_IMATH_INCLUDE} + + CPPFILES +--- pxr/imaging/hdx/CMakeLists.txt ++++ pxr/imaging/hdx/CMakeLists.txt +@@ -11,8 +11,8 @@ + + set (optionalCppFiles "") + if (PXR_BUILD_OPENCOLORIO_PLUGIN) +- list(APPEND optionalLibs ${OCIO_LIBRARIES}) +- list(APPEND optionalIncludeDirs ${OCIO_INCLUDE_DIRS}) ++ list(APPEND optionalLibs ${OpenColorIO_LIBRARIES}) ++ list(APPEND optionalIncludeDirs ${OpenColorIO_INCLUDE_DIR}) + endif() + + pxr_library(hdx +--- pxr/usd/plugin/sdrOsl/CMakeLists.txt ++++ pxr/usd/plugin/sdrOsl/CMakeLists.txt +@@ -26,7 +26,7 @@ + + INCLUDE_DIRS + ${OSL_INCLUDE_DIR} +- ${OIIO_INCLUDE_DIRS} ++ ${OpenImageIO_INCLUDE_DIRS} + ${__OSL_IMATH_INCLUDE} + + PUBLIC_CLASSES +--- pxr/imaging/hioOpenVDB/CMakeLists.txt ++++ pxr/imaging/hioOpenVDB/CMakeLists.txt +@@ -28,10 +28,10 @@ + tf + usd + ${__VDB_IMATH_LIBS} +- ${OPENVDB_LIBRARY} ++ ${OpenVDB_LIBRARIES} + + INCLUDE_DIRS +- ${OPENVDB_INCLUDE_DIR} ++ ${OpenVDB_INCLUDE_DIR} + ${Boost_INCLUDE_DIRS} + + PUBLIC_CLASSES diff --git a/packages/conan/recipes/openusd/patches/26.03-cxx-standard.patch b/packages/conan/recipes/openusd/patches/26.03-cxx-standard.patch new file mode 100644 index 00000000..d56983f3 --- /dev/null +++ b/packages/conan/recipes/openusd/patches/26.03-cxx-standard.patch @@ -0,0 +1,13 @@ +diff --git cmake/defaults/CXXDefaults.cmake cmake/defaults/CXXDefaults.cmake +index d99dd79ac..bfda2778a 100644 +--- cmake/defaults/CXXDefaults.cmake ++++ cmake/defaults/CXXDefaults.cmake +@@ -9,7 +9,7 @@ + include(Options) + + # Require C++17 +-set(CMAKE_CXX_STANDARD 17) ++#set(CMAKE_CXX_STANDARD 17) + set(CMAKE_CXX_STANDARD_REQUIRED ON) + set(CMAKE_CXX_EXTENSIONS OFF) + diff --git a/packages/conan/recipes/openusd/patches/26.03-dependency-cache.patch b/packages/conan/recipes/openusd/patches/26.03-dependency-cache.patch new file mode 100644 index 00000000..6a912867 --- /dev/null +++ b/packages/conan/recipes/openusd/patches/26.03-dependency-cache.patch @@ -0,0 +1,13 @@ +diff --git pxr/exec/ef/dependencyCache.h pxr/exec/ef/dependencyCache.h +index d99dd79ac..bfda2778a 10064 +--- pxr/exec/ef/dependencyCache.h ++++ pxr/exec/ef/dependencyCache.h +@@ -151,7 +151,7 @@ + } + + void Invalidate() { +- valid.store(std::memory_order_relaxed); ++ valid.store(false, std::memory_order_relaxed); + } + + // The resulting output dependencies. diff --git a/packages/conan/recipes/openusd/test_package/CMakeLists.txt b/packages/conan/recipes/openusd/test_package/CMakeLists.txt new file mode 100644 index 00000000..6433d503 --- /dev/null +++ b/packages/conan/recipes/openusd/test_package/CMakeLists.txt @@ -0,0 +1,15 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/EstebanDugueperoux2/conan-center-index/blob/1d8986d11305e1303b1581532f327cdd9d32ed20/recipes/openusd/all/test_package/CMakeLists.txt + +cmake_minimum_required(VERSION 3.15) + +project(test_package LANGUAGES CXX) + +find_package(openusd REQUIRED CONFIG) + +add_executable(${PROJECT_NAME} test_package.cpp) +target_link_libraries(${PROJECT_NAME} PRIVATE openusd::usd_usdGeom) +target_compile_features(${PROJECT_NAME} PRIVATE cxx_std_17) diff --git a/packages/conan/recipes/openusd/test_package/conanfile.py b/packages/conan/recipes/openusd/test_package/conanfile.py new file mode 100644 index 00000000..e04441c8 --- /dev/null +++ b/packages/conan/recipes/openusd/test_package/conanfile.py @@ -0,0 +1,34 @@ +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/EstebanDugueperoux2/conan-center-index/blob/1d8986d11305e1303b1581532f327cdd9d32ed20/recipes/openusd/all/test_package/conanfile.py + +from conan import ConanFile +from conan.tools.build import can_run +from conan.tools.cmake import cmake_layout, CMake +import os + + +# It will become the standard on Conan 2.x +class TestPackageConan(ConanFile): + settings = "os", "arch", "compiler", "build_type" + generators = "CMakeDeps", "CMakeToolchain", "VirtualRunEnv" + test_type = "explicit" + + def requirements(self): + self.requires(self.tested_reference_str) + + def layout(self): + cmake_layout(self) + + def build(self): + cmake = CMake(self) + cmake.configure() + # cmake.build() + cmake.build(cli_args=["--verbose"]) + + def test(self): + if can_run(self): + bin_path = os.path.join(self.cpp.build.bindir, "test_package") + self.run(bin_path, env="conanrun") diff --git a/packages/conan/recipes/openusd/test_package/test_package.cpp b/packages/conan/recipes/openusd/test_package/test_package.cpp new file mode 100644 index 00000000..115805cb --- /dev/null +++ b/packages/conan/recipes/openusd/test_package/test_package.cpp @@ -0,0 +1,38 @@ +/* +# Copyright (c) Contributors to the conan-center-index Project. All rights reserved. +# Copyright (c) Contributors to the aswf-docker Project. All rights reserved. +# SPDX-License-Identifier: MIT +# +# From: https://github.com/EstebanDugueperoux2/conan-center-index/blob/1d8986d11305e1303b1581532f327cdd9d32ed20/recipes/openusd/all/test_package/test_package.cpp +*/ + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +PXR_NAMESPACE_USING_DIRECTIVE + +int main(int argc, char *argv[]) { + UsdStageRefPtr stage = UsdStage::CreateNew("HelloWorld.usda"); + + UsdGeomSetStageUpAxis(stage, UsdGeomTokens->y); + UsdGeomSetStageMetersPerUnit(stage, 0.01); + + // create mesh + UsdGeomXform xform = UsdGeomXform::Define(stage, SdfPath("/root")); + UsdGeomMesh mesh = UsdGeomMesh::Define(stage, SdfPath("/root/mesh")); + stage->SetDefaultPrim(xform.GetPrim()); + + // stage->GetRootLayer()->Save(); + + return EXIT_SUCCESS; +} diff --git a/packages/conan/recipes/osl/conanfile.py b/packages/conan/recipes/osl/conanfile.py index 1bace42b..d90f98f8 100644 --- a/packages/conan/recipes/osl/conanfile.py +++ b/packages/conan/recipes/osl/conanfile.py @@ -5,6 +5,7 @@ from conan import ConanFile from conan.tools.build import check_min_cppstd from conan.tools.cmake import CMake, CMakeDeps, CMakeToolchain, cmake_layout +from conan.tools.env import VirtualRunEnv from conan.tools.files import apply_conandata_patches, export_conandata_patches, copy, get, rm, rmdir from conan.tools.microsoft import is_msvc, is_msvc_static_runtime from conan.tools.scm import Version @@ -111,12 +112,18 @@ def generate(self): tc.generate() cd = CMakeDeps(self) cd.generate() + # Host DSOs (Qt, HarfBuzz, …) must be on LD_LIBRARY_PATH when CMake runs oslc, etc. + VirtualRunEnv(self).generate() def build(self): apply_conandata_patches(self) cmake = CMake(self) - cmake.configure() - cmake.build() + # CMake.build() has no env= parameter (unlike self.run / CMake.ctest). Apply + # VirtualRunEnv so cmake/configure and cmake --build child processes (oslc, …) + # see LD_LIBRARY_PATH for host deps (Qt, HarfBuzz, …) before /usr/lib64. + with VirtualRunEnv(self).vars().apply(): + cmake.configure() + cmake.build() def package(self): # ASWF: license files in package subdirectory @@ -143,14 +150,15 @@ def _add_component(self, name): return component def package_info(self): - self.cpp_info.set_property("cmake_file_name", "OpenShadingLanguage") - self.cpp_info.set_property("cmake_target_name", "OpenShadingLanguage::OpenShadingLanguage") - self.cpp_info.set_property("pkg_config_name", "OpenOpenShadingLanguage") + self.cpp_info.set_property("cmake_file_name", "OSL") + self.cpp_info.set_property("cmake_target_name", "OSL::OSL") + self.cpp_info.set_property("pkg_config_name", "OSL") - self.cpp_info.libs = ["oslcomp", "oslexec", "oslnoise", "oslquery", "osltestshade"] + self.cpp_info.libs = ["oslcomp", "oslexec", "oslnoise", "oslquery", "testshade"] + self.cpp_info.bindirs = ["bin"] self.cpp_info.requires = [ - "clang::LLVM", + "clang::clang", "zlib::zlib", "fmt::fmt", "tsl-robin-map::tsl-robin-map", diff --git a/packages/conan/recipes/pyside/conanfile.py b/packages/conan/recipes/pyside/conanfile.py index a4d3d85b..a69ea022 100644 --- a/packages/conan/recipes/pyside/conanfile.py +++ b/packages/conan/recipes/pyside/conanfile.py @@ -378,3 +378,4 @@ def package_info(self): self.user_info.site_package = os.path.join( self.package_folder, f"lib/python{v.major}.{v.minor}/site-packages" ) + self.cpp_info.bindirs = ["bin"] diff --git a/packages/conan/settings/extensions/plugins/compatibility/compatibility.py b/packages/conan/settings/extensions/plugins/compatibility/compatibility.py index 89b11c0d..247438e1 100644 --- a/packages/conan/settings/extensions/plugins/compatibility/compatibility.py +++ b/packages/conan/settings/extensions/plugins/compatibility/compatibility.py @@ -1,9 +1,77 @@ # This file was generated by Conan. Remove this comment if you edit this file or Conan # will destroy your changes. -from cppstd_compat import cppstd_compat + +from conan.tools.build import supported_cppstd, supported_cstd +from conan.errors import ConanException + + +def cppstd_compat(conanfile): + # It will try to find packages with all the cppstd versions + extension_properties = getattr(conanfile, "extension_properties", {}) + compiler = conanfile.settings.get_safe("compiler") + compiler_version = conanfile.settings.get_safe("compiler.version") + cppstd = conanfile.settings.get_safe("compiler.cppstd") + if not compiler or not compiler_version: + return [] + factors = [] # List of list, each sublist is a potential combination + if ( + cppstd is not None + and extension_properties.get("compatibility_cppstd") is not False + ): + cppstd_possible_values = supported_cppstd(conanfile) + if cppstd_possible_values is None: + conanfile.output.warning( + f'No cppstd compatibility defined for compiler "{compiler}"' + ) + else: # The current cppst must be included in case there is other factor + factors.append([{"compiler.cppstd": v} for v in cppstd_possible_values]) + + cstd = conanfile.settings.get_safe("compiler.cstd") + if cstd is not None and extension_properties.get("compatibility_cstd") is not False: + cstd_possible_values = supported_cstd(conanfile) + if cstd_possible_values is None: + conanfile.output.warning( + f'No cstd compatibility defined for compiler "{compiler}"' + ) + else: + factors.append( + [{"compiler.cstd": v} for v in cstd_possible_values if v != cstd] + ) + return factors def compatibility(conanfile): - configs = cppstd_compat(conanfile) - # TODO: Append more configurations for your custom compatibility rules - return configs + # By default, different compiler.cppstd are compatible + # factors is a list of lists + factors = cppstd_compat(conanfile) + + # MSVC 194->193 fallback compatibility + compiler = conanfile.settings.get_safe("compiler") + compiler_version = conanfile.settings.get_safe("compiler.version") + if compiler == "msvc": + msvc_fallback = {"194": "193"}.get(compiler_version) + if msvc_fallback: + factors.append([{"compiler.version": msvc_fallback}]) + + # Append more factors for your custom compatibility rules here + + # Combine factors to compute all possible configurations + combinations = _factors_combinations(factors) + # Final compatibility settings combinations to check + return [{"settings": [(k, v) for k, v in comb.items()]} for comb in combinations] + + +def _factors_combinations(factors): + combinations = [] + for factor in factors: + if not combinations: + combinations = factor + continue + new_combinations = [] + for comb in combinations: + for f in factor: + new_comb = comb.copy() + new_comb.update(f) + new_combinations.append(new_comb) + combinations.extend(new_combinations) + return combinations diff --git a/packages/conan/settings/extensions/plugins/compatibility/cppstd_compat.py b/packages/conan/settings/extensions/plugins/compatibility/cppstd_compat.py deleted file mode 100644 index dc5a570b..00000000 --- a/packages/conan/settings/extensions/plugins/compatibility/cppstd_compat.py +++ /dev/null @@ -1,61 +0,0 @@ -# This file was generated by Conan. Remove this comment if you edit this file or Conan -# will destroy your changes. -from conan.tools.build import supported_cppstd, supported_cstd -from conan.errors import ConanException - - -def cppstd_compat(conanfile): - # It will try to find packages with all the cppstd versions - extension_properties = getattr(conanfile, "extension_properties", {}) - compiler = conanfile.settings.get_safe("compiler") - compiler_version = conanfile.settings.get_safe("compiler.version") - cppstd = conanfile.settings.get_safe("compiler.cppstd") - if not compiler or not compiler_version: - return [] - factors = [] # List of list, each sublist is a potential combination - if ( - cppstd is not None - and extension_properties.get("compatibility_cppstd") is not False - ): - cppstd_possible_values = supported_cppstd(conanfile) - if cppstd_possible_values is None: - conanfile.output.warning( - f'No cppstd compatibility defined for compiler "{compiler}"' - ) - else: # The current cppst must be included in case there is other factor - factors.append([{"compiler.cppstd": v} for v in cppstd_possible_values]) - - cstd = conanfile.settings.get_safe("compiler.cstd") - if cstd is not None and extension_properties.get("compatibility_cstd") is not False: - cstd_possible_values = supported_cstd(conanfile) - if cstd_possible_values is None: - conanfile.output.warning( - f'No cstd compatibility defined for compiler "{compiler}"' - ) - else: - factors.append( - [{"compiler.cstd": v} for v in cstd_possible_values if v != cstd] - ) - - if compiler == "msvc": - msvc_fallback = {"194": "193"}.get(compiler_version) - if msvc_fallback: - factors.append([{"compiler.version": msvc_fallback}]) - - combinations = [] - for factor in factors: - if not combinations: - combinations = factor - continue - new_combinations = [] - for comb in combinations: - for f in factor: - new_comb = comb.copy() - new_comb.update(f) - new_combinations.append(new_comb) - combinations.extend(new_combinations) - - ret = [] - for comb in combinations: - ret.append({"settings": [(k, v) for k, v in comb.items()]}) - return ret diff --git a/packages/conan/settings/extensions/plugins/profile.py b/packages/conan/settings/extensions/plugins/profile.py index b43cdc65..ac8334b6 100644 --- a/packages/conan/settings/extensions/plugins/profile.py +++ b/packages/conan/settings/extensions/plugins/profile.py @@ -18,65 +18,40 @@ def profile_plugin(profile): def _check_correct_cppstd(settings): - from conan.tools.scm import Version - - def _error(compiler, cppstd, min_version, version): - from conan.errors import ConanException - - raise ConanException( - f"The provided compiler.cppstd={cppstd} requires at least {compiler}" - f">={min_version} but version {version} provided" - ) - cppstd = settings.get("compiler.cppstd") version = settings.get("compiler.version") if cppstd and version: - cppstd = cppstd.replace("gnu", "") - version = Version(version) - mver = None compiler = settings.get("compiler") - if compiler == "gcc": - mver = {"20": "8", "17": "5", "14": "4.8", "11": "4.3"}.get(cppstd) - elif compiler == "clang": - mver = {"20": "6", "17": "3.5", "14": "3.4", "11": "2.1"}.get(cppstd) - elif compiler == "apple-clang": - mver = {"20": "10", "17": "6.1", "14": "5.1", "11": "4.5"}.get(cppstd) - elif compiler == "msvc": - mver = {"23": "193", "20": "192", "17": "191", "14": "190"}.get(cppstd) - if mver and version < mver: - _error(compiler, cppstd, mver, version) + from conan.tools.build.cppstd import supported_cppstd + supported = supported_cppstd(None, compiler, version) + # supported is None when we don't have information about the compiler + # but an empty list when no flags are supported for this version + if supported is not None and cppstd not in supported: + from conan.errors import ConanException -def _check_correct_cstd(settings): - from conan.tools.scm import Version - - def _error(compiler, cstd, min_version, version): - from conan.errors import ConanException + raise ConanException( + f"The provided compiler.cppstd={cppstd} is not supported by {compiler} {version}. " + f"Supported values are: {supported}" + ) - raise ConanException( - f"The provided compiler.cstd={cstd} requires at least {compiler}" - f">={min_version} but version {version} provided" - ) +def _check_correct_cstd(settings): cstd = settings.get("compiler.cstd") version = settings.get("compiler.version") if cstd and version: - cstd = cstd.replace("gnu", "") - version = Version(version) - mver = None compiler = settings.get("compiler") - if compiler == "gcc": - # TODO: right versions - mver = {}.get(cstd) - elif compiler == "clang": - # TODO: right versions - mver = {}.get(cstd) - elif compiler == "apple-clang": - # TODO: Right versions - mver = {}.get(cstd) - elif compiler == "msvc": - mver = {"17": "192", "11": "192"}.get(cstd) - if mver and version < mver: - _error(compiler, cppstd, mver, version) + from conan.tools.build.cstd import supported_cstd + + supported = supported_cstd(None, compiler, version) + # supported is None when we don't have information about the compiler + # but an empty list when no flags are supported for this version + if supported is not None and cstd not in supported: + from conan.errors import ConanException + + raise ConanException( + f"The provided compiler.cstd={cstd} is not supported by {compiler} {version}. " + f"Supported values are: {supported}" + ) diff --git a/packages/conan/settings/profiles_aswf/vfx2024 b/packages/conan/settings/profiles_aswf/vfx2024 index fd80c52a..9a4f5836 100644 --- a/packages/conan/settings/profiles_aswf/vfx2024 +++ b/packages/conan/settings/profiles_aswf/vfx2024 @@ -14,6 +14,7 @@ bzip2/*: bzip2/1.0.8@aswf/vfx2024 c-blosc/*: c-blosc/1.21.6@aswf/vfx2024 ceres-solver/*: ceres-solver/2.2.0@aswf/vfx2024 cimg/*: cimg/3.3.2@aswf/vfx2024 +cppunit/*: cppunit/1.15.1@aswf/vfx2024 cpython/*: cpython/3.11.13@aswf/vfx2024 dbus/*: dbus/system@aswf/vfx2024 double-conversion/*: double-conversion/system@aswf/vfx2024 @@ -75,10 +76,13 @@ openal-soft/*: openal-soft/system@aswf/vfx2024 opencl-headers/*: opencl-headers/system@aswf/vfx2024 opencl-icd-loader/*: opencl-icd-loader/system@aswf/vfx2024 openexr/*: openexr/3.2.5@aswf/vfx2024 +openfx/*: openfx/1.5s@aswf/vfx2024 opengl/*: opengl/system@aswf/vfx2024 openjpeg/*: openjpeg/2.4.0@aswf/vfx2024 openjph/*: openjph/0.24.5@aswf/vfx2024 openssl/*: openssl/system@aswf/vfx2024 +opensubdiv/*: opensubdiv/3.6.1@aswf/vfx2024 +openusd/*: openusd/24.08@aswf/vfx2024 openvdb/*: openvdb/11.0.0@aswf/vfx2024 opus/*: opus/system@aswf/vfx2024 osl/*: osl/1.13.11.0@aswf/vfx2024 @@ -88,6 +92,7 @@ ptex/*: ptex/2.4.2@aswf/vfx2024 pugixml/*: pugixml/1.14@aswf/vfx2024 pulseaudio/*: pulseaudio/system@aswf/vfx2024 pybind11/*: pybind11/2.13.6@aswf/vfx2024 +pyside/*: pyside/6.5.6@aswf/vfx2024 pystring/*: pystring/1.1.4@aswf/vfx2024 qt/*: qt/6.5.6@aswf/vfx2024 rawtoaces/*: rawtoaces/1.1.0@aswf/vfx2024 @@ -119,6 +124,7 @@ meson/*: meson/0.58.2@system nasm/*: nasm/system@aswf/vfx2024 nodejs/*: nodejs/18.20.4@system pkgconf/*: pkgconf/1.4.2@system +pyside/*: pyside/6.5.6@aswf/vfx2024 wayland/*: wayland/1.21.0@system wayland-protocols/*: wayland-protocols/1.25@system [platform_requires] diff --git a/packages/conan/settings/profiles_aswf/vfx2025 b/packages/conan/settings/profiles_aswf/vfx2025 index 6d3387fa..f9d89b15 100644 --- a/packages/conan/settings/profiles_aswf/vfx2025 +++ b/packages/conan/settings/profiles_aswf/vfx2025 @@ -14,6 +14,7 @@ bzip2/*: bzip2/1.0.8@aswf/vfx2025 c-blosc/*: c-blosc/1.21.6@aswf/vfx2025 ceres-solver/*: ceres-solver/2.2.0@aswf/vfx2025 cimg/*: cimg/3.3.2@aswf/vfx2025 +cppunit/*: cppunit/1.15.1@aswf/vfx2025 cpython/*: cpython/3.11.13@aswf/vfx2025 dbus/*: dbus/system@aswf/vfx2025 double-conversion/*: double-conversion/system@aswf/vfx2025 @@ -36,7 +37,7 @@ imath/*: imath/3.1.12@aswf/vfx2025 jasper/*: jasper/4.2.5@aswf/vfx2025 lcms/*: lcms/2.17@aswf/vfx2025 libalsa/*: libalsa/system@aswf/vfx2025 -libaom-av1/*: libaom/system@aswf/vfx2025 +libaom-av1/*: libaom-av1/system@aswf/vfx2025 libbacktrace/*: libbacktrace/cci.20210118@aswf/vfx2025 libdeflate/*: libdeflate/1.23@aswf/vfx2025 libdrm/*: libdrm/system@aswf/vfx2025 @@ -49,7 +50,7 @@ libpng/*: libpng/1.6.34@aswf/vfx2025 libraw/*: libraw/0.21.4@aswf/vfx2025 libsndfile/*: libsndfile/system@aswf/vfx2025 libsquish/*: libsquish/system@aswf/vfx2025 -libsvt-av1/*: libsvt-av1/system@aswf/vfx2025 +libsvtav1/*: libsvtav1/system@aswf/vfx2025 libtiff/*: libtiff/4.0.9@aswf/vfx2025 libultrahdr/*: libultrahdr/1.4.0@aswf/vfx2025 libvpx/*: libvpx/system@aswf/vfx2025 @@ -75,10 +76,13 @@ openal-soft/*: openal-soft/system@aswf/vfx2025 opencl-headers/*: opencl-headers/system@aswf/vfx2025 opencl-icd-loader/*: opencl-icd-loader/system@aswf/vfx2025 openexr/*: openexr/3.3.7@aswf/vfx2025 +openfx/*: openfx/1.5s@aswf/vfx2025 opengl/*: opengl/system@aswf/vfx2025 openjpeg/*: openjpeg/2.4.0@aswf/vfx2025 openjph/*: openjph/0.24.5@aswf/vfx2025 openssl/*: openssl/system@aswf/vfx2025 +opensubdiv/*: opensubdiv/3.6.1@aswf/vfx2025 +openusd/*: openusd/25.05.01@aswf/vfx2025 openvdb/*: openvdb/12.1.1@aswf/vfx2025 opus/*: opus/system@aswf/vfx2025 osl/*: osl/1.14.7.0@aswf/vfx2025 @@ -86,8 +90,9 @@ partio/*: partio/1.19.0@aswf/vfx2025 pcre2/*: pcre2/system@aswf/vfx2025 ptex/*: ptex/2.4.3@aswf/vfx2025 pugixml/*: pugixml/1.14@aswf/vfx2025 -pulseaudio/*: pulseaudio/system@aswr/vfx2025 +pulseaudio/*: pulseaudio/system@aswf/vfx2025 pybind11/*: pybind11/2.13.6@aswf/vfx2025 +pyside/*: pyside/6.5.6@aswf/vfx2025 pystring/*: pystring/1.1.4@aswf/vfx2025 qt/*: qt/6.5.6@aswf/vfx2025 rawtoaces/*: rawtoaces/1.1.0@aswf/vfx2025 @@ -119,6 +124,7 @@ meson/*: meson/0.58.2@system nasm/*: nasm/system@aswf/vfx2025 nodejs/*: nodejs/18.20.4@system pkgconf/*: pkgconf/1.4.2@system +pyside/*: pyside/6.5.6@aswf/vfx2025 wayland/*: wayland/1.21.0@system wayland-protocols/*: wayland-protocols/1.25@system [platform_requires] diff --git a/packages/conan/settings/profiles_aswf/vfx2026 b/packages/conan/settings/profiles_aswf/vfx2026 index 2c6b0828..b6535357 100644 --- a/packages/conan/settings/profiles_aswf/vfx2026 +++ b/packages/conan/settings/profiles_aswf/vfx2026 @@ -16,6 +16,7 @@ bzip2/*: bzip2/1.0.8@aswf/vfx2026 c-blosc/*: c-blosc/1.21.6@aswf/vfx2026 ceres-solver/*: ceres-solver/2.2.0@aswf/vfx2026 cimg/*: cimg/3.3.2@aswf/vfx2026 +cppunit/*: cppunit/1.15.1@aswf/vfx2026 cpython/*: cpython/3.13.3@aswf/vfx2026 dbus/*: dbus/system@aswf/vfx2026 double-conversion/*: double-conversion/system@aswf/vfx2026 @@ -38,7 +39,7 @@ imath/*: imath/3.2.2@aswf/vfx2026 jasper/*: jasper/4.2.5@aswf/vfx2026 lcms/*: lcms/2.17@aswf/vfx2026 libalsa/*: libalsa/system@aswf/vfx2026 -libaom-av1/*: libaom/system@aswf/vfx2026 +libaom-av1/*: libaom-av1/system@aswf/vfx2026 libbacktrace/*: libbacktrace/cci.20210118@aswf/vfx2026 libdeflate/*: libdeflate/1.24@aswf/vfx2026 libdrm/*: libdrm/system@aswf/vfx2026 @@ -51,7 +52,7 @@ libpng/*: libpng/1.6.34@aswf/vfx2026 libraw/*: libraw/0.21.4@aswf/vfx2026 libsndfile/*: libsndfile/system@aswf/vfx2026 libsquish/*: libsquish/system@aswf/vfx2026 -libsvt-av1/*: libsvt-av1/system@aswf/vfx2026 +libsvtav1/*: libsvtav1/system@aswf/vfx2026 libtiff/*: libtiff/4.0.9@aswf/vfx2026 libultrahdr/*: libultrahdr/1.4.0@aswf/vfx2026 libvpx/*: libvpx/system@aswf/vfx2026 @@ -60,7 +61,7 @@ libxcrypt/*: libxcrypt/4.4.38@aswf/vfx2026 libxshmfence/*: libxshmfence/system@aswf/vfx2026 log4cplus/*: log4cplus/2.1.2@aswf/vfx2026 lz4/*: lz4/1.10.0@aswf/vfx2026 -materiax/*: materialx/1.39.4@aswf/vfx2026 +materialx/*: materialx/1.39.4@aswf/vfx2026 md4c/*: md4c/0.5.2@aswf/vfx2026 minizip-ng/*: minizip-ng/4.0.10@aswf/vfx2026 mpdecimal/*: mpdecimal/system@aswf/vfx2026 @@ -77,12 +78,14 @@ openal-soft/*: openal-soft/system@aswf/vfx2026 opencl-headers/*: opencl-headers/system@aswf/vfx2026 opencl-icd-loader/*: opencl-icd-loader/system@aswf/vfx2026 openexr/*: openexr/3.4.5@aswf/vfx2026 +openfx/*: openfx/1.5s@aswf/vfx2026 opengl/*: opengl/system@aswf/vfx2026 openjpeg/*: openjpeg/2.4.0@aswf/vfx2026 openjph/*: openjph/0.24.5@aswf/vfx2026 openssl/*: openssl/system@aswf/vfx2026 opensubdiv/*: opensubdiv/3.7.0@aswf/vfx2026 -openvdb/*: openvdb/13.0.0/vfx2026 +openusd/*: openusd/26.03@aswf/vfx2026 +openvdb/*: openvdb/13.0.0@aswf/vfx2026 opus/*: opus/system@aswf/vfx2026 osl/*: osl/1.15.1.0@aswf/vfx2026 partio/*: partio/1.19.0@aswf/vfx2026 @@ -91,6 +94,7 @@ ptex/*: ptex/2.4.3@aswf/vfx2026 pugixml/*: pugixml/1.15@aswf/vfx2026 pulseaudio/*: pulseaudio/system@aswf/vfx2026 pybind11/*: pybind11/2.13.6@aswf/vfx2026 +pyside/*: pyside/6.8.3@aswf/vfx2026 pystring/*: pystring/1.1.4@aswf/vfx2026 qt/*: qt/6.8.3@aswf/vfx2026 rawtoaces/*: rawtoaces/2.0.0@aswf/vfx2026 @@ -122,6 +126,7 @@ meson/*: meson/0.58.2@system nasm/*: nasm/system@aswf/vfx2026 nodejs/*: nodejs/18.20.4@system pkgconf/*: pkgconf/1.4.2@system +pyside/*: pyside/6.8.3@aswf/vfx2026 wayland/*: wayland/1.21.0@system wayland-protocols/*: wayland-protocols/1.25@system [platform_requires] diff --git a/packages/conan/settings/profiles_aswftesting/vfx2024 b/packages/conan/settings/profiles_aswftesting/vfx2024 index 19024a9c..cd7f5028 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2024 +++ b/packages/conan/settings/profiles_aswftesting/vfx2024 @@ -12,10 +12,11 @@ boost/*: boost/1.82.0@aswftesting/vfx2024 brotli/*: brotli/system@aswftesting/vfx2024 bzip2/*: bzip2/1.0.8@aswftesting/vfx2024 c-blosc/*: c-blosc/1.21.6@aswftesting/vfx2024 -dbus/*: dbus/system@aswftesting/vfx2024 ceres-solver/*: ceres-solver/2.2.0@aswftesting/vfx2024 cimg/*: cimg/3.3.2@aswftesting/vfx2024 +cppunit/*: cppunit/1.15.1@aswftesting/vfx2024 cpython/*: cpython/3.11.13@aswftesting/vfx2024 +dbus/*: dbus/system@aswftesting/vfx2024 double-conversion/*: double-conversion/system@aswftesting/vfx2024 eigen/*: eigen/3.4.0@aswftesting/vfx2024 expat/*: expat/2.6.4@aswftesting/vfx2024 @@ -58,7 +59,7 @@ libwebp/*: libwebp/1.5.0@aswftesting/vfx2024 libxshmfence/*: libxshmfence/system@aswftesting/vfx2024 log4cplus/*: log4cplus/2.1.2@aswftesting/vfx2024 lz4/*: lz4/1.10.0@aswftesting/vfx2024 -materiax/*: materialx/1.39.1@aswftesting/vfx2024 +materialx/*: materialx/1.39.1@aswftesting/vfx2024 md4c/*: md4c/0.4.8@aswftesting/vfx2024 minizip-ng/*: minizip-ng/4.0.10@aswftesting/vfx2024 mpdecimal/*: mpdecimal/system@aswftesting/vfx2024 @@ -75,10 +76,13 @@ openal-soft/*: openal-soft/system@aswftesting/vfx2024 opencl-headers/*: opencl-headers/system@aswftesting/vfx2024 opencl-icd-loader/*: opencl-icd-loader/system@aswftesting/vfx2024 openexr/*: openexr/3.2.5@aswftesting/vfx2024 +openfx/*: openfx/1.5s@aswftesting/vfx2024 opengl/*: opengl/system@aswftesting/vfx2024 openjpeg/*: openjpeg/2.4.0@aswftesting/vfx2024 openjph/*: openjph/0.24.5@aswftesting/vfx2024 openssl/*: openssl/system@aswftesting/vfx2024 +opensubdiv/*: opensubdiv/3.6.1@aswftesting/vfx2024 +openusd/*: openusd/24.08@aswftesting/vfx2024 openvdb/*: openvdb/11.0.0@aswftesting/vfx2024 opus/*: opus/system@aswftesting/vfx2024 osl/*: osl/1.13.11.0@aswftesting/vfx2024 @@ -88,6 +92,7 @@ ptex/*: ptex/2.4.2@aswftesting/vfx2024 pugixml/*: pugixml/1.14@aswftesting/vfx2024 pulseaudio/*: pulseaudio/system@aswftesting/vfx2024 pybind11/*: pybind11/2.13.6@aswftesting/vfx2024 +pyside/*: pyside/6.5.6@aswftesting/vfx2024 pystring/*: pystring/1.1.4@aswftesting/vfx2024 qt/*: qt/6.5.6@aswftesting/vfx2024 rawtoaces/*: rawtoaces/1.1.0@aswftesting/vfx2024 @@ -119,6 +124,7 @@ meson/*: meson/0.58.2@system nasm/*: nasm/system@aswftesting/vfx2024 nodejs/*: nodejs/18.20.4@system pkgconf/*: pkgconf/1.4.2@system +pyside/*: pyside/6.5.6@aswftesting/vfx2024 wayland/*: wayland/1.21.0@system wayland-protocols/*: wayland-protocols/1.25@system [platform_requires] diff --git a/packages/conan/settings/profiles_aswftesting/vfx2025 b/packages/conan/settings/profiles_aswftesting/vfx2025 index 4d7d3c2d..c505bef1 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2025 +++ b/packages/conan/settings/profiles_aswftesting/vfx2025 @@ -14,6 +14,7 @@ bzip2/*: bzip2/1.0.8@aswftesting/vfx2025 c-blosc/*: c-blosc/1.21.6@aswftesting/vfx2025 ceres-solver/*: ceres-solver/2.2.0@aswftesting/vfx2025 cimg/*: cimg/3.3.2@aswftesting/vfx2025 +cppunit/*: cppunit/1.15.1@aswftesting/vfx2025 cpython/*: cpython/3.11.13@aswftesting/vfx2025 dbus/*: dbus/system@aswftesting/vfx2025 double-conversion/*: double-conversion/system@aswftesting/vfx2025 @@ -75,10 +76,13 @@ openal-soft/*: openal-soft/system@aswftesting/vfx2025 opencl-headers/*: opencl-headers/system@aswftesting/vfx2025 opencl-icd-loader/*: opencl-icd-loader/system@aswftesting/vfx2025 openexr/*: openexr/3.3.7@aswftesting/vfx2025 +openfx/*: openfx/1.5s@aswftesting/vfx2025 opengl/*: opengl/system@aswftesting/vfx2025 openjpeg/*: openjpeg/2.4.0@aswftesting/vfx2025 openjph/*: openjph/0.24.5@aswftesting/vfx2025 openssl/*: openssl/system@aswftesting/vfx2025 +opensubdiv/*: opensubdiv/3.6.1@aswftesting/vfx2025 +openusd/*: openusd/25.05.01@aswftesting/vfx2025 openvdb/*: openvdb/12.1.1@aswftesting/vfx2025 opus/*: opus/system@aswftesting/vfx2025 osl/*: osl/1.14.7.0@aswftesting/vfx2025 @@ -88,6 +92,7 @@ ptex/*: ptex/2.4.3@aswftesting/vfx2025 pugixml/*: pugixml/1.14@aswftesting/vfx2025 pulseaudio/*: pulseaudio/system@aswftesting/vfx2025 pybind11/*: pybind11/2.13.6@aswftesting/vfx2025 +pyside/*: pyside/6.5.6@aswftesting/vfx2025 pystring/*: pystring/1.1.4@aswftesting/vfx2025 qt/*: qt/6.5.6@aswftesting/vfx2025 rawtoaces/*: rawtoaces/1.1.0@aswftesting/vfx2025 @@ -119,6 +124,7 @@ meson/*: meson/0.58.2@system nasm/*: nasm/system@aswftesting/vfx2025 nodejs/*: nodejs/18.20.4@system pkgconf/*: pkgconf/1.4.2@system +pyside/*: pyside/6.5.6@aswftesting/vfx2025 wayland/*: wayland/1.21.0@system wayland-protocols/*: wayland-protocols/1.25@system [platform_requires] diff --git a/packages/conan/settings/profiles_aswftesting/vfx2026 b/packages/conan/settings/profiles_aswftesting/vfx2026 index eaf74ccf..36f37b17 100644 --- a/packages/conan/settings/profiles_aswftesting/vfx2026 +++ b/packages/conan/settings/profiles_aswftesting/vfx2026 @@ -16,6 +16,7 @@ bzip2/*: bzip2/1.0.8@aswftesting/vfx2026 c-blosc/*: c-blosc/1.21.6@aswftesting/vfx2026 ceres-solver/*: ceres-solver/2.2.0@aswftesting/vfx2026 cimg/*: cimg/3.3.2@aswftesting/vfx2026 +cppunit/*: cppunit/1.15.1@aswftesting/vfx2026 cpython/*: cpython/3.13.3@aswftesting/vfx2026 dbus/*: dbus/system@aswftesting/vfx2026 double-conversion/*: double-conversion/system@aswftesting/vfx2026 @@ -51,7 +52,7 @@ libpng/*: libpng/1.6.34@aswftesting/vfx2026 libraw/*: libraw/0.21.4@aswftesting/vfx2026 libsndfile/*: libsndfile/system@aswftesting/vfx2026 libsquish/*: libsquish/system@aswftesting/vfx2026 -libsvt-av1/*: libsvt-av1/system@aswftesting/vfx2026 +libsvtav1/*: libsvtav1/system@aswftesting/vfx2026 libtiff/*: libtiff/4.0.9@aswftesting/vfx2026 libultrahdr/*: libultrahdr/1.4.0@aswftesting/vfx2026 libvpx/*: libvpx/system@aswftesting/vfx2026 @@ -77,11 +78,13 @@ openal-soft/*: openal-soft/system@aswftesting/vfx2026 opencl-headers/*: opencl-headers/system@aswftesting/vfx2026 opencl-icd-loader/*: opencl-icd-loader/system@aswftesting/vfx2026 openexr/*: openexr/3.4.5@aswftesting/vfx2026 +openfx/*: openfx/1.5s@aswftesting/vfx2026 opengl/*: opengl/system@aswftesting/vfx2026 openjpeg/*: openjpeg/2.4.0@aswftesting/vfx2026 openjph/*: openjph/0.24.5@aswftesting/vfx2026 openssl/*: openssl/system@aswftesting/vfx2026 opensubdiv/*: opensubdiv/3.7.0@aswftesting/vfx2026 +openusd/*: openusd/26.03@aswftesting/vfx2026 openvdb/*: openvdb/13.0.0@aswftesting/vfx2026 opus/*: opus/system@aswftesting/vfx2026 osl/*: osl/1.15.1.0@aswftesting/vfx2026 @@ -89,8 +92,9 @@ partio/*: partio/1.19.0@aswftesting/vfx2026 pcre2/*: pcre2/system@aswftesting/vfx2026 ptex/*: ptex/2.4.3@aswftesting/vfx2026 pugixml/*: pugixml/1.15@aswftesting/vfx2026 -pulseaudio/*: pulseaudio/system@aswr/vfx2026 +pulseaudio/*: pulseaudio/system@aswftesting/vfx2026 pybind11/*: pybind11/2.13.6@aswftesting/vfx2026 +pyside/*: pyside/6.8.3@aswftesting/vfx2026 pystring/*: pystring/1.1.4@aswftesting/vfx2026 qt/*: qt/6.8.3@aswftesting/vfx2026 rawtoaces/*: rawtoaces/2.0.0@aswftesting/vfx2026 @@ -122,6 +126,7 @@ meson/*: meson/0.58.2@system nasm/*: nasm/system@aswftesting/vfx2026 nodejs/*: nodejs/18.20.4@system pkgconf/*: pkgconf/1.4.2@system +pyside/*: pyside/6.8.3@aswftesting/vfx2026 wayland/*: wayland/1.21.0@system wayland-protocols/*: wayland-protocols/1.25@system [platform_requires] diff --git a/packages/conan/settings/settings.yml b/packages/conan/settings/settings.yml index f09befbd..cd402ef0 100644 --- a/packages/conan/settings/settings.yml +++ b/packages/conan/settings/settings.yml @@ -11,53 +11,72 @@ os: Linux: iOS: version: &ios_version - ["7.0", "7.1", "8.0", "8.1", "8.2", "8.3", "9.0", "9.1", "9.2", "9.3", "10.0", "10.1", "10.2", "10.3", - "11.0", "11.1", "11.2", "11.3", "11.4", "12.0", "12.1", "12.2", "12.3", "12.4", + ["7.0", "7.1", "8.0", "8.1", "8.2", "8.3", "8.4", "9.0", "9.1", "9.2", "9.3", + "10.0", "10.1", "10.2", "10.3", + "11.0", "11.1", "11.2", "11.3", "11.4", + "12.0", "12.1", "12.2", "12.3", "12.4", "12.5", "13.0", "13.1", "13.2", "13.3", "13.4", "13.5", "13.6", "13.7", "14.0", "14.1", "14.2", "14.3", "14.4", "14.5", "14.6", "14.7", "14.8", - "15.0", "15.1", "15.2", "15.3", "15.4", "15.5", "15.6", "16.0", "16.1", - "16.2", "16.3", "16.4", "16.5", "16.6", "17.0", "17.1", "17.2", "17.3", "17.4", "17.5", - "18.0", "18.1"] + "15.0", "15.1", "15.2", "15.3", "15.4", "15.5", "15.6", "15.7", "15.8", + "16.0", "16.1", "16.2", "16.3", "16.4", "16.5", "16.6", "16.7", + "17.0", "17.1", "17.2", "17.3", "17.4", "17.5", "17.6", "17.7", "17.8", + "18.0", "18.1", "18.2", "18.3", "18.4", "18.5", "18.6", "18.7", + "26.0", "26.1", "26.2"] sdk: ["iphoneos", "iphonesimulator"] sdk_version: [null, "11.3", "11.4", "12.0", "12.1", "12.2", "12.4", - "13.0", "13.1", "13.2", "13.4", "13.5", "13.6", "13.7", + "13.0", "13.1", "13.2", "13.3", "13.4", "13.5", "13.6", "13.7", "14.0", "14.1", "14.2", "14.3", "14.4", "14.5", "15.0", "15.2", "15.4", "15.5", "16.0", "16.1", "16.2", "16.4", "17.0", "17.1", "17.2", "17.4", "17.5", - "18.0", "18.1"] + "18.0", "18.1", "18.2", "18.4", "18.5", + "26.0", "26.1", "26.2"] watchOS: - version: ["4.0", "4.1", "4.2", "4.3", "5.0", "5.1", "5.2", "5.3", "6.0", "6.1", "6.2", - "7.0", "7.1", "7.2", "7.3", "7.4", "7.5", "7.6", "8.0", "8.1", "8.3", "8.4", - "8.5", "8.6", "8.7", "9.0", "9.1", "9.2", "9.3", "9.4", "9.5", "9.6", - "10.0", "10.1", "10.2", "10.3", "10.4", "10.5", "11.0", "11.1"] + version: ["4.0", "4.1", "4.2", "4.3", "5.0", "5.1", "5.2", "5.3", "6.0", "6.1", "6.2", "6.3", + "7.0", "7.1", "7.2", "7.3", "7.4", "7.5", "7.6", + "8.0", "8.1", "8.3", "8.4", "8.5", "8.6", "8.7", + "9.0","9.1", "9.2", "9.3", "9.4", "9.5", "9.6", + "10.0", "10.1", "10.2", "10.3", "10.4", "10.5", "10.6", + "11.0", "11.1", "11.2", "11.3", "11.4", "11.5", "11.6", + "26.0", "26.1", "26.2"] sdk: ["watchos", "watchsimulator"] sdk_version: [null, "4.3", "5.0", "5.1", "5.2", "5.3", "6.0", "6.1", "6.2", - "7.0", "7.1", "7.2", "7.4", "8.0", "8.0.1", "8.3", "8.5", "9.0", "9.1", - "9.4", "10.0", "10.1", "10.2", "10.4", "10.5", "11.0", "11.1"] + "7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.0.1", "8.3", "8.5", "9.0", "9.1", + "9.4", "10.0", "10.1", "10.2", "10.4", "10.5", + "11.0", "11.1", "11.2", "11.4", "11.5", + "26.0", "26.1", "26.2"] tvOS: - version: ["11.0", "11.1", "11.2", "11.3", "11.4", "12.0", "12.1", "12.2", "12.3", "12.4", - "13.0", "13.2", "13.3", "13.4", "14.0", "14.2", "14.3", "14.4", "14.5", - "14.6", "14.7", "15.0", "15.1", "15.2", "15.3", "15.4", "15.5", "15.6", - "16.0", "16.1", "16.2", "16.3", "16.4", "16.5", "16.6", "17.0", "17.1", "17.2", "17.3", "17.4", - "17.5", "18.0", "18.1"] + version: ["11.0", "11.1", "11.2", "11.3", "11.4", + "12.0", "12.1", "12.2", "12.3", "12.4", + "13.0", "13.2", "13.3", "13.4", + "14.0", "14.2", "14.3", "14.4", "14.5", "14.6", "14.7", + "15.0", "15.1", "15.2", "15.3", "15.4", "15.5", "15.6", + "16.0", "16.1", "16.2", "16.3", "16.4", "16.5", "16.6", + "17.0", "17.1", "17.2", "17.3", "17.4", "17.5", "17.6", + "18.0", "18.1", "18.2", "18.3", "18.4", "18.5", "18.6", + "26.0", "26.1", "26.2"] sdk: ["appletvos", "appletvsimulator"] sdk_version: [null, "11.3", "11.4", "12.0", "12.1", "12.2", "12.4", - "13.0", "13.1", "13.2", "13.4", "14.0", "14.2", "14.3", "14.5", "15.0", - "15.2", "15.4", "16.0", "16.1", "16.4", "17.0", "17.1", "17.2", "17.4", "17.5", - "18.0", "18.1"] + "13.0", "13.2", "13.3", "13.4", "14.0", "14.2", "14.3", "14.4", "14.5", "15.0", + "15.2", "15.4", "15.5", "16.0", "16.1", "16.4", "17.0", "17.1", "17.2", "17.4", "17.5", + "18.0", "18.1", "18.2", "18.4", "18.5", + "26.0", "26.1", "26.2"] visionOS: - version: ["1.0", "1.1", "1.2", "2.0", "2.1"] + version: ["1.0", "1.1", "1.2", "1.3", "2.0", "2.1", "2.2", "2.3", "2.4", "2.5", "2.6", + "26.0", "26.1", "26.2"] sdk: ["xros", "xrsimulator"] - sdk_version: [null, "1.0", "1.1", "1.2", "2.0", "2.1"] + sdk_version: [null, "1.0", "1.1", "1.2", "1.3", "2.0", "2.1", "2.2", "2.4", "2.5", + "26.0", "26.1", "26.2"] Macos: version: [null, "10.6", "10.7", "10.8", "10.9", "10.10", "10.11", "10.12", "10.13", "10.14", "10.15", "11.0", "11.1", "11.2", "11.3", "11.4", "11.5", "11.6", "11.7", "12.0", "12.1", "12.2", "12.3", "12.4", "12.5", "12.6", "12.7", - "13.0", "13.1", "13.2", "13.3", "13.4", "13.5", "13.6", - "14.0", "14.1", "14.2", "14.3", "14.4", "14.5", "14.6", - "15.0", "15.1"] - sdk_version: [null, "10.13", "10.14", "10.15", "11.0", "11.1", "11.3", "12.0", "12.1", - "12.3", "13.0", "13.1", "13.3", "14.0", "14.2", "14.4", "14.5", - "15.0", "15.1"] + "13.0", "13.1", "13.2", "13.3", "13.4", "13.5", "13.6", "13.7", + "14.0", "14.1", "14.2", "14.3", "14.4", "14.5", "14.6", "14.7", + "15.0", "15.1", "15.2", "15.3", "15.4", "15.5", "15.6", "15.7", + "26.0", "26.1", "26.2"] + sdk_version: [null, "10.13", "10.14", "10.15", "11.0", "11.1", "11.2", "11.3", "12.0", "12.1", + "12.3", "12.4", "13.0", "13.1", "13.3", "14.0", "14.2", "14.4", "14.5", + "15.0", "15.1", "15.2", "15.4", "15.5", + "26.0", "26.1", "26.2"] subsystem: null: catalyst: @@ -79,7 +98,7 @@ os: arch: [x86, x86_64, ppc32be, ppc32, ppc64le, ppc64, armv4, armv4i, armv5el, armv5hf, armv6, armv7, armv7hf, armv7s, armv7k, armv8, armv8_32, armv8.3, arm64ec, sparc, sparcv9, - mips, mips64, avr, s390, s390x, asm.js, wasm, sh4le, + mips, mips64, avr, s390, s390x, asm.js, wasm, wasm64, sh4le, e2k-v2, e2k-v3, e2k-v4, e2k-v5, e2k-v6, e2k-v7, riscv64, riscv32, xtensalx6, xtensalx106, xtensalx7, @@ -97,17 +116,18 @@ compiler: "8", "8.1", "8.2", "8.3", "8.4", "8.5", "9", "9.1", "9.2", "9.3", "9.4", "9.5", "10", "10.1", "10.2", "10.3", "10.4", "10.5", - "11", "11.1", "11.2", "11.3", "11.4", - "12", "12.1", "12.2", "12.3", "12.4", - "13", "13.1", "13.2", "13.3", - "14", "14.1", "14.2"] + "11", "11.1", "11.2", "11.3", "11.4", "11.5", + "12", "12.1", "12.2", "12.3", "12.4", "12.5", + "13", "13.1", "13.2", "13.3", "13.4", + "14", "14.1", "14.2", "14.3", + "15", "15.1", "15.2"] libcxx: [libstdc++, libstdc++11] - threads: [null, posix, win32] # Windows MinGW + threads: [null, posix, win32, mcf] # Windows MinGW exception: [null, dwarf2, sjlj, seh] # Windows MinGW - cppstd: [null, 98, gnu98, 11, gnu11, 14, gnu14, 17, gnu17, 20, gnu20, 23, gnu23] + cppstd: [null, 98, gnu98, 11, gnu11, 14, gnu14, 17, gnu17, 20, gnu20, 23, gnu23, 26, gnu26] cstd: [null, 99, gnu99, 11, gnu11, 17, gnu17, 23, gnu23] msvc: - version: [170, 180, 190, 191, 192, 193, 194] + version: [170, 180, 190, 191, 192, 193, 194, 195] update: [null, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9] runtime: [static, dynamic] runtime_type: [Debug, Release] @@ -117,22 +137,25 @@ compiler: clang: version: ["3.3", "3.4", "3.5", "3.6", "3.7", "3.8", "3.9", "4.0", "5.0", "6.0", "7.0", "7.1", - "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19"] + "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", + "18", "19", "20", "21"] libcxx: [null, libstdc++, libstdc++11, libc++, c++_shared, c++_static] - cppstd: [null, 98, gnu98, 11, gnu11, 14, gnu14, 17, gnu17, 20, gnu20, 23, gnu23] + cppstd: [null, 98, gnu98, 11, gnu11, 14, gnu14, 17, gnu17, 20, gnu20, 23, gnu23, 26, gnu26] runtime: [null, static, dynamic] runtime_type: [null, Debug, Release] - runtime_version: [null, v140, v141, v142, v143, v144] + runtime_version: [null, v140, v141, v142, v143, v144, v145] cstd: [null, 99, gnu99, 11, gnu11, 17, gnu17, 23, gnu23] apple-clang: version: ["5.0", "5.1", "6.0", "6.1", "7.0", "7.3", "8.0", "8.1", "9.0", "9.1", - "10.0", "11.0", "12.0", "13", "13.0", "13.1", "14", "14.0", "15", "15.0", "16", "16.0"] + "10.0", "11.0", "12.0", "13", "13.0", "13.1", "14", "14.0", "15", "15.0", + "16", "16.0", "17", "17.0"] libcxx: [libstdc++, libc++] - cppstd: [null, 98, gnu98, 11, gnu11, 14, gnu14, 17, gnu17, 20, gnu20, 23, gnu23] + cppstd: [null, 98, gnu98, 11, gnu11, 14, gnu14, 17, gnu17, 20, gnu20, 23, gnu23, 26, gnu26] cstd: [null, 99, gnu99, 11, gnu11, 17, gnu17, 23, gnu23] intel-cc: version: ["2021.1", "2021.2", "2021.3", "2021.4", "2022.1", "2022.2", - "2022.3", "2023.0", "2023.1", "2023.2", "2024.0",] + "2022.3", "2023.0", "2023.1", "2023.2", "2024.0", "2024.1", + "2025.0", "2025.1"] update: [null, ANY] mode: ["icx", "classic", "dpcpp"] libcxx: [null, libstdc++, libstdc++11, libc++] @@ -147,5 +170,13 @@ compiler: version: ["1.19", "1.20", "1.21", "1.22", "1.23", "1.24", "1.25"] libcxx: [libstdc++, libstdc++11] cppstd: [null, 98, gnu98, 11, gnu11, 14, gnu14, 17, gnu17, 20, gnu20, 23, gnu23] + emcc: + # From https://github.com/emscripten-core/emscripten/blob/main/ChangeLog.md + # There is no ABI compatibility guarantee between versions + version: [ANY] + libcxx: [null, libstdc++, libstdc++11, libc++] + threads: [null, posix, wasm_workers] + cppstd: [null, 98, gnu98, 11, gnu11, 14, gnu14, 17, gnu17, 20, gnu20, 23, gnu23, 26, gnu26] + cstd: [null, 99, gnu99, 11, gnu11, 17, gnu17, 23, gnu23] build_type: [null, Debug, Release, RelWithDebInfo, MinSizeRel] diff --git a/packages/conan/settings/version.txt b/packages/conan/settings/version.txt index 834f2629..cd74b3e8 100644 --- a/packages/conan/settings/version.txt +++ b/packages/conan/settings/version.txt @@ -1 +1 @@ -2.8.0 +2.26.2 \ No newline at end of file diff --git a/packages/vfx2/Dockerfile b/packages/vfx2/Dockerfile index 43347d83..bf50bb6a 100644 --- a/packages/vfx2/Dockerfile +++ b/packages/vfx2/Dockerfile @@ -36,21 +36,9 @@ ARG ASWF_ONETBB_VERSION ARG ASWF_TSL_ROBIN_MAP_VERSION ARG ASWF_YAML_CPP_VERSION -ARG ASWF_ALEMBIC_VERSION -ARG ASWF_C_BLOSC_VERSION -ARG ASWF_OCIO_VERSION -ARG ASWF_OIIO_VERSION -ARG ASWF_OPENEXR_VERSION -ARG ASWF_IMATH_VERSION -ARG ASWF_OPENSUBDIV_VERSION -ARG ASWF_OPENVDB_VERSION -ARG ASWF_OSL_VERSION ARG ASWF_OTIO_VERSION -ARG ASWF_PARTIO_VERSION -ARG ASWF_PTEX_VERSION ARG ASWF_PYSIDE_VERSION ARG ASWF_QT_VERSION -ARG ASWF_USD_VERSION #################### ci-base-builder #################### FROM ${ASWF_ORG}/ci-common:${CI_COMMON_VERSION}-clang${ASWF_CLANG_MAJOR_VERSION} AS ci-base-builder @@ -101,125 +89,6 @@ ENV DOWNLOADS_DIR=/tmp/downloads \ ASWF_INSTALL_PREFIX=/usr/local \ PYTHONPATH=${ASWF_INSTALL_PREFIX}/lib/python${ASWF_PYTHON_MAJOR_MINOR_VERSION}/site-packages:${PYTHONPATH} -#################### ci-usd-builder #################### -FROM ci-base-builder AS ci-usd-builder - -ARG ASWF_PKG_ORG -ARG ASWF_CONAN_CHANNEL -ARG CI_COMMON_VERSION -ARG ASWF_PYSIDE_CLANG_VERSION -ARG ASWF_USD_VERSION -ARG ASWF_NUMPY_VERSION -ARG ASWF_EXPAT_VERSION -ARG ASWF_FREETYPE_VERSION -ARG ASWF_GLEW_VERSION -ARG ASWF_GLFW_VERSION -ARG ASWF_MD4C_VERSION -ARG ASWF_PYBIND11_VERSION -ARG ASWF_LIBDEFLATE_VERSION -ARG ASWF_MATERIALX_VERSION -ARG ASWF_QT_VERSION -ARG ASWF_PYSIDE_VERSION -ARG ASWF_ALEMBIC_VERSION -ARG ASWF_IMATH_VERSION -ARG ASWF_OPENEXR_VERSION -ARG ASWF_OPENSUBDIV_VERSION -ARG ASWF_PARTIO_VERSION -ARG ASWF_PTEX_VERSION -ARG ASWF_OIIO_VERSION -ARG ASWF_OCIO_VERSION -ARG ASWF_OPENVDB_VERSION - -ENV CI_COMMON_VERSION=${CI_COMMON_VERSION} -ENV ASWF_PYSIDE_CLANG_VERSION=${ASWF_PYSIDE_CLANG_VERSION} -ENV ASWF_USD_VERSION=${ASWF_USD_VERSION} -ENV ASWF_NUMPY_VERSION=${ASWF_NUMPY_VERSION} -ENV ASWF_EXPAT_VERSION=${ASWF_EXPAT_VERSION} -ENV ASWF_FREETYPE_VERSION=${ASWF_FREETYPE_VERSION} -ENV ASWF_GLEW_VERSION=${ASWF_GLEW_VERSION} -ENV ASWF_GLFW_VERSION=${ASWF_GLFW_VERSION} -ENV ASWF_MD4C_VERSION=${ASWF_MD4C_VERSION} -ENV ASWF_PYBIND11_VERSION=${ASWF_PYBIND11_VERSION} -ENV ASWF_LIBDEFLATE_VERSION=${ASWF_LIBDEFLATE_VERSION} -ENV ASWF_MATERIALX_VERSION=${ASWF_MATERIALX_VERSION} -ENV ASWF_QT_VERSION=${ASWF_PYSIDE_VERSION} -ENV ASWF_PYSIDE_VERSION=${ASWF_PYSIDE_VERSION} -ENV ASWF_ALEMBIC_VERSION=${ASWF_ALEMBIC_VERSION} -ENV ASWF_IMATH_VERSION=${ASWF_IMATH_VERSION} -ENV ASWF_OPENEXR_VERSION=${ASWF_OPENEXR_VERSION} -ENV ASWF_OPENSUBDIV_VERSION=${ASWF_OPENSUBDIV_VERSION} -ENV ASWF_PARTIO_VERSION=${ASWF_PARTIO_VERSION} -ENV ASWF_PTEX_VERSION=${ASWF_PTEX_VERSION} -ENV ASWF_OIIO_VERSION=${ASWF_OIIO_VERSION} -ENV ASWF_OCIO_VERSION=${ASWF_OCIO_VERSION} -ENV ASWF_OPENVDB_VERSION=${ASWF_OPENVDB_VERSION} - -COPY ../scripts/vfx/build_usd.sh \ - /tmp/ - -COPY scripts/common/install_conanpackages.sh /tmp - -# Use conan to install dependencies -COPY < . -[requires] -alembic/${ASWF_ALEMBIC_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -expat/${ASWF_EXPAT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -glew/${ASWF_GLEW_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -libdeflate/${ASWF_LIBDEFLATE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -qt/${ASWF_QT_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -pyside/${ASWF_PYSIDE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -opensubdiv/${ASWF_OPENSUBDIV_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -partio/${ASWF_PARTIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -imath/${ASWF_IMATH_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -openexr/${ASWF_OPENEXR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -materialx/${ASWF_MATERIALX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -oiio/${ASWF_OIIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -ocio/${ASWF_OCIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -openvdb/${ASWF_OPENVDB_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL} -EOF - -RUN --mount=type=cache,target=/opt/conan_home/d \ - --mount=type=bind,rw,target=/opt/conan_home/.conan2,source=packages/conan/settings \ - /tmp/install_conanpackages.sh /usr/local vfx"${ASWF_VFXPLATFORM_VERSION}" usd - -RUN --mount=type=cache,target=/tmp/ccache \ - --mount=type=cache,sharing=private,target=/tmp/downloads \ - /tmp/before_build.sh && \ - /tmp/build_usd.sh && \ - /tmp/copy_new_files.sh && \ - ccache --show-stats - - -#################### ci-package-usd #################### -FROM scratch AS ci-package-usd - -ARG ASWF_ORG -ARG CI_COMMON_VERSION -ARG ASWF_DTS_VERSION -ARG ASWF_DTS_PREFIX -ARG ASWF_USD_VERSION -ARG ASWF_VFXPLATFORM_VERSION - -LABEL org.opencontainers.image.name="$ASWF_ORG/ci-package-usd" -LABEL org.opencontainers.image.title="USD package built for ASWF Docker images" -LABEL org.opencontainers.image.description="USD (Universal Scene Description) headers and binaries to be installed in ASWF Docker images" -LABEL org.opencontainers.image.authors="Built by aswf.io CI Working Group" -LABEL org.opencontainers.image.vendor="AcademySoftwareFoundation" -LABEL org.opencontainers.image.url="https://github.com/PixarAnimationStudios/USD" -LABEL org.opencontainers.image.source="https://github.com/AcademySoftwareFoundation/aswf-docker/blob/main/packages/Dockerfile" -LABEL org.opencontainers.image.version="${ASWF_USD_VERSION}" -LABEL org.opencontainers.image.licenses="Apache-2.0" -LABEL io.aswf.docker.versions.ci-common="${CI_COMMON_VERSION}" -LABEL io.aswf.docker.versions.vfx-platform="${ASWF_VFXPLATFORM_VERSION}" -LABEL io.aswf.docker.versions.dts="${ASWF_DTS_VERSION}" -LABEL io.aswf.docker.versions.usd="${ASWF_USD_VERSION}" - -COPY --from=ci-usd-builder /package/. / - - #################### ci-otio-builder #################### FROM ci-base-builder AS ci-otio-builder diff --git a/python/aswfdocker/data/versions.yaml b/python/aswfdocker/data/versions.yaml index 4d16db3d..cfa73d92 100644 --- a/python/aswfdocker/data/versions.yaml +++ b/python/aswfdocker/data/versions.yaml @@ -284,7 +284,7 @@ versions: ASWF_PYTHON_MAJOR_MINOR_VERSION: "2.7" ASWF_QT_VERSION: "5.12.6" ASWF_ONETBB_VERSION: "2018" - ASWF_USD_VERSION: "19.11" + ASWF_OPENUSD_VERSION: "19.11" ASWF_VFXPLATFORM_VERSION: "2019" ASWF_CXX_STANDARD: "14" "2019-clang6": @@ -343,7 +343,7 @@ versions: ASWF_PYTHON_MAJOR_MINOR_VERSION: "3.7" ASWF_QT_VERSION: "5.12.6" ASWF_ONETBB_VERSION: "2019_u6" - ASWF_USD_VERSION: "20.11" + ASWF_OPENUSD_VERSION: "20.11" ASWF_VFXPLATFORM_VERSION: "2020" ASWF_CXX_STANDARD: "17" "2020-clang7": @@ -385,7 +385,7 @@ versions: ASWF_PYTHON_MAJOR_MINOR_VERSION: "3.7" ASWF_QT_VERSION: "5.15.2" ASWF_ONETBB_VERSION: "2020_u2" - ASWF_USD_VERSION: "21.05" + ASWF_OPENUSD_VERSION: "21.05" ASWF_VFXPLATFORM_VERSION: "2021" ASWF_CXX_STANDARD: "17" "2021-clang10": @@ -432,7 +432,7 @@ versions: ASWF_PYTHON_MAJOR_MINOR_VERSION: "3.9" ASWF_QT_VERSION: "5.15.2" ASWF_ONETBB_VERSION: "2020.3" - ASWF_USD_VERSION: "22.11" + ASWF_OPENUSD_VERSION: "22.11" ASWF_VFXPLATFORM_VERSION: "2022" ASWF_CXX_STANDARD: "17" "2022-clang10": @@ -492,7 +492,7 @@ versions: ASWF_PYTHON_MAJOR_MINOR_VERSION: "3.10" ASWF_QT_VERSION: "5.15.9" ASWF_ONETBB_VERSION: "2020.3" - ASWF_USD_VERSION: "23.05" + ASWF_OPENUSD_VERSION: "23.05" ASWF_VFXPLATFORM_VERSION: "2023" ASWF_CXX_STANDARD: "17" "2023-clang14": @@ -600,7 +600,7 @@ versions: ASWF_SNAPPY_VERSION: "1.1.10" ASWF_SPDLOG_VERSION: "1.15.3" ASWF_TSL_ROBIN_MAP_VERSION: "1.3.0" - ASWF_USD_VERSION: "24.08" + ASWF_OPENUSD_VERSION: "24.08" ASWF_YAML_CPP_VERSION: "0.8.0" ASWF_ZLIB_VERSION: "1.3.1" ASWF_ZSTD_VERSION: "1.5.6" @@ -736,7 +736,7 @@ versions: ASWF_SNAPPY_VERSION: "1.1.10" ASWF_SPDLOG_VERSION: "1.15.3" ASWF_TSL_ROBIN_MAP_VERSION: "1.3.0" - ASWF_USD_VERSION: "25.05.01" + ASWF_OPENUSD_VERSION: "25.05.01" ASWF_YAML_CPP_VERSION: "0.8.0" ASWF_ZLIB_VERSION: "1.3.1" ASWF_ZSTD_VERSION: "1.5.6" @@ -873,7 +873,7 @@ versions: ASWF_SNAPPY_VERSION: "1.2.2" ASWF_SPDLOG_VERSION: "1.15.3" ASWF_TSL_ROBIN_MAP_VERSION: "1.4.0" - ASWF_USD_VERSION: "25.08" + ASWF_OPENUSD_VERSION: "26.03" ASWF_YAML_CPP_VERSION: "0.8.0" ASWF_ZLIB_VERSION: "1.3.1" ASWF_ZSTD_VERSION: "1.5.7" @@ -1128,19 +1128,19 @@ ci-packages: - "2024.6" - "2025.5" - "2026.3" - openvdb: - - "2019.2" + openusd: + - "2019.3" - "2020.2" - - "2021.3" + - "2021.5" - "2022.4" - "2023.2" - "2024.6" - "2025.5" - "2026.3" - usd: - - "2019.3" + openvdb: + - "2019.2" - "2020.2" - - "2021.5" + - "2021.3" - "2022.4" - "2023.2" - "2024.6" @@ -1823,11 +1823,11 @@ groups: vfx1-5: - osl - rawtoaces - vfx2-1: - materialx + vfx1-6: + - openusd vfx2: - otio - - usd review: - openrv image: @@ -1949,6 +1949,7 @@ conan_only: - openjph - openssl - opensubdiv + - openusd - openvdb - opus - osl diff --git a/python/aswfdocker/tests/test_builder.py b/python/aswfdocker/tests/test_builder.py index e9300156..962d7688 100644 --- a/python/aswfdocker/tests/test_builder.py +++ b/python/aswfdocker/tests/test_builder.py @@ -22,7 +22,7 @@ def setUp(self): repo_uri="notauri", source_branch="testing", aswf_version="2024.123" ) - def test_package_usd_2024_dict(self): + def test_package_otio_2024_dict(self): b = builder.Builder( self.build_info, groupinfo.GroupInfo( @@ -32,27 +32,27 @@ def test_package_usd_2024_dict(self): targets=[], ), ) - usd_version = list( + otio_version = list( filter( lambda package: package.startswith("2024"), - index.Index().iter_versions(constants.ImageType.PACKAGE, "usd"), + index.Index().iter_versions(constants.ImageType.PACKAGE, "otio"), ) )[0] baked = b.make_bake_dict(False, False) self.assertEqual( - baked["target"]["ci-package-usd-2024"]["tags"], + baked["target"]["ci-package-otio-2024"]["tags"], [ - f"{constants.DOCKER_REGISTRY}/aswflocaltesting/ci-package-usd:2024", - f"{constants.DOCKER_REGISTRY}/aswflocaltesting/ci-package-usd:{usd_version}", - f"{constants.DOCKER_REGISTRY}/aswflocaltesting/ci-package-usd:2024-24.08", + f"{constants.DOCKER_REGISTRY}/aswflocaltesting/ci-package-otio:2024", + f"{constants.DOCKER_REGISTRY}/aswflocaltesting/ci-package-otio:{otio_version}", + f"{constants.DOCKER_REGISTRY}/aswflocaltesting/ci-package-otio:2024-0.17.0", ], ) self.assertEqual( - baked["target"]["ci-package-usd-2024"]["args"]["ASWF_VERSION"], - usd_version, + baked["target"]["ci-package-otio-2024"]["args"]["ASWF_VERSION"], + otio_version, ) self.assertEqual( - baked["target"]["ci-package-usd-2024"]["dockerfile"], + baked["target"]["ci-package-otio-2024"]["dockerfile"], "packages/vfx2/Dockerfile", ) @@ -182,7 +182,7 @@ def test_image_base_2019clang_dict(self): "ASWF_PYTHON_MAJOR_MINOR_VERSION": "2.7", "ASWF_QT_VERSION": "5.12.6", "ASWF_SONAR_VERSION": "4.6.2.2472", - "ASWF_USD_VERSION": "19.11", + "ASWF_OPENUSD_VERSION": "19.11", "ASWF_VERSION": openvdb_version, "ASWF_VFXPLATFORM_VERSION": "2019", "CI_COMMON_VERSION": "1", @@ -276,7 +276,7 @@ def test_image_base_2019_2020_dict(self): "ASWF_PYTHON_MAJOR_MINOR_VERSION": "3.7", "ASWF_QT_VERSION": "5.12.6", "ASWF_SONAR_VERSION": "4.6.2.2472", - "ASWF_USD_VERSION": "20.11", + "ASWF_OPENUSD_VERSION": "20.11", "ASWF_VERSION": base_versions[1], "ASWF_VFXPLATFORM_VERSION": "2020", "CI_COMMON_VERSION": "1", @@ -346,7 +346,7 @@ def test_image_base_2019_2020_dict(self): "ASWF_PYTHON_MAJOR_MINOR_VERSION": "2.7", "ASWF_QT_VERSION": "5.12.6", "ASWF_SONAR_VERSION": "4.6.2.2472", - "ASWF_USD_VERSION": "19.11", + "ASWF_OPENUSD_VERSION": "19.11", "ASWF_VERSION": base_versions[0], "ASWF_VFXPLATFORM_VERSION": "2019", "CI_COMMON_VERSION": "1", @@ -391,7 +391,7 @@ def test_builder_cli(self): "--version", "2024", "--target", - "usd", + "otio", "--dry-run", ], ) @@ -468,7 +468,7 @@ def test_builderlist_cli(self): "--version", "2025", "--target", - "usd", + "otio", "--dry-run", ], ) diff --git a/python/aswfdocker/tests/test_migrater.py b/python/aswfdocker/tests/test_migrater.py index bdddb47b..e3f925ac 100644 --- a/python/aswfdocker/tests/test_migrater.py +++ b/python/aswfdocker/tests/test_migrater.py @@ -23,29 +23,29 @@ def test_migrate_nofilter(self): def test_migrate_pkgfilter(self): m = migrater.Migrater("src", "dst") - m.gather("usd", "") + m.gather("otio", "") self.assertEqual(len(m.migration_list), 8) def test_migrate_versionfilter(self): m = migrater.Migrater("src", "dst") - m.gather("usd", "2019") + m.gather("otio", "2019") current_version = list( - index.Index().iter_versions(constants.ImageType.PACKAGE, "usd") + index.Index().iter_versions(constants.ImageType.PACKAGE, "otio") )[0] self.assertEqual(len(m.migration_list), 1) minfo = m.migration_list[0] - self.assertEqual(minfo.image, "ci-package-usd") + self.assertEqual(minfo.image, "ci-package-otio") oexr_version = list( - index.Index().iter_versions(constants.ImageType.PACKAGE, "usd") + index.Index().iter_versions(constants.ImageType.PACKAGE, "otio") )[0] self.assertEqual(minfo.version, oexr_version) self.assertEqual( minfo.source, - f"{constants.DOCKER_REGISTRY}/src/ci-package-usd:{current_version}", + f"{constants.DOCKER_REGISTRY}/src/ci-package-otio:{current_version}", ) self.assertEqual( minfo.destination, - f"{constants.DOCKER_REGISTRY}/dst/ci-package-usd:{current_version}", + f"{constants.DOCKER_REGISTRY}/dst/ci-package-otio:{current_version}", ) m.migrate(dry_run=True) @@ -53,13 +53,13 @@ def test_migrate_versionfilter(self): self.assertEqual( m.cmds, [ - f"docker pull {reg}/src/ci-package-usd:{current_version}", - f"docker tag {reg}/src/ci-package-usd:{current_version} " - f"{reg}/dst/ci-package-usd:{current_version}", - f"docker push {reg}/dst/ci-package-usd:{current_version}", - f"docker tag {reg}/dst/ci-package-usd:{current_version} " - f"{reg}/dst/ci-package-usd:2019", - f"docker push {reg}/dst/ci-package-usd:2019", + f"docker pull {reg}/src/ci-package-otio:{current_version}", + f"docker tag {reg}/src/ci-package-otio:{current_version} " + f"{reg}/dst/ci-package-otio:{current_version}", + f"docker push {reg}/dst/ci-package-otio:{current_version}", + f"docker tag {reg}/dst/ci-package-otio:{current_version} " + f"{reg}/dst/ci-package-otio:2019", + f"docker push {reg}/dst/ci-package-otio:2019", ], ) @@ -83,7 +83,7 @@ def test_migrate_cli(self): "--to", "dst", "--package", - "usd", + "otio", "--version", "2019", "--dry-run", @@ -92,17 +92,17 @@ def test_migrate_cli(self): ) self.assertEqual(result.exit_code, 0) current_version = list( - index.Index().iter_versions(constants.ImageType.PACKAGE, "usd") + index.Index().iter_versions(constants.ImageType.PACKAGE, "otio") )[0] reg = constants.DOCKER_REGISTRY self.assertEqual( result.output, f"Are you sure you want to migrate the following 1 packages?\n" - f"{reg}/src/ci-package-usd:{current_version} -> " - f"{reg}/dst/ci-package-usd:{current_version}\n" + f"{reg}/src/ci-package-otio:{current_version} -> " + f"{reg}/dst/ci-package-otio:{current_version}\n" f" [y/N]: y\n" f"INFO:aswfdocker.migrater:Migrating " - f"{reg}/src/ci-package-usd:{current_version} -> " - f"{reg}/dst/ci-package-usd:{current_version}\n" + f"{reg}/src/ci-package-otio:{current_version} -> " + f"{reg}/dst/ci-package-otio:{current_version}\n" f"Migration done.\n", ) diff --git a/scripts/vfx/build_usd.sh b/scripts/vfx/build_usd.sh index fd1d4373..d1a40df7 100755 --- a/scripts/vfx/build_usd.sh +++ b/scripts/vfx/build_usd.sh @@ -6,78 +6,58 @@ set -ex pip3 install jinja2 PyOpenGL -if [[ ! -f "$DOWNLOADS_DIR/usd-${ASWF_USD_VERSION}.tar.gz" ]]; then +if [[ ! -f "$DOWNLOADS_DIR/usd-${ASWF_OPENUSD_VERSION}.tar.gz" ]]; then # For VFX Platform 2025, we need a somewhat newer release of USD than the latest 25.05a tag to # get MaterialX 1.39.3 compatibility. - if [[ $ASWF_USD_VERSION == 25.02a.eae7e67 ]]; then - curl --location "https://github.com/PixarAnimationStudios/OpenUSD/archive/eae7e678473eb78794a3a27287ff121af322d583.tar.gz" -o "$DOWNLOADS_DIR/usd-${ASWF_USD_VERSION}.tar.gz" + if [[ $ASWF_OPENUSD_VERSION == 25.02a.eae7e67 ]]; then + curl --location "https://github.com/PixarAnimationStudios/OpenUSD/archive/eae7e678473eb78794a3a27287ff121af322d583.tar.gz" -o "$DOWNLOADS_DIR/usd-${ASWF_OPENUSD_VERSION}.tar.gz" else - curl --location "https://github.com/PixarAnimationStudios/OpenUSD/archive/v${ASWF_USD_VERSION}.tar.gz" -o "$DOWNLOADS_DIR/usd-${ASWF_USD_VERSION}.tar.gz" + curl --location "https://github.com/PixarAnimationStudios/OpenUSD/archive/v${ASWF_OPENUSD_VERSION}.tar.gz" -o "$DOWNLOADS_DIR/usd-${ASWF_OPENUSD_VERSION}.tar.gz" fi fi -tar -zxf "$DOWNLOADS_DIR/usd-${ASWF_USD_VERSION}.tar.gz" -if [[ $ASWF_USD_VERSION == 25.02a.eae7e67 ]]; then -mv "OpenUSD-eae7e678473eb78794a3a27287ff121af322d583" "OpenUSD-${ASWF_USD_VERSION}" -fi -cd "OpenUSD-${ASWF_USD_VERSION}" +tar -zxf "$DOWNLOADS_DIR/usd-${ASWF_OPENUSD_VERSION}.tar.gz" +cd "OpenUSD-${ASWF_OPENUSD_VERSION}" -if [[ $ASWF_USD_VERSION == 23.05 && $ASWF_MATERIALX_VERSION == 1.38.7 ]]; then +if [[ $ASWF_OPENUSD_VERSION == 23.05 && $ASWF_MATERIALX_VERSION == 1.38.7 ]]; then # Apply patch from https://github.com/PixarAnimationStudios/USD/pull/2402 curl --location "https://patch-diff.githubusercontent.com/raw/PixarAnimationStudios/USD/pull/2402.diff" | patch -p1 fi -if [[ $ASWF_USD_VERSION == 24.08 && $ASWF_MATERIALX_VERSION == 1.39.1 ]]; then +if [[ $ASWF_OPENUSD_VERSION == 24.08 && $ASWF_MATERIALX_VERSION == 1.39.1 ]]; then # Apply patch from https://github.com/PixarAnimationStudios/USD/pull/3159 curl --location "https://patch-diff.githubusercontent.com/raw/PixarAnimationStudios/OpenUSD/pull/3159.diff" | patch -p1 fi -if [[ $ASWF_USD_VERSION == 19.* ]]; then - VT_SRC_FOLDER=base/lib/vt -else - VT_SRC_FOLDER=base/vt -fi - mkdir build cd build -if [[ $ASWF_CPYTHON_VERSION == 2.7* ]]; then - USD_EXTRA_ARGS= -else - USD_EXTRA_ARGS=-DPXR_USE_PYTHON_3=ON -fi - -# Our current PySide6 Conan build doesn't create -# the pyside6- prefixed # binaries. - -if [[ $ASWF_PYSIDE_VERSION == 6* ]]; then - USD_UIC_PATH=-DPYSIDEUICBINARY=/usr/local/bin/uic -else - USD_UIC_PPATH= -fi - cmake \ -DCMAKE_INSTALL_PREFIX="${ASWF_INSTALL_PREFIX}" \ - -DOPENEXR_LOCATION="${ASWF_INSTALL_PREFIX}" \ - -DCPPUNIT_LOCATION="${ASWF_INSTALL_PREFIX}" \ - -DBLOSC_LOCATION="${ASWF_INSTALL_PREFIX}" \ - -DTBB_LOCATION="${ASWF_INSTALL_PREFIX}" \ - -DILMBASE_LOCATION="${ASWF_INSTALL_PREFIX}" \ - -DGLEW_LOCATION="${ASWF_INSTALL_PREFIX}" \ - -DMATERIALX_LOCATION="${ASWF_INSTALL_PREFIX}" \ - -DMATERIALX_STDLIB_DIR="${ASWF_INSTALL_PREFIX}" \ + -DPXR_BUILD_ALEMBIC_PLUGIN=ON \ + -DPXR_ENABLE_HDF5_SUPPORT=ON \ + -DPXR_BUILD_GPU_SUPPORT=ON \ + -DPXR_ENABLE_GL_SUPPORT=ON \ + -DPXR_ENABLE_METAL_SUPPORT=OFF \ + -DPXR_ENABLE_VULKAN_SUPPORT=OFF \ + -DMATERIALX_STDLIB_DIR="${ASWF_INSTALL_PREFIX}/share/MaterialX" \ -DPXR_ENABLE_MATERIALX_SUPPORT=ON \ + -DPXR_BUILD_OPENCOLORIO_PLUGIN=ON \ + -DPXR_BUILD_OPENIMAGEIO_PLUGIN=ON \ + -DPXR_ENABLE_OPENVDB_SUPPORT=ON \ + -DPXR_ENABLE_OSL_SUPPORT=ON \ + -DPXR_ENABLE_PTEX_SUPPORT=ON \ + -DPXR_ENABLE_PYTHON_SUPPORT=ON \ -DPXR_BUILD_TESTS=OFF \ -DUSD_ROOT_DIR="${ASWF_INSTALL_PREFIX}" \ - -DPXR_BUILD_ALEMBIC_PLUGIN=ON \ -DPXR_BUILD_MAYA_PLUGIN=FALSE \ - ${USD_UIC_PATH} \ + -DPXR_BUILD_USDVIEW=ON \ + -DPYSIDEUICBINARY="${ASWF_INSTALL_PREFIX}/bin/uic" \ ${USD_EXTRA_ARGS} \ .. - -make -j$(nproc) -make install +cmake --build . -j$(nproc) +cmake --install . cd ../.. -rm -rf "USD-${ASWF_USD_VERSION}" +rm -rf "OpenUSD-${ASWF_OPENUSD_VERSION}"