[Bf-blender-cvs] [66a863e3019] master: Build: add OpenPGL as to deps builds

Sebastian Herhoz noreply at git.blender.org
Mon Sep 26 23:41:02 CEST 2022


Commit: 66a863e30197990e20a1e9a45923af6331935b21
Author: Sebastian Herhoz
Date:   Wed Sep 21 17:41:41 2022 +0200
Branches: master
https://developer.blender.org/rB66a863e30197990e20a1e9a45923af6331935b21

Build: add OpenPGL as to deps builds

Ref T92571, D15286

===================================================================

M	build_files/build_environment/CMakeLists.txt
M	build_files/build_environment/cmake/download.cmake
M	build_files/build_environment/cmake/harvest.cmake
A	build_files/build_environment/cmake/openpgl.cmake
M	build_files/build_environment/cmake/versions.cmake

===================================================================

diff --git a/build_files/build_environment/CMakeLists.txt b/build_files/build_environment/CMakeLists.txt
index ee8a9a26c53..8c427c63944 100644
--- a/build_files/build_environment/CMakeLists.txt
+++ b/build_files/build_environment/CMakeLists.txt
@@ -94,6 +94,7 @@ include(cmake/pugixml.cmake)
 include(cmake/ispc.cmake)
 include(cmake/openimagedenoise.cmake)
 include(cmake/embree.cmake)
+include(cmake/openpgl.cmake)
 include(cmake/fmt.cmake)
 include(cmake/robinmap.cmake)
 if(NOT APPLE)
diff --git a/build_files/build_environment/cmake/download.cmake b/build_files/build_environment/cmake/download.cmake
index 6f0dd80ea6a..82f5d8260b7 100644
--- a/build_files/build_environment/cmake/download.cmake
+++ b/build_files/build_environment/cmake/download.cmake
@@ -101,6 +101,7 @@ download_source(FMT)
 download_source(ROBINMAP)
 download_source(IMATH)
 download_source(PYSTRING)
+download_source(OPENPGL)
 download_source(LEVEL_ZERO)
 download_source(DPCPP)
 download_source(VCINTRINSICS)
diff --git a/build_files/build_environment/cmake/harvest.cmake b/build_files/build_environment/cmake/harvest.cmake
index 6ed98398fde..0184259f365 100644
--- a/build_files/build_environment/cmake/harvest.cmake
+++ b/build_files/build_environment/cmake/harvest.cmake
@@ -137,6 +137,9 @@ harvest(openimagedenoise/include openimagedenoise/include "*")
 harvest(openimagedenoise/lib openimagedenoise/lib "*.a")
 harvest(embree/include embree/include "*.h")
 harvest(embree/lib embree/lib "*.a")
+harvest(openpgl/include openpgl/include "*.h")
+harvest(openpgl/lib openpgl/lib "*.a")
+harvest(openpgl/lib/cmake/openpgl-${OPENPGL_SHORT_VERSION} openpgl/lib/cmake/openpgl "*.cmake")
 harvest(openjpeg/include/openjpeg-${OPENJPEG_SHORT_VERSION} openjpeg/include "*.h")
 harvest(openjpeg/lib openjpeg/lib "*.a")
 harvest(opensubdiv/include opensubdiv/include "*.h")
diff --git a/build_files/build_environment/cmake/openpgl.cmake b/build_files/build_environment/cmake/openpgl.cmake
new file mode 100644
index 00000000000..e6b0cd8eb4a
--- /dev/null
+++ b/build_files/build_environment/cmake/openpgl.cmake
@@ -0,0 +1,49 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+# Note the utility apps may use png/tiff/gif system libraries, but the
+# library itself does not depend on them, so should give no problems.
+
+set(OPENPGL_EXTRA_ARGS
+    -DOPENPGL_BUILD_PYTHON=OFF
+    -DOPENPGL_BUILD_STATIC=ON
+    -DOPENPGL_TBB_ROOT=${LIBDIR}/tbb
+    -DTBB_ROOT=${LIBDIR}/tbb
+    -Dembree_DIR=${LIBDIR}/embree/lib/cmake/embree-${EMBREE_VERSION}
+    -DCMAKE_DEBUG_POSTFIX=_d
+)
+
+if(TBB_STATIC_LIBRARY)
+  set(OPENPGL_EXTRA_ARGS
+    ${OPENPGL_EXTRA_ARGS}
+    -DOPENPGL_TBB_COMPONENT=tbb_static
+  )
+endif()
+
+ExternalProject_Add(external_openpgl
+    URL file://${PACKAGE_DIR}/${OPENPGL_FILE}
+    DOWNLOAD_DIR ${DOWNLOAD_DIR}
+    URL_HASH ${OPENPGL_HASH_TYPE}=${OPENPGL_HASH}
+    PREFIX ${BUILD_DIR}/openpgl
+    CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${LIBDIR}/openpgl ${DEFAULT_CMAKE_FLAGS} ${OPENPGL_EXTRA_ARGS}
+    INSTALL_DIR ${LIBDIR}/openpgl
+)
+
+add_dependencies(
+    external_openpgl
+    external_tbb
+    external_embree
+)
+
+if(WIN32)
+  if(BUILD_MODE STREQUAL Release)
+    ExternalProject_Add_Step(external_openpgl after_install
+      COMMAND ${CMAKE_COMMAND} -E copy_directory ${LIBDIR}/openpgl ${HARVEST_TARGET}/openpgl
+      DEPENDEES install
+    )
+  else()
+  ExternalProject_Add_Step(external_openpgl after_install
+      COMMAND ${CMAKE_COMMAND} -E copy ${LIBDIR}/openpgl/lib/openpgl_d.lib ${HARVEST_TARGET}/openpgl/lib/openpgl_d.lib
+      DEPENDEES install
+    )
+  endif()
+endif()
diff --git a/build_files/build_environment/cmake/versions.cmake b/build_files/build_environment/cmake/versions.cmake
index 95425300923..a03adcbad7b 100644
--- a/build_files/build_environment/cmake/versions.cmake
+++ b/build_files/build_environment/cmake/versions.cmake
@@ -500,6 +500,13 @@ set(BROTLI_HASH f9e8d81d0405ba66d181529af42a3354f838c939095ff99930da6aa9cdf6fe46
 set(BROTLI_HASH_TYPE SHA256)
 set(BROTLI_FILE brotli-${BROTLI_VERSION}.tar.gz)
 
+set(OPENPGL_VERSION v0.3.1-beta)
+set(OPENPGL_SHORT_VERSION 0.3.1)
+set(OPENPGL_URI https://github.com/OpenPathGuidingLibrary/openpgl/archive/refs/tags/${OPENPGL_VERSION}.tar.gz)
+set(OPENPGL_HASH 3830098c485c962018932766199527aab453a8029528dbbc04d4454d82431e2c)
+set(OPENPGL_HASH_TYPE SHA256)
+set(OPENPGL_FILE openpgl-${OPENPGL_VERSION}.tar.gz)
+
 set(LEVEL_ZERO_VERSION v1.7.15)
 set(LEVEL_ZERO_URI https://github.com/oneapi-src/level-zero/archive/refs/tags/${LEVEL_ZERO_VERSION}.tar.gz)
 set(LEVEL_ZERO_HASH c39bb05a8e5898aa6c444e1704105b93d3f1888b9c333f8e7e73825ffbfb2617)



More information about the Bf-blender-cvs mailing list