hdBlackbird icon indicating copy to clipboard operation
hdBlackbird copied to clipboard

Building on windows

Open d98mapet opened this issue 3 years ago • 3 comments

Hi,

I assume that I'm doing something very wrong when trying to build this, would appreciate some pointers :-)

I have downloaded and built usd & cycles using their respective build scripts. They both seem to work fine standalone. But when I try to run the cmake command line listed in the readme, it fails to find cycles with:

**Could not find a package configuration file provided by "Cycles" with any of the following names:

CyclesConfig.cmake
cycles-config.cmake**

These files doesn't seem to exist at all in the cycles repo?

I set my USD_ROOT to and CYCLES_ROOT to <folder where to where I synced the cycles git repo> (thus my working built version of cycles is in subfolder /build

This seems to match what the readme is telling me, but I'm sure I messed something up.

Cheers, Magnus

d98mapet avatar May 10 '21 18:05 d98mapet

Hi @d98mapet. Have you built Tangent's Cycles https://github.com/tangent-opensource/cycles ? If you have, then Cycles cmake script will export cmake targets and configuration to a directory you passed through CMAKE_INSTALL_PREFIX. Next step would be to let know cmake where that configuration is by adding it to CMAKE_PREFIX_PATH. Let me know if you need more hints.

btw. Readmes are old and need to be updated...

bareya avatar May 10 '21 18:05 bareya

aha, no I built cycles from the original blender/standalone repo. I will try to build using the repo above tomorrow. Another question: One the usd side, it fails to find the usdSchemaGentrator.py (~ish, on a another computer so can't look it up atm). This file exists within the usd repo, but not present in the install that pixars script builds. But I guess I should point to the install as USD_ROOT and not the original repo?

Thanks for the fast reply, can't wait to try it out!

d98mapet avatar May 10 '21 19:05 d98mapet

HdBlackbird uses usdGenSchema to create UsdCycles schema cpp files on the fly. usdGenSchema is usually installed with USD and that script should be present in the bin of USD installation directory. Here you can have a look that that the script uses PATH environment variable to find usdGenSchema, if that fails it will fallback to search usdGenSchema.py. For us, this approach has been working so far on both platforms - Windows and Linux. I suspect you have to add usd_install/bin path to your environment variables. That would make the script available for cmake generator. If you find better approach to that please feel free to submit a PR. I would be happy to review it.

Speaking of USD_ROOT, unfortunately documentation is obsolete. We started to move away from using of environment variables and right now we rely on CMAKE_PREFIX_PATH to discover the modules that are needed for the compilation. Instead of using PATH environment variables to find usdGenSchema maybe we could use variables exported by usd cmake config:

# - Configuration file for the pxr project
# Defines the following variables:
# PXR_INCLUDE_DIRS  - Root include directory for the installed project.
# PXR_LIBRARIES     - List of all libraries, by target name.
# PXR_foo_LIBRARY   - Absolute path to individual libraries.
# The preprocessor definition PXR_STATIC will be defined if appropriate

I REALLY need to find the time to update the documentation.

bareya avatar May 10 '21 22:05 bareya