59 lines
2.5 KiB
CMake
59 lines
2.5 KiB
CMake
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
|
|
set(MATERIALX_EXTRA_ARGS
|
|
-DMATERIALX_BUILD_PYTHON=ON
|
|
-DMATERIALX_BUILD_RENDER=ON
|
|
-DMATERIALX_INSTALL_PYTHON=OFF
|
|
-DMATERIALX_PYTHON_EXECUTABLE=${PYTHON_BINARY}
|
|
-DMATERIALX_PYTHON_VERSION=${PYTHON_SHORT_VERSION}
|
|
-DMATERIALX_BUILD_SHARED_LIBS=ON
|
|
-DMATERIALX_BUILD_TESTS=OFF
|
|
-DCMAKE_DEBUG_POSTFIX=_d
|
|
-Dpybind11_ROOT=${LIBDIR}/pybind11
|
|
-DPython_EXECUTABLE=${PYTHON_BINARY}
|
|
)
|
|
|
|
ExternalProject_Add(external_materialx
|
|
URL file://${PACKAGE_DIR}/${MATERIALX_FILE}
|
|
DOWNLOAD_DIR ${DOWNLOAD_DIR}
|
|
URL_HASH ${MATERIALX_HASH_TYPE}=${MATERIALX_HASH}
|
|
PREFIX ${BUILD_DIR}/materialx
|
|
CMAKE_GENERATOR ${PLATFORM_ALT_GENERATOR}
|
|
PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/materialx/src/external_materialx < ${PATCH_DIR}/materialx.diff
|
|
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/materialx ${DEFAULT_CMAKE_FLAGS} ${MATERIALX_EXTRA_ARGS}
|
|
INSTALL_DIR ${LIBDIR}/materialx
|
|
)
|
|
|
|
if(WIN32)
|
|
set(MATERIALX_PYTHON_TARGET ${HARVEST_TARGET}/materialx/python/${BUILD_MODE})
|
|
string(REPLACE "/" "\\" MATERIALX_PYTHON_TARGET_DOS "${MATERIALX_PYTHON_TARGET}")
|
|
if(BUILD_MODE STREQUAL Release)
|
|
ExternalProject_Add_Step(external_materialx after_install
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/include ${HARVEST_TARGET}/materialx/include
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/libraries ${HARVEST_TARGET}/materialx/libraries
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/lib/ ${HARVEST_TARGET}/materialx/lib/
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/bin/ ${HARVEST_TARGET}/materialx/bin/
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/python/ ${MATERIALX_PYTHON_TARGET}
|
|
COMMAND del ${MATERIALX_PYTHON_TARGET_DOS}\\MaterialX\\*.lib
|
|
DEPENDEES install
|
|
)
|
|
endif()
|
|
if(BUILD_MODE STREQUAL Debug)
|
|
ExternalProject_Add_Step(external_materialx after_install
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/lib/ ${HARVEST_TARGET}/materialx/lib/
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/bin/ ${HARVEST_TARGET}/materialx/bin/
|
|
COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/materialx/python/ ${MATERIALX_PYTHON_TARGET}
|
|
COMMAND del ${MATERIALX_PYTHON_TARGET_DOS}\\MaterialX\\*.lib
|
|
DEPENDEES install
|
|
)
|
|
endif()
|
|
unset(MATERIALX_PYTHON_TARGET)
|
|
unset(MATERIALX_PYTHON_TARGET_DOS)
|
|
endif()
|
|
|
|
add_dependencies(
|
|
external_materialx
|
|
external_python
|
|
external_pybind11
|
|
)
|