# SPDX-License-Identifier: GPL-2.0-or-later 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_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_FLEX_BISON) set(OSL_OPENIMAGEIO_LIBRARY "${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO${LIBEXT};${LIBDIR}/openimageio/lib/${LIBPREFIX}OpenImageIO_Util${LIBEXT};${LIBDIR}/png/lib/${LIBPREFIX}png16${LIBEXT};${LIBDIR}/jpeg/lib/${LIBPREFIX}jpeg${LIBEXT};${LIBDIR}/tiff/lib/${LIBPREFIX}tiff${LIBEXT};${LIBDIR}/openexr/lib/${LIBPREFIX}IlmImf${OPENEXR_VERSION_POSTFIX}${LIBEXT}") endif() set(OSL_EXTRA_ARGS ${DEFAULT_BOOST_FLAGS} -DOpenEXR_ROOT=${LIBDIR}/openexr/ -DOpenImageIO_ROOT=${LIBDIR}/openimageio/ -DOSL_BUILD_TESTS=OFF -DOSL_BUILD_MATERIALX=OFF -DPNG_ROOT=${LIBDIR}/png -DZLIB_LIBRARY=${LIBDIR}/zlib/lib/${ZLIB_LIBRARY} -DZLIB_INCLUDE_DIR=${LIBDIR}/zlib/include/ ${OSL_FLEX_BISON} -DCMAKE_CXX_STANDARD_LIBRARIES=${OSL_CMAKE_CXX_STANDARD_LIBRARIES} -DBUILD_SHARED_LIBS=OFF -DLINKSTATIC=ON -DOSL_BUILD_PLUGINS=OFF -DSTOP_ON_WARNING=OFF -DUSE_LLVM_BITCODE=OFF -DLLVM_ROOT=${LIBDIR}/llvm/ -DLLVM_DIRECTORY=${LIBDIR}/llvm/ -DUSE_PARTIO=OFF -DUSE_QT=OFF -DUSE_Qt5=OFF -DINSTALL_DOCS=OFF -Dpugixml_ROOT=${LIBDIR}/pugixml -DUSE_PYTHON=OFF -DCMAKE_CXX_STANDARD=14 -DImath_ROOT=${LIBDIR}/imath ) ExternalProject_Add(external_osl URL file://${PACKAGE_DIR}/${OSL_FILE} DOWNLOAD_DIR ${DOWNLOAD_DIR} LIST_SEPARATOR ^^ URL_HASH ${OSL_HASH_TYPE}=${OSL_HASH} PREFIX ${BUILD_DIR}/osl PATCH_COMMAND ${PATCH_CMD} -p 1 -d ${BUILD_DIR}/osl/src/external_osl < ${PATCH_DIR}/osl.diff CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/osl -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} ${DEFAULT_CMAKE_FLAGS} ${OSL_EXTRA_ARGS} INSTALL_DIR ${LIBDIR}/osl ) add_dependencies( external_osl external_boost ll external_openexr external_zlib external_openimageio external_pugixml ) if(WIN32) add_dependencies( external_osl external_flexbison ) elseif(UNIX AND NOT APPLE) add_dependencies( external_osl external_flex ) endif() if(WIN32) if(BUILD_MODE STREQUAL Release) ExternalProject_Add_Step(external_osl after_install COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/osl/ ${HARVEST_TARGET}/osl DEPENDEES install ) endif() if(BUILD_MODE STREQUAL Debug) ExternalProject_Add_Step(external_osl after_install COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslcomp.lib ${HARVEST_TARGET}/osl/lib/oslcomp_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslexec.lib ${HARVEST_TARGET}/osl/lib/oslexec_d.lib COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/osl/lib/oslquery.lib ${HARVEST_TARGET}/osl/lib/oslquery_d.lib DEPENDEES install ) endif() endif()