diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 6c2b8d1ebc..987aaa4839 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -32,6 +32,13 @@ jobs: python: 3.11 build_javascript: ON + - name: Linux_GCC_12_Python311_Static_Monolithic + os: ubuntu-22.04 + compiler: gcc + compiler_version: "12" + python: 3.11 + cmake_config: -DMATERIALX_BUILD_SHARED_LIBS=ON -DMATERIALX_BUILD_MONOLITHIC=ON + - name: Linux_GCC_14_Python312 os: ubuntu-24.04 compiler: gcc diff --git a/CMakeLists.txt b/CMakeLists.txt index 54dff0df0e..7ef0ebd77a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -300,8 +300,7 @@ function(mx_add_library MATERIALX_MODULE_NAME) SOURCE_FILES HEADER_FILES INLINED_FILES - LIBRARIES - PRIVATE_LIBRARIES) + MTLX_MODULES) cmake_parse_arguments(args "${options}" "${oneValueArgs}" @@ -331,13 +330,9 @@ function(mx_add_library MATERIALX_MODULE_NAME) target_link_libraries(${TARGET_NAME} PUBLIC - ${args_LIBRARIES} + ${args_MTLX_MODULES} ${CMAKE_DL_LIBS}) - target_link_libraries(${TARGET_NAME} - PRIVATE - ${args_PRIVATE_LIBRARIES}) - target_include_directories(${TARGET_NAME} PUBLIC $ diff --git a/source/CMakeLists.txt b/source/CMakeLists.txt index 0f52bdb4a9..01ac2c9cbe 100644 --- a/source/CMakeLists.txt +++ b/source/CMakeLists.txt @@ -14,8 +14,7 @@ if (MATERIALX_BUILD_MONOLITHIC) target_sources(${MATERIALX_MODULE_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/version.rc) endif() - set_target_properties( - ${MATERIALX_MODULE_NAME} PROPERTIES + 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}" @@ -23,8 +22,8 @@ if (MATERIALX_BUILD_MONOLITHIC) VERSION "${MATERIALX_LIBRARY_VERSION}" SOVERSION "${MATERIALX_MAJOR_VERSION}") - target_link_libraries( - ${MATERIALX_MODULE_NAME} + target_link_libraries(${MATERIALX_MODULE_NAME} + PUBLIC ${CMAKE_DL_LIBS}) target_include_directories(${MATERIALX_MODULE_NAME} diff --git a/source/MaterialXFormat/CMakeLists.txt b/source/MaterialXFormat/CMakeLists.txt index d75bbc537c..767c08068f 100644 --- a/source/MaterialXFormat/CMakeLists.txt +++ b/source/MaterialXFormat/CMakeLists.txt @@ -9,12 +9,14 @@ mx_add_library(MaterialXFormat ${materialx_source} HEADER_FILES ${materialx_headers} - LIBRARIES + MTLX_MODULES MaterialXCore - PRIVATE_LIBRARIES - "$" EXPORT_DEFINE MATERIALX_FORMAT_EXPORTS) # we need to use BUILD_INTERFACE here to hide the use of pugixml from the cmake export when we're building # MaterialX as a static library - feels like maybe a cmake bug? + +target_link_libraries(${TARGET_NAME} + PRIVATE + "$") \ No newline at end of file diff --git a/source/MaterialXGenGlsl/CMakeLists.txt b/source/MaterialXGenGlsl/CMakeLists.txt index bd03965b62..37e3a44252 100644 --- a/source/MaterialXGenGlsl/CMakeLists.txt +++ b/source/MaterialXGenGlsl/CMakeLists.txt @@ -6,7 +6,7 @@ mx_add_library(MaterialXGenGlsl ${materialx_source} HEADER_FILES ${materialx_headers} - LIBRARIES + MTLX_MODULES MaterialXGenShader MaterialXCore EXPORT_DEFINE diff --git a/source/MaterialXGenMdl/CMakeLists.txt b/source/MaterialXGenMdl/CMakeLists.txt index b53b2c1954..ef51a08376 100644 --- a/source/MaterialXGenMdl/CMakeLists.txt +++ b/source/MaterialXGenMdl/CMakeLists.txt @@ -6,7 +6,7 @@ mx_add_library(MaterialXGenMdl ${materialx_source} HEADER_FILES ${materialx_headers} - LIBRARIES + MTLX_MODULES MaterialXGenShader MaterialXCore EXPORT_DEFINE diff --git a/source/MaterialXGenMsl/CMakeLists.txt b/source/MaterialXGenMsl/CMakeLists.txt index 9dbfd666f7..317b7fa58e 100644 --- a/source/MaterialXGenMsl/CMakeLists.txt +++ b/source/MaterialXGenMsl/CMakeLists.txt @@ -6,7 +6,7 @@ mx_add_library(MaterialXGenMsl ${materialx_source} HEADER_FILES ${materialx_headers} - LIBRARIES + MTLX_MODULES MaterialXGenShader MaterialXCore EXPORT_DEFINE diff --git a/source/MaterialXGenOsl/CMakeLists.txt b/source/MaterialXGenOsl/CMakeLists.txt index 398f390c64..c5b6079382 100644 --- a/source/MaterialXGenOsl/CMakeLists.txt +++ b/source/MaterialXGenOsl/CMakeLists.txt @@ -6,7 +6,7 @@ mx_add_library(MaterialXGenOsl ${materialx_source} HEADER_FILES ${materialx_headers} - LIBRARIES + MTLX_MODULES MaterialXGenShader MaterialXCore EXPORT_DEFINE diff --git a/source/MaterialXGenShader/CMakeLists.txt b/source/MaterialXGenShader/CMakeLists.txt index ebdf814234..78b5138486 100644 --- a/source/MaterialXGenShader/CMakeLists.txt +++ b/source/MaterialXGenShader/CMakeLists.txt @@ -6,7 +6,7 @@ mx_add_library(MaterialXGenShader ${materialx_source} HEADER_FILES ${materialx_headers} - LIBRARIES + MTLX_MODULES MaterialXFormat MaterialXCore EXPORT_DEFINE diff --git a/source/MaterialXRender/CMakeLists.txt b/source/MaterialXRender/CMakeLists.txt index 130cbd190c..9cb1bcaa04 100644 --- a/source/MaterialXRender/CMakeLists.txt +++ b/source/MaterialXRender/CMakeLists.txt @@ -13,7 +13,7 @@ mx_add_library(MaterialXRender ${materialx_inlined} HEADER_FILES ${materialx_headers} - LIBRARIES + MTLX_MODULES MaterialXGenShader EXPORT_DEFINE MATERIALX_RENDER_EXPORTS) diff --git a/source/MaterialXRenderGlsl/CMakeLists.txt b/source/MaterialXRenderGlsl/CMakeLists.txt index eb4548ed43..32e68a5f36 100644 --- a/source/MaterialXRenderGlsl/CMakeLists.txt +++ b/source/MaterialXRenderGlsl/CMakeLists.txt @@ -28,7 +28,7 @@ mx_add_library(MaterialXRenderGlsl ${materialx_source} HEADER_FILES ${materialx_headers} - LIBRARIES + MTLX_MODULES MaterialXRenderHw MaterialXGenGlsl EXPORT_DEFINE diff --git a/source/MaterialXRenderHw/CMakeLists.txt b/source/MaterialXRenderHw/CMakeLists.txt index 375ac7cead..a8a806d1b6 100644 --- a/source/MaterialXRenderHw/CMakeLists.txt +++ b/source/MaterialXRenderHw/CMakeLists.txt @@ -20,7 +20,7 @@ mx_add_library(MaterialXRenderHw ${materialx_source} HEADER_FILES ${materialx_headers} - LIBRARIES + MTLX_MODULES MaterialXRender EXPORT_DEFINE MATERIALX_RENDERHW_EXPORTS diff --git a/source/MaterialXRenderMsl/CMakeLists.txt b/source/MaterialXRenderMsl/CMakeLists.txt index 81f4731bb9..296c454e2b 100644 --- a/source/MaterialXRenderMsl/CMakeLists.txt +++ b/source/MaterialXRenderMsl/CMakeLists.txt @@ -26,7 +26,7 @@ mx_add_library(MaterialXRenderMsl ${materialx_source} HEADER_FILES ${materialx_headers} - LIBRARIES + MTLX_MODULES MaterialXRenderHw MaterialXGenMsl EXPORT_DEFINE diff --git a/source/MaterialXRenderOsl/CMakeLists.txt b/source/MaterialXRenderOsl/CMakeLists.txt index 033558fcaa..3b02984ab1 100644 --- a/source/MaterialXRenderOsl/CMakeLists.txt +++ b/source/MaterialXRenderOsl/CMakeLists.txt @@ -6,7 +6,7 @@ mx_add_library(MaterialXRenderOsl ${materialx_source} HEADER_FILES ${materialx_headers} - LIBRARIES + MTLX_MODULES MaterialXRender EXPORT_DEFINE MATERIALX_RENDEROSL_EXPORTS)