Skip to content

Ispc from source - #449

Draft
jfpanisset wants to merge 3 commits into
AcademySoftwareFoundation:mainfrom
jfpanisset:ispc-from-source
Draft

Ispc from source#449
jfpanisset wants to merge 3 commits into
AcademySoftwareFoundation:mainfrom
jfpanisset:ispc-from-source

Conversation

@jfpanisset

Copy link
Copy Markdown
Contributor

No description provided.

@jfpanisset
jfpanisset requested a review from aloysbaillet as a code owner July 13, 2026 01:50
@jfpanisset

Copy link
Copy Markdown
Contributor Author

@jlanz If you have a chance to take a look, this now builds ispc and openimagedenoise from source.

@jfpanisset

Copy link
Copy Markdown
Contributor Author

This may require some more work to make sure we aren't trying to install a different clang version on top of the one already in the default ci-common image.

@jfpanisset
jfpanisset marked this pull request as draft August 3, 2026 19:45
@jlanz

jlanz commented Aug 4, 2026

Copy link
Copy Markdown
Contributor
diff --git a/README.md b/README.md
index 969687d..a7e26f6 100644
--- a/README.md
+++ b/README.md
@@ -198,7 +198,7 @@ To build a single Conan package, e.g. OpenUSD:
 # First list the available CI packages to know which package belong to which "group":
 aswfdocker packages
 # Then run the build
-aswfdocker --verbose build --ci-image-type PACKAGE --group vfx-6 --version 2026 --use-coman --target openusd
+aswfdocker --verbose build --ci-image-type PACKAGE --group vfx-6 --version 2026 --use-conan --target openusd
 # Or the simpler but less flexible syntax:
 aswfdocker build --full-name aswftesting/ci-package-usd:2026
 
diff --git a/packages/conan/recipes/log4cplus/conanfile.py b/packages/conan/recipes/log4cplus/conanfile.py
index dff3578..2655755 100644
--- a/packages/conan/recipes/log4cplus/conanfile.py
+++ b/packages/conan/recipes/log4cplus/conanfile.py
@@ -43,7 +43,10 @@ class Log4cplusConan(ConanFile):
         "working_locale": False,
         "working_c_locale": False,
         "decorated_name": False,
-        "unicode": True,
+        # ASWF: default to the narrow-char (std::string) API. unicode=True builds
+        # log4cplus against wchar_t/std::wstring, which downstream consumers using
+        # the narrow-char API (e.g. MoonRay) cannot link against.
+        "unicode": False,
         "thread_pool": True,
     }
     short_paths = True
diff --git a/packages/conan/recipes/moonray/conanfile.py b/packages/conan/recipes/moonray/conanfile.py
index 9c94e43..d574553 100644
--- a/packages/conan/recipes/moonray/conanfile.py
+++ b/packages/conan/recipes/moonray/conanfile.py
@@ -44,6 +44,8 @@ class MoonrayConan(ConanFile):
         self.requires("zlib/[>=1.2.11 <2]")
         self.requires("openssl/system")
         self.requires("opengl/system")
+        self.requires("cppunit/1.15.1")
+        self.requires("c-blosc/1.21.6")

         # ---- MoonRay-specific dependencies ----
         self.requires("embree/4.2.0")         # SIMD ray traversal
diff --git a/packages/conan/recipes/openusd/conanfile.py b/packages/conan/recipes/openusd/conanfile.py
index 5d404b3..6375c46 100644
--- a/packages/conan/recipes/openusd/conanfile.py
+++ b/packages/conan/recipes/openusd/conanfile.py
@@ -186,16 +186,20 @@ class OpenUSDConan(ConanFile):
         tc.variables["PXR_ENABLE_PYTHON_SUPPORT"] = self.options.with_python         # ASWF: build Python support
         tc.variables["PXR_PYTHON_SHEBANG"] = "/usr/bin/env python3"                  # ASWF: don't bake Conan paths into Python scripts

-        tc.variables["OPENSUBDIV_LIBRARIES"] = "OpenSubdiv::osdcpu;OpenSubdiv::osdgpu"
+        # ASWF: OpenSubdiv's actual exported cmake targets are camelCase
+        # (OpenSubdiv::osdCPU / OpenSubdiv::osdGPU, see OpenSubdivTargets.cmake) —
+        # using the lowercase names here bakes non-existent target names into the
+        # deployed pxrTargets.cmake, breaking any consumer that links against usd_hdSt.
+        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["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.set_property("opensubdiv::osdcpu", "cmake_target_name", "OpenSubdiv::osdCPU")
+        tc.set_property("opensubdiv::osdcpu", "cmake_target_aliases", ["OpenSubdiv::osdCPU_static"])

         tc.generate()

diff --git a/scripts/common/install_conanpackages.sh b/scripts/common/install_conanpackages.sh
index dbdf038..c4683cd 100755
--- a/scripts/common/install_conanpackages.sh
+++ b/scripts/common/install_conanpackages.sh
@@ -50,9 +50,11 @@ else
     # The full_deploy generator copies over generated package files which may contain absolute paths pointing inside the Conan cache
     # in the format:
     # /opt/conan_home/d/b/cpyth64b7fc4516f80/p/...
-    # /opt/conan_home/d/cpyth/64b7fc4516f80/p/...
-    # Replace those by our installation prefix.
-    find $1/full_deploy -name '*.cmake' -exec sed -i -E 's#/opt/conan_home/d/b/[^/]+/p#'"$ESCAPED_PATH"'#g' {} \;
+    # /opt/conan_home/d/cpyth64b7fc4516f80/p/...
+    # Replace those by our installation prefix. The "b/" path component is optional
+    # (present for packages built locally, absent for packages pulled from a binary
+    # cache), so match both forms.
+    find $1/full_deploy -name '*.cmake' -exec sed -i -E 's#/opt/conan_home/d(/b)?/[^/]+/p#'"$ESCAPED_PATH"'#g' {} \;

     for INSTALLED_PACKAGE in $(find $1/full_deploy/host -mindepth 1 -maxdepth 1 -printf "%f\n"); do
         # Don't relocate the excluded package

@jfpanisset

Copy link
Copy Markdown
Contributor Author

Thank you for these, I should be able to incorporate them in the reworked PR. scripts/common/install_conanpackages.sh will be gone by then, replaced by a "real" Conan Python deployer, but that retains the abilty to post process files after installation, so I'll be able to tweak the Conan path fixes to match yours.

- All releases
  - [ispc built from source instead of binary downloads](AcademySoftwareFoundation#426)
    - tight coupling with LLVM means more versions are required to line up with our supported LLVM versions
    - 2023 : 1.21.0 / LLVM 15
    - 2024 : 1.24.0 / LLVM 17
    - 2025 : 1.26.0 / LLVM 18
    - 2026 : 1.31.0 / LLVM 20
    - 2027 : 1.31.0 / LLVM 22
  - [openimagedenoise build frmo source instead of binary downloads](AcademySoftwareFoundation#428)
    - disable compute_100 and compute_120 (aka Blackwell) CUDA support in 2.3.3 since in 2023/2024/2025 we have CUDA Toolkit 12.6.3 which is too old
    - 2023 : 2.3.3
    - 2024 : 2.3.3
    - 2025 : 2.5.0
    - 2026 : 2.5.0
    - 2027 : 2.5.0

Assisted-By: Claude Sonnet 5
Signed-off-by: Jean-Francois Panisset <panisset@gmail.com>
All recipes in packages/conan/recipes are MIT licensed for compatiblity with
Conan Center Index.

Signed-off-by: Jean-Francois Panisset <panisset@gmail.com>
Assisted-By: Claude Sonnet 5
Signed-off-by: Jean-Francois Panisset <panisset@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants