Autodesk / Autodesk/arnold-usd

Compiling against houdini 20.5 libraries doesn't work

Open
#2,355 8 comments 0 reactions 0 assignees View on GitHub
bug
Dominant language
Python
Stars
284
Forks
68
Avg merge
2d 19h
Merged PRs (30d)
14

Description

On windows, I'm trying to compile arnold-usd against Houdini 20.5.487 using scons (There's a similar error in cmake, but I didn't dig into that)
Houdini uses python 3.11, and its boost python lib is named `hboost_python311-mt-x64.lib`
There is no existing mechanism to tell the build system to look for `hboost_python311-mt-x64.lib` instead of `hboost_python-mt-x64.lib`, so I get linker errors.

I had to make that symlink in the houdini `custom/houdini/dsolib` folder. Your build system should either handle that, or the instructions should tell me that it is a requirement.

Side note: You should REALLY update the build instructions. You're still referencing python27

**To Reproduce**
Steps to reproduce the behavior:
Here's my custom.py. We install to some non-standard places, so please make sure to update ARNOLD_PATH, _houbase, and PREFIX.
```
from pathlib import Path

ARNOLD_PATH = r"C:\Arnold\standalone\7.3.3.0"

_houbase = Path(r"C:\Program Files\Side Effects Software\Houdini 20.5.487")

pydotver = '3.11'
pyver = pydotver.replace('.', '')
pymajor = pydotver.split('.')[0]

USD_PATH = str(_houbase / "bin")
USD_BIN = str(_houbase / "bin")
USD_INCLUDE = str(_houbase / "toolkit" / "include" ) # automatically appends "pxr"
USD_LIB = str(_houbase / "custom" / "houdini" / "dsolib")
USD_BUILD_MODE = "shared_libs"
USD_LIB_PREFIX = "libpxr_"

BOOST_INCLUDE = str(_houbase / "toolkit" / "include" / "hboost")
BOOST_LIB = str(_houbase / "custom" / "houdini" / "dsolib")
BOOST_LIB_NAME = "hboost_%s-mt-x64"
BOOST_ALL_NO_LIB = True

PYTHON_INCLUDE = str(_houbase / "toolkit" / "include" / f"python{pydotver}")
PYTHON_LIB = str(_houbase / f"python{pyver}" / "libs")
PYTHON_LIB_NAME = f"python{pyver}"

BUILD_SCHEMAS = False
BUILD_RENDER_DELEGATE = True
BUILD_PROCEDURAL = True
BUILD_TESTSUITE = False
BUILD_DOCS = False

PREFIX = r"C:\temp\arnold-usd\prefix"
```

**Expected behavior**
I'm able to compile while following the instructions in your readmes

**Used Software Versions**
- Arnold: [7.3.3.0]
- USD: Whatever comes with Houdini 20.5.487
- Compiler: Visual Studio 2022
- OS: Windows 10

Contributor guide

Open the contributing guide

Research direction

Start with custom.py and the build instructions referenced in the issue, then trace how BOOST_LIB_NAME and the Python version are handled by the SCons and CMake builds. Reproduce the Windows Houdini 20.5.487 configuration and verify that compilation succeeds without a manually created symlink; update the instructions if Python 2.7 references remain.

Written by the indexing model from the issue text.

Assessment

Tech stack
cmake, python
Domain
build-system, documentation
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.