From cc295a759614e2537d83e30bbf66ba3b779219f0 Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 15 Dec 2024 01:39:13 +0100 Subject: [PATCH] Fix: Mesa and OSL dependency build error due to missing xml2 from llvm-config --- build_files/build_environment/cmake/mesa.cmake | 4 ++++ build_files/build_environment/cmake/osl.cmake | 8 +++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/build_files/build_environment/cmake/mesa.cmake b/build_files/build_environment/cmake/mesa.cmake index d5cd3a6c518..bec730f6f89 100644 --- a/build_files/build_environment/cmake/mesa.cmake +++ b/build_files/build_environment/cmake/mesa.cmake @@ -12,6 +12,10 @@ file(WRITE ${BUILD_DIR}/mesa/tmp/native-file.ini "\ llvm-config = '${LIBDIR}/llvm/bin/llvm-config'" ) +# llvm-config will add -lmxl2. Make sure it can be found and that no system +# library is used instead. +set(MESA_LDFLAGS "-L${LIBDIR}/xml2/lib") + set(MESA_EXTRA_FLAGS ${MESON_BUILD_TYPE} -Dc_args=${MESA_CFLAGS} diff --git a/build_files/build_environment/cmake/osl.cmake b/build_files/build_environment/cmake/osl.cmake index 3ec8aeb65de..90b7d727755 100644 --- a/build_files/build_environment/cmake/osl.cmake +++ b/build_files/build_environment/cmake/osl.cmake @@ -4,10 +4,14 @@ if(WIN32) set(OSL_CMAKE_CXX_STANDARD_LIBRARIES "kernel32${LIBEXT} user32${LIBEXT} gdi32${LIBEXT} winspool${LIBEXT} shell32${LIBEXT} ole32${LIBEXT} oleaut32${LIBEXT} uuid${LIBEXT} comdlg32${LIBEXT} advapi32${LIBEXT} psapi${LIBEXT}") + set(OSL_CMAKE_LINKER_FLAGS) set(OSL_FLEX_BISON -DFLEX_EXECUTABLE=${LIBDIR}/flexbison/win_flex.exe -DBISON_EXECUTABLE=${LIBDIR}/flexbison/win_bison.exe) else() set(OSL_CMAKE_CXX_STANDARD_LIBRARIES) - set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/OpenImageIO${SHAREDLIBEXT};${LIBDIR}/png/lib/${LIBPREFIX}png16${LIBEXT};${LIBDIR}/jpeg/lib/${LIBPREFIX}jpeg${LIBEXT};${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT};${LIBDIR}/openexr/lib/IlmImf${OPENEXR_VERSION_POSTFIX}${SHAREDLIBEXT}") + # llvm-config will add -lmxl2. Make sure it can be found and that no system + # library is used instead. + set(OSL_CMAKE_LINKER_FLAGS "-L${LIBDIR}/xml2/lib") + set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/OpenImageIO${SHAREDLIBEXT};${LIBDIR}/openexr/lib/IlmImf${OPENEXR_VERSION_POSTFIX}${SHAREDLIBEXT}") if(APPLE) # Explicitly specify Homebrew path, so we don't use the old system one. @@ -30,6 +34,8 @@ set(OSL_EXTRA_ARGS -DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/ ${OSL_FLEX_BISON} -DCMAKE_CXX_STANDARD_LIBRARIES=${OSL_CMAKE_CXX_STANDARD_LIBRARIES} + -DCMAKE_EXE_LINKER_FLAGS=${OSL_CMAKE_LINKER_FLAGS} + -DCMAKE_SHARED_LINKER_FLAGS=${OSL_CMAKE_LINKER_FLAGS} -DBUILD_SHARED_LIBS=ON -DLINKSTATIC=OFF -DOSL_BUILD_PLUGINS=OFF