Files
UnrealEngine/Engine/Source/ThirdParty/MaterialX/MaterialX-1.39.3/source/CMakeLists.txt
Brandyn / Techy fcc1b09210 init
2026-04-04 15:40:51 -05:00

40 lines
1.7 KiB
CMake

if (MATERIALX_BUILD_MONOLITHIC)
set(MATERIALX_MODULE_NAME ${MATERIALX_MONOLITHIC_TARGET})
# No sources are added - this will be added from each separate module, if the options are set
# such that the individual module would have been built if not in monolithic build mode
add_library(${MATERIALX_MODULE_NAME} "" "" )
set_target_properties(${MATERIALX_MODULE_NAME} PROPERTIES CXX_VISIBILITY_PRESET hidden)
set_target_properties(${MATERIALX_MODULE_NAME} PROPERTIES CMAKE_VISIBILITY_INLINES_HIDDEN 1)
# Create version resource
if(MATERIALX_BUILD_SHARED_LIBS AND MSVC)
configure_file(${CMAKE_SOURCE_DIR}/cmake/modules/MaterialXVersion.rc.in ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
target_sources(${MATERIALX_MODULE_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/version.rc)
endif()
set_target_properties(${MATERIALX_MODULE_NAME} PROPERTIES
OUTPUT_NAME ${MATERIALX_MODULE_NAME}${MATERIALX_LIBNAME_SUFFIX}
COMPILE_FLAGS "${EXTERNAL_COMPILE_FLAGS}"
LINK_FLAGS "${EXTERNAL_LINK_FLAGS}"
INSTALL_RPATH "${MATERIALX_SAME_DIR_RPATH}"
VERSION "${MATERIALX_LIBRARY_VERSION}"
SOVERSION "${MATERIALX_MAJOR_VERSION}")
target_link_libraries(${MATERIALX_MODULE_NAME}
PUBLIC
${CMAKE_DL_LIBS})
target_include_directories(${MATERIALX_MODULE_NAME}
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/>
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/>
$<INSTALL_INTERFACE:${MATERIALX_INSTALL_INCLUDE_PATH}>
PRIVATE
${EXTERNAL_INCLUDE_DIRS})
# Monolithic target is installed in the root CMakeLists.txt to allow for collection
# of all necessary headers.
endif()