Skip to content

Commit d0c5f90

Browse files
Merge branch 'main' into python_image_loader_fix
2 parents c42e161 + 42ce4e9 commit d0c5f90

16 files changed

Lines changed: 1779 additions & 840 deletions

File tree

.github/workflows/main.yml

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ jobs:
115115
cmake_config: -G "Visual Studio 17 2022" -A "x64"
116116
test_shaders: ON
117117
extended_build_oiio: ON
118+
extended_build_mdl_sdk: ON
118119

119120
- name: Windows_VS2022_x64_SharedLibs
120121
os: windows-2025
@@ -167,6 +168,12 @@ jobs:
167168
C:/vcpkg/vcpkg install openimageio --triplet=x64-windows
168169
Add-Content $env:GITHUB_PATH "C:/vcpkg/installed/x64-windows/bin"
169170
171+
- name: Install MDL SDK
172+
if: env.IS_EXTENDED_BUILD == 'true' && matrix.extended_build_mdl_sdk == 'ON' && runner.os == 'Windows'
173+
run: |
174+
C:/vcpkg/vcpkg install mdl-sdk --triplet=x64-windows
175+
Add-Content $env:GITHUB_PATH "C:/vcpkg/installed/x64-windows/bin"
176+
170177
- name: Install Python ${{ matrix.python }}
171178
if: matrix.python != 'None'
172179
uses: actions/setup-python@v5
@@ -185,8 +192,16 @@ jobs:
185192
- name: CMake Generate
186193
shell: bash
187194
run: |
188-
if [ "${{ env.IS_EXTENDED_BUILD }}" == "true" ] && [ "${{ matrix.extended_build_oiio }}" == "ON" ]; then
189-
EXTENDED_BUILD_CONFIG="-DMATERIALX_BUILD_OIIO=ON -DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows"
195+
if [ "${{ env.IS_EXTENDED_BUILD }}" == "true" ]; then
196+
if [ "${{ runner.os }}" == "Windows" ]; then
197+
EXTENDED_BUILD_CONFIG="-DCMAKE_TOOLCHAIN_FILE=C:/vcpkg/scripts/buildsystems/vcpkg.cmake -DVCPKG_TARGET_TRIPLET=x64-windows"
198+
fi
199+
if [ "${{ matrix.extended_build_oiio }}" == "ON" ]; then
200+
EXTENDED_BUILD_CONFIG="$EXTENDED_BUILD_CONFIG -DMATERIALX_BUILD_OIIO=ON"
201+
fi
202+
if [ "${{ matrix.extended_build_mdl_sdk }}" == "ON" -a "${{ runner.os }}" == "Windows" ]; then
203+
EXTENDED_BUILD_CONFIG="$EXTENDED_BUILD_CONFIG -DMATERIALX_MDL_SDK_DIR=C:/vcpkg/installed/x64-windows"
204+
fi
190205
fi
191206
cmake -S . -B build -DMATERIALX_BUILD_PYTHON=ON -DMATERIALX_BUILD_VIEWER=ON -DMATERIALX_BUILD_GRAPH_EDITOR=ON -DMATERIALX_BUILD_TESTS=ON -DMATERIALX_TEST_RENDER=OFF -DMATERIALX_WARNINGS_AS_ERRORS=ON $EXTENDED_BUILD_CONFIG ${{matrix.cmake_config}}
192207

CMakeLists.txt

Lines changed: 11 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
1414
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/lib)
1515
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/bin)
1616

17-
# JavaScript setup
17+
# JavaScript setup
1818
option(MATERIALX_BUILD_JS "Build the MaterialX JavaScript package from C++ bindings. Requires the emscripten environment." OFF)
1919
set(MATERIALX_EMSDK_PATH "" CACHE PATH "Path to EMSDK (e.g. 'D:/Projects/emsdk').")
2020
if (MATERIALX_BUILD_JS)
@@ -147,13 +147,8 @@ if (MATERIALX_BUILD_OSOS)
147147
endif()
148148

149149
# Helpers for MDL validation
150-
if (MATERIALX_BUILD_GEN_MDL)
151-
set(MATERIALX_MDLC_EXECUTABLE "" CACHE FILEPATH "Full path to the mdlc binary.")
152-
set(MATERIALX_MDL_RENDER_EXECUTABLE "" CACHE FILEPATH "Full path to the mdl renderer binary.")
153-
set(MATERIALX_MDL_RENDER_ARGUMENTS "" CACHE STRING "Custom arguments for renderer.")
154-
set(MATERIALX_MDL_MODULE_PATHS "" CACHE FILEPATH "Comma separated list of MDL module paths.")
155-
set(MATERIALX_INSTALL_MDL_MODULE_PATH ${MATERIALX_INSTALL_STDLIB_PATH} CACHE FILEPATH "Install path for mdl module.")
156-
endif()
150+
set(MATERIALX_MDL_SDK_DIR "" CACHE PATH "Path to the MDL SDK directory that contains 'include', 'lib', etc.")
151+
set(MATERIALX_MDL_MODULE_PATHS "" CACHE FILEPATH "Comma separated list of MDL module paths.")
157152

158153
# Namespace
159154
set(MATERIALX_NAMESPACE_SUFFIX "" CACHE STRING "Add a suffix to the main MaterialX C++ namespace: Options include dev, staging, <YOURFACILITY> etc.")
@@ -207,13 +202,9 @@ mark_as_advanced(MATERIALX_BUILD_JS)
207202
mark_as_advanced(MATERIALX_EMSDK_PATH)
208203
mark_as_advanced(MATERIALX_BUILD_IOS)
209204
mark_as_advanced(MATERIALX_BUILD_APPLE_FRAMEWORK)
210-
if (MATERIALX_BUILD_GEN_MDL)
211-
mark_as_advanced(MATERIALX_MDLC_EXECUTABLE)
212-
mark_as_advanced(MATERIALX_MDL_RENDER_EXECUTABLE)
213-
mark_as_advanced(MATERIALX_MDL_RENDER_ARGUMENTS)
214-
mark_as_advanced(MATERIALX_MDL_MODULE_PATHS)
215-
mark_as_advanced(MATERIALX_INSTALL_MDL_MODULE_PATH)
216-
endif()
205+
mark_as_advanced(MATERIALX_MDL_BINARY_MDLC)
206+
mark_as_advanced(MATERIALX_MDL_MODULE_PATHS)
207+
mark_as_advanced(MATERIALX_MDL_SDK_DIR)
217208

218209
if (MATERIALX_BUILD_USE_CCACHE)
219210
# Setup CCache for C/C++ compilation
@@ -251,12 +242,11 @@ if (MATERIALX_BUILD_BENCHMARK_TESTS)
251242
add_definitions(-DMATERIALX_BUILD_BENCHMARK_TESTS)
252243
endif()
253244

254-
if (MATERIALX_BUILD_GEN_MDL)
255-
add_definitions(-DMATERIALX_MDLC_EXECUTABLE=\"${MATERIALX_MDLC_EXECUTABLE}\")
256-
add_definitions(-DMATERIALX_MDL_RENDER_EXECUTABLE=\"${MATERIALX_MDL_RENDER_EXECUTABLE}\")
257-
add_definitions(-DMATERIALX_MDL_RENDER_ARGUMENTS=\"${MATERIALX_MDL_RENDER_ARGUMENTS}\")
258-
add_definitions(-DMATERIALX_MDL_MODULE_PATHS=\"${MATERIALX_MDL_MODULE_PATHS}\")
259-
add_definitions(-DMATERIALX_INSTALL_MDL_MODULE_PATH=\"${MATERIALX_INSTALL_MDL_MODULE_PATH}\")
245+
# GEN MDL does not have any additional dependencies. For loading and compiling MDL, e.g., in the test renderer, the MDL SDK is needed.
246+
if(MATERIALX_MDL_SDK_DIR)
247+
find_package(mdl QUIET CONFIG REQUIRED PATHS ${MATERIALX_MDL_SDK_DIR})
248+
get_target_property(MATERIALX_MDL_BINARY_MDLC mdl::mdlc LOCATION)
249+
set(MATERIALX_MDL_BINARY_MDLC ${MATERIALX_MDL_BINARY_MDLC} CACHE FILEPATH "Full path to the mdlc binary." FORCE)
260250
endif()
261251

262252
# Adjust the default installation path

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ MaterialX is an open standard for representing rich material and look-developmen
1717
- Point CMake to the root of the MaterialX library and generate C++ projects for your platform and compiler.
1818
- Select the `MATERIALX_BUILD_PYTHON` option to build Python bindings.
1919
- Select the `MATERIALX_BUILD_VIEWER` option to build the [MaterialX Viewer](https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/documents/DeveloperGuide/Viewer.md).
20-
- Select the `MATERIALX_BUILD_GRAPH_EDITOR` option to build the [MaterialX Graph Editor](https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/documents/DeveloperGuide/GraphEditor.md).
20+
- Select the `MATERIALX_BUILD_GRAPH_EDITOR` option to build the [MaterialX Graph Editor](https://github.com/AcademySoftwareFoundation/MaterialX/blob/main/documents/DeveloperGuide/GraphEditor.md).
2121

2222
## Supported Platforms
2323

0 commit comments

Comments
 (0)