Переглянути джерело

Add ilmbase (OpenEXR) build script.

Signed-off-by: rbarrand <[email protected]>
rbarrand 4 роки тому
батько
коміт
ef5d53b1af

+ 40 - 0
package-system/OpenEXR/Findilmbase.cmake.Linux

@@ -0,0 +1,40 @@
+#
+# Copyright (c) Contributors to the Open 3D Engine Project.
+# For complete copyright and license terms please see the LICENSE at the root of this distribution.
+# 
+# SPDX-License-Identifier: Apache-2.0 OR MIT
+#
+#
+# this file actually ingests the library and defines targets.
+set(TARGET_WITH_NAMESPACE "3rdParty::ilmbase")
+if (TARGET $${TARGET_WITH_NAMESPACE})
+    return()
+endif()
+
+set(MY_NAME "ilmbase")
+
+set($${MY_NAME}_INCLUDE_DIR $${CMAKE_CURRENT_LIST_DIR}/ilmbase/include 
+                           $${CMAKE_CURRENT_LIST_DIR}/ilmbase/include/OpenEXR)
+
+set(_LIBS_DIR $${CMAKE_CURRENT_LIST_DIR}/ilmbase/lib)
+set($${MY_NAME}_LIBRARY_DEBUG   $${_LIBS_DIR}/libIlmImfUtil-2_3_s.a
+                                $${_LIBS_DIR}/libIlmImf-2_3_s.a # Order is important. IlmImf libs depend on ilmbase libs
+                                $${_LIBS_DIR}/libHalf-2_3_s.a
+                                $${_LIBS_DIR}/libIex-2_3_s.a
+                                $${_LIBS_DIR}/libIexMath-2_3_s.a
+                                $${_LIBS_DIR}/libIlmThread-2_3_s.a
+                                $${_LIBS_DIR}/libImath-2_3_s.a)
+set($${MY_NAME}_LIBRARY_RELEASE $${$${MY_NAME}_LIBRARY_DEBUG})
+endif()
+
+# we set it to a generator expression for multi-config situations:
+set($${MY_NAME}_LIBRARY  
+    "$$<$$<CONFIG:profile>:$${$${MY_NAME}_LIBRARY_RELEASE}>"
+    "$$<$$<CONFIG:Release>:$${$${MY_NAME}_LIBRARY_RELEASE}>"
+    "$$<$$<CONFIG:Debug>:$${$${MY_NAME}_LIBRARY_DEBUG}>")
+
+add_library($${TARGET_WITH_NAMESPACE} INTERFACE IMPORTED GLOBAL)
+ly_target_include_system_directories(TARGET $${TARGET_WITH_NAMESPACE} INTERFACE $${$${MY_NAME}_INCLUDE_DIR})
+target_link_libraries($${TARGET_WITH_NAMESPACE} INTERFACE $${$${MY_NAME}_LIBRARY})
+
+set($${MY_NAME}_FOUND True)

+ 40 - 0
package-system/OpenEXR/Findilmbase.cmake.Mac

@@ -0,0 +1,40 @@
+#
+# Copyright (c) Contributors to the Open 3D Engine Project.
+# For complete copyright and license terms please see the LICENSE at the root of this distribution.
+# 
+# SPDX-License-Identifier: Apache-2.0 OR MIT
+#
+#
+# this file actually ingests the library and defines targets.
+set(TARGET_WITH_NAMESPACE "3rdParty::ilmbase")
+if (TARGET $${TARGET_WITH_NAMESPACE})
+    return()
+endif()
+
+set(MY_NAME "ilmbase")
+
+set($${MY_NAME}_INCLUDE_DIR $${CMAKE_CURRENT_LIST_DIR}/ilmbase/include 
+                           $${CMAKE_CURRENT_LIST_DIR}/ilmbase/include/OpenEXR)
+
+set(_LIBS_DIR $${CMAKE_CURRENT_LIST_DIR}/ilmbase/lib)
+set($${MY_NAME}_LIBRARY_DEBUG   $${_LIBS_DIR}/libIlmImfUtil-2_3_s.a
+                                $${_LIBS_DIR}/libIlmImf-2_3_s.a # Order is important. IlmImf libs depend on ilmbase libs
+                                $${_LIBS_DIR}/libHalf-2_3_s.a
+                                $${_LIBS_DIR}/libIex-2_3_s.a
+                                $${_LIBS_DIR}/libIexMath-2_3_s.a
+                                $${_LIBS_DIR}/libIlmThread-2_3_s.a
+                                $${_LIBS_DIR}/libImath-2_3_s.a)
+set($${MY_NAME}_LIBRARY_RELEASE $${$${MY_NAME}_LIBRARY_DEBUG})
+endif()
+
+# we set it to a generator expression for multi-config situations:
+set($${MY_NAME}_LIBRARY  
+    "$$<$$<CONFIG:profile>:$${$${MY_NAME}_LIBRARY_RELEASE}>"
+    "$$<$$<CONFIG:Release>:$${$${MY_NAME}_LIBRARY_RELEASE}>"
+    "$$<$$<CONFIG:Debug>:$${$${MY_NAME}_LIBRARY_DEBUG}>")
+
+add_library($${TARGET_WITH_NAMESPACE} INTERFACE IMPORTED GLOBAL)
+ly_target_include_system_directories(TARGET $${TARGET_WITH_NAMESPACE} INTERFACE $${$${MY_NAME}_INCLUDE_DIR})
+target_link_libraries($${TARGET_WITH_NAMESPACE} INTERFACE $${$${MY_NAME}_LIBRARY})
+
+set($${MY_NAME}_FOUND True)

+ 46 - 0
package-system/OpenEXR/Findilmbase.cmake.Windows

@@ -0,0 +1,46 @@
+#
+# Copyright (c) Contributors to the Open 3D Engine Project.
+# For complete copyright and license terms please see the LICENSE at the root of this distribution.
+# 
+# SPDX-License-Identifier: Apache-2.0 OR MIT
+#
+#
+# this file actually ingests the library and defines targets.
+set(TARGET_WITH_NAMESPACE "3rdParty::ilmbase")
+if (TARGET $${TARGET_WITH_NAMESPACE})
+    return()
+endif()
+
+set(MY_NAME "ilmbase")
+
+set($${MY_NAME}_INCLUDE_DIR $${CMAKE_CURRENT_LIST_DIR}/ilmbase/include 
+                           $${CMAKE_CURRENT_LIST_DIR}/ilmbase/include/OpenEXR)
+
+set(_LIBS_DIR $${CMAKE_CURRENT_LIST_DIR}/ilmbase/lib)
+set($${MY_NAME}_LIBRARY_DEBUG   $${_LIBS_DIR}/IlmImfUtil-2_3_s_d.lib
+                                $${_LIBS_DIR}/IlmImf-2_3_s_d.lib
+                                $${_LIBS_DIR}/Half-2_3_s_d.lib
+                                $${_LIBS_DIR}/Iex-2_3_s_d.lib
+                                $${_LIBS_DIR}/IexMath-2_3_s_d.lib
+                                $${_LIBS_DIR}/IlmThread-2_3_s_d.lib
+                                $${_LIBS_DIR}/Imath-2_3_s_d.lib)
+set($${MY_NAME}_LIBRARY_RELEASE $${_LIBS_DIR}/IlmImfUtil-2_3_s.lib
+                                $${_LIBS_DIR}/IlmImf-2_3_s.lib
+                                $${_LIBS_DIR}/Half-2_3_s.lib
+                                $${_LIBS_DIR}/Iex-2_3_s.lib
+                                $${_LIBS_DIR}/IexMath-2_3_s.lib
+                                $${_LIBS_DIR}/IlmThread-2_3_s.lib
+                                $${_LIBS_DIR}/Imath-2_3_s.lib)
+endif()
+
+# we set it to a generator expression for multi-config situations:
+set($${MY_NAME}_LIBRARY  
+    "$$<$$<CONFIG:profile>:$${$${MY_NAME}_LIBRARY_RELEASE}>"
+    "$$<$$<CONFIG:Release>:$${$${MY_NAME}_LIBRARY_RELEASE}>"
+    "$$<$$<CONFIG:Debug>:$${$${MY_NAME}_LIBRARY_DEBUG}>")
+
+add_library($${TARGET_WITH_NAMESPACE} INTERFACE IMPORTED GLOBAL)
+ly_target_include_system_directories(TARGET $${TARGET_WITH_NAMESPACE} INTERFACE $${$${MY_NAME}_INCLUDE_DIR})
+target_link_libraries($${TARGET_WITH_NAMESPACE} INTERFACE $${$${MY_NAME}_LIBRARY})
+
+set($${MY_NAME}_FOUND True)

+ 23 - 0
package-system/OpenEXR/README.md

@@ -0,0 +1,23 @@
+# Ilmbase Build From Source Instructions #
+## Prerequisites ##
+* 3p-package-scripts (https://github.com/o3de/3p-package-scripts)
+
+## Instructions ##
+1. Print packages available. Look for zlib and ilmbase versions to build from source
+    ```
+    cd 3p-package-source
+    python ..\3p-package-scripts\o3de_package_scripts\list_packages.py --search_path .
+    ```
+2. Build zlib
+    ```
+    cd 3p-package-source
+    python ..\3p-package-scripts\o3de_package_scripts\build_package.py --search_path . <zlib_version>
+    # e.g. zlib_version=zlib-1.2.11-rev1-windows
+    ```
+3. Build ilmbase
+    ```
+    cd 3p-package-source
+    python ..\3p-package-scripts\o3de_package_scripts\build_package.py --search_path . <ilmbase_version>
+    # e.g. ilmbase_version=ilmbase-2.3.0-rev4-windows
+    ```
+4. Build artifacts will be located in the packages folder.

+ 119 - 0
package-system/OpenEXR/build_config.json

@@ -0,0 +1,119 @@
+{
+   "git_url":"https://github.com/AcademySoftwareFoundation/openexr.git",
+   "git_tag":"RB-2.3",
+   "package_name":"ilmbase",
+   "package_version":"2.3.0-rev4",
+   "package_url":"https://github.com/03de/OpenEXR",
+   "package_license":"Apache-2.0",
+   "package_license_file":"LICENSE",
+   "cmake_find_target":"Findilmbase.cmake",
+   "Platforms":{
+      "Windows":{
+         "Windows":{
+            "cmake_find_template":"Findilmbase.cmake.Windows",
+            "cmake_generate_args_debug":[
+               "-G",
+               "\"Visual Studio 16 2019\"",
+               "-A",
+               "x64",
+               "-T",
+               "host=x64",
+               "-DOPENEXR_BUILD_PYTHON_LIBS=OFF",
+               "-DOPENEXR_BUILD_TESTS=OFF",
+               "-DOPENEXR_BUILD_UTILS=OFF",
+               "-DOPENEXR_BUILD_SHARED=OFF",
+               "-DOPENEXR_BUILD_STATIC=ON",
+               "-DCMAKE_INSTALL_PREFIX=\"../../ilmbase-windows/ilmbase\"",
+               "-DCMAKE_BUILD_TYPE=Debug",
+               "-DZLIB_ROOT=../../../zlib-windows/zlib"
+            ],
+            "cmake_generate_args_release":[
+               "-G",
+               "\"Visual Studio 16 2019\"",
+               "-A",
+               "x64",
+               "-T",
+               "host=x64",
+               "-DOPENEXR_BUILD_PYTHON_LIBS=OFF",
+               "-DOPENEXR_BUILD_TESTS=OFF",
+               "-DOPENEXR_BUILD_UTILS=OFF",
+               "-DOPENEXR_BUILD_SHARED=OFF",
+               "-DOPENEXR_BUILD_STATIC=ON",
+               "-DCMAKE_INSTALL_PREFIX=\"../../ilmbase-windows/ilmbase\"",
+               "-DCMAKE_BUILD_TYPE=Release",
+               "-DZLIB_ROOT=../../../zlib-windows/zlib"
+            ],
+            "cmake_build_args":[
+               "-j"
+            ]
+         }
+      },
+      "Darwin":{
+         "Mac":{
+            "cmake_find_template":"Findilmbase.cmake.Mac",
+            "cmake_generate_args_debug":[
+               "-G",
+               "Xcode",
+               "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.13",
+               "-DOPENEXR_BUILD_PYTHON_LIBS=OFF",
+               "-DOPENEXR_BUILD_TESTS=OFF",
+               "-DOPENEXR_BUILD_UTILS=OFF",
+               "-DOPENEXR_BUILD_SHARED=OFF",
+               "-DOPENEXR_BUILD_STATIC=ON",
+               "-DCMAKE_INSTALL_PREFIX=\"../../ilmbase-mac/ilmbase\"",
+               "-DCMAKE_BUILD_TYPE=Debug",
+               "-DZLIB_ROOT=../../../zlib-windows/zlib"
+            ],
+            "cmake_generate_args_release":[
+               "-G",
+               "Xcode",
+               "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.13",
+               "-DOPENEXR_BUILD_PYTHON_LIBS=OFF",
+               "-DOPENEXR_BUILD_TESTS=OFF",
+               "-DOPENEXR_BUILD_UTILS=OFF",
+               "-DOPENEXR_BUILD_SHARED=OFF",
+               "-DOPENEXR_BUILD_STATIC=ON",
+               "-DCMAKE_INSTALL_PREFIX=\"../../ilmbase-mac/ilmbase\"",
+               "-DCMAKE_BUILD_TYPE=Release",
+               "-DZLIB_ROOT=../../../zlib-windows/zlib"
+            ],
+            "cmake_build_args":[
+               "-j",
+               "8"
+            ]
+         }
+      },
+      "Linux":{
+         "Linux":{
+            "cmake_find_template":"Findilmbase.cmake.Linux",
+            "cmake_generate_args_debug":[
+               "-G",
+               "Ninja",
+               "-DOPENEXR_BUILD_PYTHON_LIBS=OFF",
+               "-DOPENEXR_BUILD_TESTS=OFF",
+               "-DOPENEXR_BUILD_UTILS=OFF",
+               "-DOPENEXR_BUILD_SHARED=OFF",
+               "-DOPENEXR_BUILD_STATIC=ON",
+               "-DCMAKE_INSTALL_PREFIX=\"../../ilmbase-linux/ilmbase\"",
+               "-DCMAKE_BUILD_TYPE=Debug",
+               "-DZLIB_ROOT=../../../zlib-windows/zlib"
+            ],
+            "cmake_generate_args_release":[
+               "-G",
+               "Ninja",
+               "-DOPENEXR_BUILD_PYTHON_LIBS=OFF",
+               "-DOPENEXR_BUILD_TESTS=OFF",
+               "-DOPENEXR_BUILD_UTILS=OFF",
+               "-DOPENEXR_BUILD_SHARED=OFF",
+               "-DOPENEXR_BUILD_STATIC=ON",
+               "-DCMAKE_INSTALL_PREFIX=\"../../ilmbase-linux/ilmbase\"",
+               "-DCMAKE_BUILD_TYPE=Release",
+               "-DZLIB_ROOT=../../../zlib-windows/zlib"
+            ],
+            "cmake_build_args":[
+               "-j"
+            ]
+         }
+      }
+   }
+}

+ 2 - 0
package_build_list_host_darwin.json

@@ -20,6 +20,7 @@
         "libsamplerate-0.2.1-rev2-ios": "Scripts/extras/pull_and_build_from_git.py ../../package-system/libsamplerate --platform-name iOS --package-root ../../package-system --clean",
         "OpenSSL-1.1.1b-rev2-mac": "package-system/OpenSSL/build_package_image.py",
         "OpenSSL-1.1.1b-rev2-ios": "package-system/OpenSSL/build_package_image.py --platform ios",
+        "ilmbase-2.3.0-rev5-mac": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenEXR --platform-name Mac --package-root ../../package-system --clean",
         "PhysX-4.1.2.29882248-rev3-mac": "package-system/PhysX/build_package_image.py --platform mac",
         "PhysX-4.1.2.29882248-rev3-ios": "package-system/PhysX/build_package_image.py --platform ios",
         "NvCloth-v1.1.6-4-gd243404-pr58-rev1-mac": "package-system/NvCloth/build_package_image.py --platform-name mac",
@@ -55,6 +56,7 @@
         "libsamplerate-0.2.1-rev2-ios": "package-system/libsamplerate-ios",
         "OpenSSL-1.1.1b-rev2-mac": "package-system/OpenSSL-mac",
         "OpenSSL-1.1.1b-rev2-ios": "package-system/OpenSSL-ios",
+        "ilmbase-2.3.0-rev5-mac": "package-system/ilmbase-mac",
         "tiff-4.2.0.10-mac" : "package-system/tiff-mac",
         "tiff-4.2.0.10-ios" : "package-system/tiff-ios",
         "python-3.7.10-rev1-darwin" : "package-system/python/darwin_x64/package",

+ 2 - 0
package_build_list_host_linux.json

@@ -14,6 +14,7 @@
         "libsamplerate-0.2.1-rev2-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/libsamplerate --platform-name Linux --package-root ../../package-system --clean",
         "mcpp-2.7.2_az.1-rev1-linux": "package-system/mcpp/get_and_build_mcpp.py mcpp-2.7.2_az.1-rev1",
         "OpenSSL-1.1.1b-rev2-linux": "package-system/OpenSSL/build_package_image.py",
+        "ilmbase-2.3.0-rev5-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenEXR --platform-name Linux --package-root ../../package-system --clean",
         "PhysX-4.1.2.29882248-rev3-linux": "package-system/PhysX/build_package_image.py --platform-name linux",
         "NvCloth-v1.1.6-4-gd243404-pr58-rev1-linux": "package-system/NvCloth/build_package_image.py --platform-name linux",
         "poly2tri-7f0487a-rev1-linux": "package-system/poly2tri/build_package_image.py --platform-name linux",
@@ -38,6 +39,7 @@
         "libsamplerate-0.2.1-rev2-linux": "package-system/libsamplerate-linux",
         "mcpp-2.7.2_az.1-rev1-linux": "package-system/mcpp-linux",
         "OpenSSL-1.1.1b-rev2-linux": "package-system/OpenSSL-linux",
+        "ilmbase-2.3.0-rev5-linux": "package-system/ilmbase-linux",
         "SPIRVCross-2021.04.29-rev1-linux": "package-system/SPIRVCross-linux",
         "DirectXShaderCompilerDxc-1.6.2104-o3de-rev2-linux": "package-system/DirectXShaderCompilerDxc-linux",
         "azslc-1.7.23-rev2-linux": "package-system/azslc-linux",

+ 2 - 1
package_build_list_host_windows.json

@@ -24,6 +24,7 @@
         "mcpp-2.7.2_az.1-rev1-windows": "package-system/mcpp/get_and_build_mcpp.py mcpp-2.7.2_az.1-rev1",
         "OpenSSL-1.1.1b-rev2-windows": "package-system/OpenSSL/build_package_image.py",
         "OpenSSL-1.1.1b-rev1-android": "package-system/OpenSSL/build_package_image.py --platform-name android",
+        "ilmbase-2.3.0-rev4-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenEXR --platform-name Windows --package-root ../../package-system --clean",
         "SPIRVCross-2021.04.29-rev1-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/SPIRVCross --platform-name Windows --package-root ../../package-system --clean",
         "DirectXShaderCompilerDxc-1.6.2104-o3de-rev2-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/DirectXShaderCompiler --platform-name Windows --package-root ../../package-system --clean",
         "azslc-1.7.23-rev2-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/azslc --platform-name Windows --package-root ../../package-system --clean",
@@ -69,7 +70,7 @@
     "pybind11-2.4.3-rev1-multiplatform": "package-system/pybind11-multiplatform",
     "alembic-1.7.11-rev3-multiplatform": "package-system/alembic-multiplatform",
     "hdf5-1.0.11-rev2-multiplatform": "package-system/hdf5-multiplatform",
-    "ilmbase-2.3.0-rev4-multiplatform": "package-system/ilmbase-multiplatform",
+    "ilmbase-2.3.0-rev4-windows": "package-system/ilmbase-windows",
     "assimp-5.0.1-rev11-multiplatform": "package-system/assimp-multiplatform",
     "squish-ccr-20150601-rev3-multiplatform": "package-system/squish-ccr-multiplatform",
     "md5-2.0-multiplatform": "package-system/md5-multiplatform",