Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 16 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@ option(MATERIALX_BUILD_DOCS "Create HTML documentation using Doxygen. Requires t

option(MATERIALX_BUILD_GEN_GLSL "Build the GLSL shader generator back-end." ON)
option(MATERIALX_BUILD_GEN_OSL "Build the OSL shader generator back-end." ON)
option(MATERIALX_BUILD_GEN_OSL_NODES "Build the OSL nodes shader generator back-end." ON)
option(MATERIALX_BUILD_GEN_MDL "Build the MDL shader generator back-end." ON)
option(MATERIALX_BUILD_GEN_MSL "Build the MSL shader generator back-end." ON)
option(MATERIALX_BUILD_RENDER "Build the MaterialX Render modules." ON)
Expand Down Expand Up @@ -84,6 +85,7 @@ if (CMAKE_SYSTEM_NAME MATCHES "iOS" OR CMAKE_SYSTEM_NAME MATCHES "tvOS" OR CMAKE
set(MATERIALX_BUILD_GRAPH_EDITOR OFF)
set(MATERIALX_BUILD_GEN_GLSL OFF)
set(MATERIALX_BUILD_GEN_OSL OFF)
set(MATERIALX_BUILD_GEN_OSL_NODES OFF)
set(MATERIALX_BUILD_GEN_MDL OFF)
set(MATERIALX_BUILD_TESTS OFF)
endif()
Expand All @@ -103,6 +105,7 @@ if (MATERIALX_BUILD_APPLE_FRAMEWORK)
endif()

if (MATERIALX_BUILD_JS)
set(MATERIALX_BUILD_GEN_OSL_NODES OFF)
set(MATERIALX_BUILD_RENDER OFF)
set(MATERIALX_BUILD_TESTS OFF)
endif()
Expand Down Expand Up @@ -136,6 +139,12 @@ if(SKBUILD)
set(MATERIALX_PYTHON_FOLDER_NAME "MaterialX")
endif()

if (MATERIALX_BUILD_GEN_OSL_NODES)
set(MATERIALX_BUILD_GEN_OSL ON)
set(MATERIALX_BUILD_RENDER ON)
set(MATERIALX_BUILD_RENDER_PLATFORMS ON)
endif()

# Helpers for MDL validation
if (MATERIALX_BUILD_GEN_MDL)
set(MATERIALX_MDLC_EXECUTABLE "" CACHE FILEPATH "Full path to the mdlc binary.")
Expand All @@ -162,6 +171,7 @@ set(MATERIALX_LIBNAME_SUFFIX "" CACHE STRING "Specify a suffix to all libraries
mark_as_advanced(MATERIALX_BUILD_DOCS)
mark_as_advanced(MATERIALX_BUILD_GEN_GLSL)
mark_as_advanced(MATERIALX_BUILD_GEN_OSL)
mark_as_advanced(MATERIALX_BUILD_GEN_OSL_NODES)
mark_as_advanced(MATERIALX_BUILD_GEN_MDL)
mark_as_advanced(MATERIALX_BUILD_GEN_MSL)
mark_as_advanced(MATERIALX_BUILD_RENDER)
Expand Down Expand Up @@ -215,7 +225,7 @@ endif()

# Allow the OSL CMake package to provide binary locations for render tests.
# This will not override explicitly provided oslc, testrender, and include paths.
if(MATERIALX_BUILD_RENDER AND MATERIALX_BUILD_GEN_OSL AND MATERIALX_BUILD_TESTS)
if((MATERIALX_BUILD_RENDER AND MATERIALX_BUILD_GEN_OSL AND MATERIALX_BUILD_TESTS) OR MATERIALX_BUILD_GEN_OSL_NODES)
find_package(OSL QUIET)
if(OSL_FOUND)
if(NOT MATERIALX_OSL_BINARY_OSLC)
Expand Down Expand Up @@ -449,7 +459,7 @@ add_subdirectory(source/MaterialXFormat)

# Add shader generation subdirectories
add_subdirectory(source/MaterialXGenShader)
if(MATERIALX_BUILD_GEN_GLSL OR MATERIALX_BUILD_GEN_OSL OR MATERIALX_BUILD_GEN_MDL OR MATERIALX_BUILD_GEN_MSL)
if(MATERIALX_BUILD_GEN_GLSL OR MATERIALX_BUILD_GEN_OSL OR MATERIALX_BUILD_GEN_OSL_NODES OR MATERIALX_BUILD_GEN_MDL OR MATERIALX_BUILD_GEN_MSL)
if (MATERIALX_BUILD_GEN_GLSL)
add_definitions(-DMATERIALX_BUILD_GEN_GLSL)
add_subdirectory(source/MaterialXGenGlsl)
Expand All @@ -458,6 +468,10 @@ if(MATERIALX_BUILD_GEN_GLSL OR MATERIALX_BUILD_GEN_OSL OR MATERIALX_BUILD_GEN_MD
add_definitions(-DMATERIALX_BUILD_GEN_OSL)
add_subdirectory(source/MaterialXGenOsl)
endif()
if (MATERIALX_BUILD_GEN_OSL_NODES)
add_definitions(-DMATERIALX_BUILD_GEN_OSL_NODES)
add_subdirectory(source/MaterialXGenOslNodes)
endif()
if (MATERIALX_BUILD_GEN_MDL)
add_definitions(-DMATERIALX_BUILD_GEN_MDL)
add_subdirectory(source/MaterialXGenMdl)
Expand Down
28 changes: 28 additions & 0 deletions source/MaterialXGenOslNodes/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
file(GLOB GenNodes_SRC "${CMAKE_CURRENT_SOURCE_DIR}/LibsToOso.cpp")

set(MATERIALX_LIBRARIES
MaterialXCore
MaterialXFormat
MaterialXGenShader
MaterialXGenOsl
MaterialXRenderOsl)

add_executable(MaterialXGenOslNodes_LibsToOso ${GenNodes_SRC})

target_link_libraries(
MaterialXGenOslNodes_LibsToOso
${MATERIALX_LIBRARIES})

set_target_properties(
MaterialXGenOslNodes_LibsToOso PROPERTIES
INSTALL_RPATH "${MATERIALX_UP_ONE_RPATH}")

# TODO: We likely want to install that file elsewhere and not under `bin`,
# if at all, as we maybe want to keep this executable available at build time only.
install(TARGETS MaterialXGenOslNodes_LibsToOso
EXPORT MaterialX
RUNTIME DESTINATION ${MATERIALX_INSTALL_BIN_PATH})
if(MSVC)
install(FILES $<TARGET_PDB_FILE:MaterialXGenOslNodes_LibsToOso>
DESTINATION ${MATERIALX_INSTALL_BIN_PATH} OPTIONAL)
endif()
Loading