Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix include install - compatible with cmake 3.16 #1928

Closed
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
34 changes: 4 additions & 30 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@ set(MATERIALX_LIBRARY_VERSION ${MATERIALX_MAJOR_VERSION}.${MATERIALX_MINOR_VERSI

# Cmake setup
cmake_minimum_required(VERSION 3.16)
cmake_policy(VERSION 3.16)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_POSITION_INDEPENDENT_CODE TRUE)
set(CMAKE_MACOSX_RPATH ON)
Expand Down Expand Up @@ -347,17 +349,7 @@ function(mx_add_library MATERIALX_MODULE_NAME)
target_sources(${TARGET_NAME}
PRIVATE
${args_SOURCE_FILES}
PUBLIC
FILE_SET
mxHeaders
TYPE
HEADERS
BASE_DIRS
${CMAKE_CURRENT_SOURCE_DIR}/..
${CMAKE_CURRENT_BINARY_DIR}/..
FILES
${args_HEADER_FILES}
${args_INLINED_FILES})
${args_INLINED_FILES})

target_include_directories(${TARGET_NAME} PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/../>)
Expand All @@ -370,8 +362,7 @@ function(mx_add_library MATERIALX_MODULE_NAME)
EXPORT MaterialX
ARCHIVE DESTINATION ${MATERIALX_INSTALL_LIB_PATH}
LIBRARY DESTINATION ${MATERIALX_INSTALL_LIB_PATH}
RUNTIME DESTINATION bin
FILE_SET mxHeaders)
RUNTIME DESTINATION bin)
endif()

install(FILES "${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_BUILD_TYPE}/${MATERIALX_MODULE_NAME}.pdb"
Expand Down Expand Up @@ -464,23 +455,6 @@ if(MATERIALX_BUILD_JS)
add_subdirectory(source/JsMaterialX)
endif()

if (MATERIALX_BUILD_MONOLITHIC)
# MaterialX monolithic build target needs to be installed after any other included
# modules to ensure the correct files are in mxHeaders
if(NOT SKBUILD)
install(TARGETS ${MATERIALX_MONOLITHIC_TARGET}
EXPORT MaterialX
ARCHIVE DESTINATION ${MATERIALX_INSTALL_LIB_PATH}
LIBRARY DESTINATION ${MATERIALX_INSTALL_LIB_PATH}
RUNTIME DESTINATION bin
FILE_SET mxHeaders)

# Note : we don't install the headers etc. here, and rely on each separate modules CMakeLists.txt
# to do that installation, thus we respect the build options configuration, and only install
# the headers for the modules we've built in to the monolithic build.
endif()
endif()

if(MATERIALX_BUILD_VIEWER)
set_property(DIRECTORY PROPERTY VS_STARTUP_PROJECT MaterialXView)
elseif(MATERIALX_BUILD_GRAPH_EDITOR)
Expand Down
15 changes: 13 additions & 2 deletions source/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,17 @@ if (MATERIALX_BUILD_MONOLITHIC)
PRIVATE
${EXTERNAL_INCLUDE_DIRS})

# Monolithic target is installed in the root CMakeLists.txt to allow for collection
# of all necessary headers.

if(NOT SKBUILD)
install(TARGETS ${MATERIALX_MONOLITHIC_TARGET}
EXPORT MaterialX
ARCHIVE DESTINATION ${MATERIALX_INSTALL_LIB_PATH}
LIBRARY DESTINATION ${MATERIALX_INSTALL_LIB_PATH}
RUNTIME DESTINATION bin)

# Note : we don't install the headers etc. here, and rely on each separate modules CMakeLists.txt
# to do that installation, thus we respect the build options configuration, and only install
# the headers for the modules we've built in to the monolithic build.
endif()

endif()
9 changes: 8 additions & 1 deletion source/MaterialXCore/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
set(MATERIALX_MODULE_NAME MaterialXCore)

configure_file(${CMAKE_CURRENT_SOURCE_DIR}/Generated.h.in ${CMAKE_CURRENT_BINARY_DIR}/Generated.h)

file(GLOB materialx_source "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
file(GLOB materialx_headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h" "${CMAKE_CURRENT_BINARY_DIR}/*.h")

mx_add_library(MaterialXCore
mx_add_library(${MATERIALX_MODULE_NAME}
SOURCE_FILES
${materialx_source}
HEADER_FILES
Expand All @@ -15,3 +17,8 @@ mx_add_library(MaterialXCore
target_include_directories(${TARGET_NAME}
PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/../>)

if (NOT SKBUILD)
install(FILES ${materialx_headers}
DESTINATION ${MATERIALX_INSTALL_INCLUDE_PATH}/${MATERIALX_MODULE_NAME}/)
endif()
10 changes: 9 additions & 1 deletion source/MaterialXFormat/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
set(MATERIALX_MODULE_NAME MaterialXFormat)

file(GLOB_RECURSE materialx_source "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
file(GLOB_RECURSE materialx_headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h*")

mx_add_library(MaterialXFormat
mx_add_library(${MATERIALX_MODULE_NAME}
SOURCE_FILES
${materialx_source}
HEADER_FILES
Expand All @@ -10,3 +12,9 @@ mx_add_library(MaterialXFormat
MaterialXCore
EXPORT_DEFINE
MATERIALX_FORMAT_EXPORTS)

if(NOT SKBUILD)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/"
DESTINATION ${MATERIALX_INSTALL_INCLUDE_PATH}/${MATERIALX_MODULE_NAME}/ MESSAGE_NEVER
FILES_MATCHING PATTERN "*.h*")
endif()
10 changes: 9 additions & 1 deletion source/MaterialXGenGlsl/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
set(MATERIALX_MODULE_NAME MaterialXGenGlsl)

file(GLOB_RECURSE materialx_source "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
file(GLOB_RECURSE materialx_headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h*")

mx_add_library(MaterialXGenGlsl
mx_add_library(${MATERIALX_MODULE_NAME}
SOURCE_FILES
${materialx_source}
HEADER_FILES
Expand All @@ -11,3 +13,9 @@ mx_add_library(MaterialXGenGlsl
MaterialXCore
EXPORT_DEFINE
MATERIALX_GENGLSL_EXPORTS)

if(NOT SKBUILD)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/"
DESTINATION ${MATERIALX_INSTALL_INCLUDE_PATH}/${MATERIALX_MODULE_NAME}/ MESSAGE_NEVER
FILES_MATCHING PATTERN "*.h*")
endif()
10 changes: 8 additions & 2 deletions source/MaterialXGenMdl/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
set(MATERIALX_MODULE_NAME MaterialXGenMdl)

file(GLOB_RECURSE materialx_source "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
file(GLOB_RECURSE materialx_headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h*")

mx_add_library(MaterialXGenMdl
mx_add_library(${MATERIALX_MODULE_NAME}
SOURCE_FILES
${materialx_source}
HEADER_FILES
Expand All @@ -13,6 +15,10 @@ mx_add_library(MaterialXGenMdl
MATERIALX_GENMDL_EXPORTS)

if(NOT SKBUILD)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/"
DESTINATION ${MATERIALX_INSTALL_INCLUDE_PATH}/${MATERIALX_MODULE_NAME}/ MESSAGE_NEVER
FILES_MATCHING PATTERN "*.h*")

install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/mdl
DESTINATION "${MATERIALX_INSTALL_MDL_MODULE_PATH}")
endif()
endif()
10 changes: 9 additions & 1 deletion source/MaterialXGenMsl/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
set(MATERIALX_MODULE_NAME MaterialXGenMsl)

file(GLOB_RECURSE materialx_source "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
file(GLOB_RECURSE materialx_headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h*")

mx_add_library(MaterialXGenMsl
mx_add_library(${MATERIALX_MODULE_NAME}
SOURCE_FILES
${materialx_source}
HEADER_FILES
Expand All @@ -11,3 +13,9 @@ mx_add_library(MaterialXGenMsl
MaterialXCore
EXPORT_DEFINE
MATERIALX_GENMSL_EXPORTS)

if(NOT SKBUILD)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/"
DESTINATION ${MATERIALX_INSTALL_INCLUDE_PATH}/${MATERIALX_MODULE_NAME}/ MESSAGE_NEVER
FILES_MATCHING PATTERN "*.h*")
endif()
10 changes: 9 additions & 1 deletion source/MaterialXGenOsl/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
set(MATERIALX_MODULE_NAME MaterialXGenOsl)

file(GLOB_RECURSE materialx_source "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
file(GLOB_RECURSE materialx_headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h*")

mx_add_library(MaterialXGenOsl
mx_add_library(${MATERIALX_MODULE_NAME}
SOURCE_FILES
${materialx_source}
HEADER_FILES
Expand All @@ -11,3 +13,9 @@ mx_add_library(MaterialXGenOsl
MaterialXCore
EXPORT_DEFINE
MATERIALX_GENOSL_EXPORTS)

if(NOT SKBUILD)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/"
DESTINATION ${MATERIALX_INSTALL_INCLUDE_PATH}/${MATERIALX_MODULE_NAME}/ MESSAGE_NEVER
FILES_MATCHING PATTERN "*.h*")
endif()
8 changes: 7 additions & 1 deletion source/MaterialXGenShader/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
set(MATERIALX_MODULE_NAME MaterialXGenShader)

file(GLOB_RECURSE materialx_source "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
file(GLOB_RECURSE materialx_headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h*")

mx_add_library(MaterialXGenShader
mx_add_library(${MATERIALX_MODULE_NAME}
SOURCE_FILES
${materialx_source}
HEADER_FILES
Expand All @@ -13,6 +15,10 @@ mx_add_library(MaterialXGenShader
MATERIALX_GENSHADER_EXPORTS)

if(NOT SKBUILD)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/"
DESTINATION ${MATERIALX_INSTALL_INCLUDE_PATH}/${MATERIALX_MODULE_NAME}/ MESSAGE_NEVER
FILES_MATCHING PATTERN "*.h*")

install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/../../resources"
DESTINATION . MESSAGE_NEVER)
endif()
12 changes: 11 additions & 1 deletion source/MaterialXRender/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
set(MATERIALX_MODULE_NAME MaterialXRender)

file(GLOB_RECURSE materialx_source "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
file(GLOB_RECURSE materialx_inlined "${CMAKE_CURRENT_SOURCE_DIR}/*.inl")
file(GLOB_RECURSE materialx_headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h*")
Expand All @@ -6,7 +8,7 @@ if(NOT MATERIALX_BUILD_OIIO)
list(REMOVE_ITEM materialx_source "${CMAKE_CURRENT_SOURCE_DIR}/OiioImageLoader.cpp")
endif()

mx_add_library(MaterialXRender
mx_add_library(${MATERIALX_MODULE_NAME}
SOURCE_FILES
${materialx_source}
INLINED_FILES
Expand All @@ -31,3 +33,11 @@ if(MATERIALX_BUILD_OIIO)
find_package(OpenImageIO CONFIG REQUIRED)
target_link_libraries(${TARGET_NAME} OpenImageIO::OpenImageIO OpenImageIO::OpenImageIO_Util)
endif()

if(NOT SKBUILD)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/"
DESTINATION ${MATERIALX_INSTALL_INCLUDE_PATH}/${MATERIALX_MODULE_NAME}/ MESSAGE_NEVER
FILES_MATCHING
PATTERN "*.h*"
PATTERN "*.inl")
endif()
10 changes: 9 additions & 1 deletion source/MaterialXRenderGlsl/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
set(MATERIALX_MODULE_NAME MaterialXRenderGlsl)

file(GLOB_RECURSE materialx_source "${CMAKE_CURRENT_SOURCE_DIR}/*.c*")
file(GLOB_RECURSE materialx_headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h*")

Expand All @@ -23,7 +25,7 @@ elseif(UNIX)
find_package(OpenGL REQUIRED)
endif()

mx_add_library(MaterialXRenderGlsl
mx_add_library(${MATERIALX_MODULE_NAME}
SOURCE_FILES
${materialx_source}
HEADER_FILES
Expand Down Expand Up @@ -76,3 +78,9 @@ elseif(UNIX)
X11::X11
X11::Xt)
endif()

if(NOT SKBUILD)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/"
DESTINATION ${MATERIALX_INSTALL_INCLUDE_PATH}/${MATERIALX_MODULE_NAME}/ MESSAGE_NEVER
FILES_MATCHING PATTERN "*.h*")
endif()
9 changes: 8 additions & 1 deletion source/MaterialXRenderHw/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
set(MATERIALX_MODULE_NAME MaterialXRenderHw)

file(GLOB materialx_source "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
file(GLOB materialx_headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h*")
Expand All @@ -15,7 +16,7 @@ elseif(UNIX)
endif()
endif()

mx_add_library(MaterialXRenderHw
mx_add_library(${MATERIALX_MODULE_NAME}
SOURCE_FILES
${materialx_source}
HEADER_FILES
Expand Down Expand Up @@ -43,3 +44,9 @@ elseif(UNIX)
X11::X11
X11::Xt)
endif()

if(NOT SKBUILD)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/"
DESTINATION ${MATERIALX_INSTALL_INCLUDE_PATH}/${MATERIALX_MODULE_NAME}/ MESSAGE_NEVER
FILES_MATCHING PATTERN "*.h*")
endif()
10 changes: 9 additions & 1 deletion source/MaterialXRenderMsl/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
set(MATERIALX_MODULE_NAME MaterialXRenderMsl)

file(GLOB_RECURSE materialx_source "${CMAKE_CURRENT_SOURCE_DIR}/*.m*")
file(GLOB_RECURSE materialx_headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h*")

Expand All @@ -21,7 +23,7 @@ elseif(UNIX)
find_package(OpenGL REQUIRED)
endif()

mx_add_library(MaterialXRenderMsl
mx_add_library(${MATERIALX_MODULE_NAME}
SOURCE_FILES
${materialx_source}
HEADER_FILES
Expand Down Expand Up @@ -67,3 +69,9 @@ elseif(UNIX)
X11::X11
X11::Xt)
endif()

if(NOT SKBUILD)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/"
DESTINATION ${MATERIALX_INSTALL_INCLUDE_PATH}/${MATERIALX_MODULE_NAME}/ MESSAGE_NEVER
FILES_MATCHING PATTERN "*.h*")
endif()
10 changes: 9 additions & 1 deletion source/MaterialXRenderOsl/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
set(MATERIALX_MODULE_NAME MaterialXRenderOsl)

file(GLOB_RECURSE materialx_source "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")
file(GLOB_RECURSE materialx_headers "${CMAKE_CURRENT_SOURCE_DIR}/*.h*")

mx_add_library(MaterialXRenderOsl
mx_add_library(${MATERIALX_MODULE_NAME}
SOURCE_FILES
${materialx_source}
HEADER_FILES
Expand All @@ -10,3 +12,9 @@ mx_add_library(MaterialXRenderOsl
MaterialXRender
EXPORT_DEFINE
MATERIALX_RENDEROSL_EXPORTS)

if(NOT SKBUILD)
install(DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/"
DESTINATION ${MATERIALX_INSTALL_INCLUDE_PATH}/${MATERIALX_MODULE_NAME}/ MESSAGE_NEVER
FILES_MATCHING PATTERN "*.h*")
endif()