54 lines
1.9 KiB
CMake
54 lines
1.9 KiB
CMake
if(MATERIALX_BUILD_DATA_LIBRARY)
|
|
# Build generated products from the MaterialX data library.
|
|
# Initially, this step is a simple copy across folders, but our intent
|
|
# is for it to include meaningful work in the future.
|
|
|
|
set(DATA_LIBRARY_BUILD_DIR ${CMAKE_CURRENT_BINARY_DIR}/DataLibraryBuild)
|
|
|
|
file(GLOB_RECURSE MATERIALX_DATA_LIBRARY_SOURCE_FILES
|
|
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
|
|
LIST_DIRECTORIES false
|
|
*.mtlx
|
|
*.md
|
|
*.glsl
|
|
*.osl
|
|
*.h
|
|
*.metal)
|
|
|
|
foreach(SOURCE_FILE IN LISTS MATERIALX_DATA_LIBRARY_SOURCE_FILES)
|
|
set(SOURCE_FILEPATH ${CMAKE_CURRENT_SOURCE_DIR}/${SOURCE_FILE})
|
|
set(DEST_FILEPATH ${DATA_LIBRARY_BUILD_DIR}/${SOURCE_FILE})
|
|
add_custom_command(
|
|
OUTPUT ${DEST_FILEPATH}
|
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${SOURCE_FILEPATH} ${DEST_FILEPATH}
|
|
DEPENDS ${SOURCE_FILEPATH})
|
|
list(APPEND MATERIALX_DATA_LIBRARY_BUILD_FILES ${DEST_FILEPATH})
|
|
endforeach()
|
|
|
|
add_custom_target(MaterialXBuildData ALL
|
|
DEPENDS ${MATERIALX_DATA_LIBRARY_BUILD_FILES})
|
|
|
|
set(DATA_LIBRARY_DIR ${DATA_LIBRARY_BUILD_DIR})
|
|
else()
|
|
set(DATA_LIBRARY_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
|
endif()
|
|
|
|
if(NOT SKBUILD)
|
|
install(DIRECTORY ${DATA_LIBRARY_DIR}/
|
|
DESTINATION "${MATERIALX_INSTALL_STDLIB_PATH}"
|
|
PATTERN "CMakeLists.txt" EXCLUDE)
|
|
endif()
|
|
|
|
if(MATERIALX_BUILD_PYTHON)
|
|
set(MATERIALX_PYTHON_LIBRARIES_PATH "${MATERIALX_PYTHON_FOLDER_NAME}/${MATERIALX_INSTALL_STDLIB_PATH}")
|
|
if(SKBUILD)
|
|
set(MATERIALX_PYTHON_LIBRARIES_PATH "${SKBUILD_PLATLIB_DIR}/MaterialX/libraries")
|
|
endif()
|
|
|
|
install(DIRECTORY ${DATA_LIBRARY_DIR}/
|
|
DESTINATION "${MATERIALX_PYTHON_LIBRARIES_PATH}"
|
|
PATTERN "CMakeLists.txt" EXCLUDE)
|
|
endif()
|
|
|
|
set(MATERIALX_DATA_LIBRARY_DIR ${DATA_LIBRARY_DIR} PARENT_SCOPE)
|