Browse Source

Updated OIIO/OCIO build to be shared instead of static and several other packaging changes

Signed-off-by: Chris Galvan <[email protected]>
Chris Galvan 3 years ago
parent
commit
35e36e4f16

+ 59 - 26
package-system/openimageio-opencolorio/build_openimageio.py

@@ -37,6 +37,7 @@ that there is no patent danger.
 '''
 '''
 
 
 import argparse
 import argparse
+import glob
 import json
 import json
 import os
 import os
 import platform
 import platform
@@ -145,7 +146,7 @@ def exec_and_exit_if_failed(invoke_params, cwd=script_folder, shell=False):
     result_value = subprocess.run(invoke_params, shell=shell, cwd=cwd)
     result_value = subprocess.run(invoke_params, shell=shell, cwd=cwd)
     if result_value.returncode != 0:
     if result_value.returncode != 0:
         print(f"Exec: Failed with return code {result_value}")
         print(f"Exec: Failed with return code {result_value}")
-        sys.exit(0)
+        sys.exit(1)
     return result_value.returncode
     return result_value.returncode
 
 
 # only clones the repo if it doesn't exist.  Otherwise cleans it.
 # only clones the repo if it doesn't exist.  Otherwise cleans it.
@@ -289,7 +290,7 @@ def BuildOpenColorIO(module_paths_to_use, release=True):
                 f'-Dexpat_STATIC_LIBRARY=ON',
                 f'-Dexpat_STATIC_LIBRARY=ON',
                 f'-DCMAKE_INSTALL_PREFIX={ocio_install_path}',
                 f'-DCMAKE_INSTALL_PREFIX={ocio_install_path}',
                 f'-DCMAKE_BUILD_TYPE={build_type}',
                 f'-DCMAKE_BUILD_TYPE={build_type}',
-                f'-DBUILD_SHARED_LIBS=OFF',
+                f'-DBUILD_SHARED_LIBS=ON',
                 f'-DCMAKE_CXX_STANDARD=17',
                 f'-DCMAKE_CXX_STANDARD=17',
                 f'-DOCIO_BUILD_APPS=ON',
                 f'-DOCIO_BUILD_APPS=ON',
                 f'-DOCIO_BUILD_OPENFX=OFF',
                 f'-DOCIO_BUILD_OPENFX=OFF',
@@ -563,7 +564,7 @@ def BuildOpenImageIO(release=True):
         f'-DCMAKE_INSTALL_PREFIX={oiio_install_path}',
         f'-DCMAKE_INSTALL_PREFIX={oiio_install_path}',
         f'-DPNG_ROOT={get_dependency_path(args.platform, "libpng") / "libpng"}',
         f'-DPNG_ROOT={get_dependency_path(args.platform, "libpng") / "libpng"}',
         f'-DCMAKE_BUILD_TYPE={build_type}',
         f'-DCMAKE_BUILD_TYPE={build_type}',
-        f'-DBUILD_SHARED_LIBS=OFF',
+        f'-DBUILD_SHARED_LIBS=ON',
         f'-DCMAKE_CXX_STANDARD=17',
         f'-DCMAKE_CXX_STANDARD=17',
         f'-DPYTHON_VERSION={expected_python_version}',
         f'-DPYTHON_VERSION={expected_python_version}',
         f'-DOIIO_BUILD_TESTS=OFF',
         f'-DOIIO_BUILD_TESTS=OFF',
@@ -713,28 +714,10 @@ print("Copying OpenColorIO")
 shutil.copytree(src=ocio_install_path, dst=final_package_image_root / 'OpenColorIO')
 shutil.copytree(src=ocio_install_path, dst=final_package_image_root / 'OpenColorIO')
 shutil.copy2(src=script_folder / 'distribution' / 'FindOpenColorIO.cmake', dst=final_package_image_root / 'FindOpenColorIO.cmake')
 shutil.copy2(src=script_folder / 'distribution' / 'FindOpenColorIO.cmake', dst=final_package_image_root / 'FindOpenColorIO.cmake')
 
 
-# the following are considered private dependencies, do not depend on them!
-print("Copying LibJPEGTurbo")
-shutil.copytree(src=libjpegturbo_install_path, dst=private_deps_folder / 'LibJPEGTurbo')
-print("Copying Boost")
-shutil.copytree(src=boost_install_path, dst=private_deps_folder / 'Boost')
-print("Copying pystring")
-shutil.copytree(src=temp_folder_path / 'pystring_install', dst=private_deps_folder / 'pystring')
-print("Copying yaml-cpp")
-shutil.copytree(src=temp_folder_path / 'yaml-cpp_install', dst=private_deps_folder / 'yaml-cpp')
-
 print("Cleaning unnecessary/private files")
 print("Cleaning unnecessary/private files")
-# we don't actually want to expose this copy of boost as being something people can use
-# and the OpenImageIO library doesn't expose any boost usage in its public API, so we can remove all the headers.
 # note that we delete the cmake and pkgconfig files since they contain absolute paths to the machine
 # note that we delete the cmake and pkgconfig files since they contain absolute paths to the machine
 # that they were built on, and won't be useful anyway
 # that they were built on, and won't be useful anyway
 # Ignore errors when removing the pkgconfig folders since they won't be present on windows
 # Ignore errors when removing the pkgconfig folders since they won't be present on windows
-shutil.rmtree(path=private_deps_folder / 'Boost' / 'include')
-shutil.rmtree(path=private_deps_folder / 'Boost' / 'lib' / 'cmake')
-shutil.rmtree(path=private_deps_folder / 'LibJPEGTurbo' / 'include')
-shutil.rmtree(path=private_deps_folder / 'LibJPEGTurbo' / 'bin')
-shutil.rmtree(path=private_deps_folder / 'LibJPEGTurbo' / 'lib' / 'cmake')
-shutil.rmtree(path=private_deps_folder / 'LibJPEGTurbo' / 'lib' / 'pkgconfig', ignore_errors=True)
 shutil.rmtree(path=final_package_image_root / 'OpenColorIO' / 'lib' / 'pkgconfig', ignore_errors=True)
 shutil.rmtree(path=final_package_image_root / 'OpenColorIO' / 'lib' / 'pkgconfig', ignore_errors=True)
 shutil.rmtree(path=final_package_image_root / 'OpenColorIO' / 'lib' / 'cmake')
 shutil.rmtree(path=final_package_image_root / 'OpenColorIO' / 'lib' / 'cmake')
 shutil.rmtree(path=final_package_image_root / 'OpenColorIO' / 'share')
 shutil.rmtree(path=final_package_image_root / 'OpenColorIO' / 'share')
@@ -742,6 +725,20 @@ shutil.rmtree(path=final_package_image_root / 'OpenColorIO' / 'share')
 shutil.rmtree(path=final_package_image_root / 'OpenImageIO' / 'lib' / 'pkgconfig', ignore_errors=True)
 shutil.rmtree(path=final_package_image_root / 'OpenImageIO' / 'lib' / 'pkgconfig', ignore_errors=True)
 shutil.rmtree(path=final_package_image_root / 'OpenImageIO' / 'lib' / 'cmake')
 shutil.rmtree(path=final_package_image_root / 'OpenImageIO' / 'lib' / 'cmake')
 
 
+# Remove the fonts from OpenImageIO since they just bloat the package
+shutil.rmtree(path=final_package_image_root / 'OpenImageIO' / 'share' / 'fonts')
+
+# On Windows only, the OpenImageIO install includes several MSVC runtime dlls we don't want to ship:
+#   concrt, msvc*, and vcruntime*
+# So look through the OpenImageIO package bin directory and remove any dlls that aren't
+# explicitly from the OpenImageIO library itself
+if args.platform == "windows":
+    oiio_dlls = final_package_image_root / 'OpenImageIO' / 'bin' / '*.dll'
+    for file_path in glob.glob(oiio_dlls.as_posix()):
+        file_name = pathlib.Path(file_path).name
+        if not file_name.startswith('OpenImageIO'):
+            os.remove(file_path)
+
 # Generate our PackageInfo.json dynamically for the platform, and pretty
 # Generate our PackageInfo.json dynamically for the platform, and pretty
 # print the JSON so that it's human readable
 # print the JSON so that it's human readable
 print("Generating PackageInfo.json")
 print("Generating PackageInfo.json")
@@ -749,7 +746,7 @@ platform_name = args.platform.lower()
 if platform_name == "darwin":
 if platform_name == "darwin":
     platform_name = "mac" # Our convention in the package list is to use mac
     platform_name = "mac" # Our convention in the package list is to use mac
 package_info = {
 package_info = {
-    "PackageName" : f"openimageio-opencolorio-2.3.12.0-{platform_name}",
+    "PackageName" : f"openimageio-opencolorio-2.3.12.0-rev2-{platform_name}",
     "URL"         : "https://github.com/OpenImageIO/oiio and https://opencolorio.org/",
     "URL"         : "https://github.com/OpenImageIO/oiio and https://opencolorio.org/",
     "License"     : "BSD-3-Clause",
     "License"     : "BSD-3-Clause",
     "LicenseFile" : "LICENSE.TXT"
     "LicenseFile" : "LICENSE.TXT"
@@ -766,12 +763,29 @@ shutil.copy2(src=script_folder / 'distribution' / 'LICENSE.TXT', dst=final_packa
 # we also have to include other license files when the install step for the package doesn't do it themselves
 # we also have to include other license files when the install step for the package doesn't do it themselves
 shutil.copy2(src=source_folder_path / 'opencolorio' / 'LICENSE', dst=final_package_image_root / 'OpenColorIO' / 'LICENSE')
 shutil.copy2(src=source_folder_path / 'opencolorio' / 'LICENSE', dst=final_package_image_root / 'OpenColorIO' / 'LICENSE')
 shutil.copy2(src=source_folder_path / 'opencolorio' / 'THIRD-PARTY.md', dst=final_package_image_root / 'OpenColorIO' / 'THIRD-PARTY.md')
 shutil.copy2(src=source_folder_path / 'opencolorio' / 'THIRD-PARTY.md', dst=final_package_image_root / 'OpenColorIO' / 'THIRD-PARTY.md')
-shutil.copy2(src=source_folder_path / 'boost' / 'LICENSE_1_0.txt', dst=private_deps_folder / 'Boost' / 'LICENSE_1_0.txt')
-shutil.copy2(src=source_folder_path / 'boost' / 'README.md', dst=private_deps_folder / 'Boost' / 'README.md')
-shutil.copy2(src=private_deps_folder / 'LibJPEGTurbo' / 'share' / 'doc' / 'libjpeg-turbo' / 'LICENSE.md', dst=private_deps_folder / 'LibJPEGTurbo' / 'LICENSE.md')
+
+os.makedirs(private_deps_folder / 'Boost', exist_ok=True)
+shutil.copy2(src=source_folder_path / 'boost' / 'LICENSE_1_0.txt', dst=private_deps_folder / 'Boost')
+shutil.copy2(src=source_folder_path / 'boost' / 'README.md', dst=private_deps_folder / 'Boost')
+
+os.makedirs(private_deps_folder / 'LibJPEGTurbo', exist_ok=True)
+shutil.copy2(src=libjpegturbo_install_path / 'share' / 'doc' / 'libjpeg-turbo' / 'LICENSE.md', dst=private_deps_folder / 'LibJPEGTurbo')
+
+os.makedirs(private_deps_folder / 'pystring', exist_ok=True)
+shutil.copy2(src=pystring_install_path / 'LICENSE', dst=private_deps_folder / 'pystring')
+
+os.makedirs(private_deps_folder / 'yaml-cpp', exist_ok=True)
+shutil.copy2(src=yamlcpp_install_path / 'LICENSE', dst=private_deps_folder / 'yaml-cpp')
 
 
 print("\n----------------------------- Test package image -----------------------------")
 print("\n----------------------------- Test package image -----------------------------")
 
 
+if args.platform == 'darwin':
+    shared_lib_suffix = '.dylib'
+elif args.platform == 'windows':
+    shared_lib_suffix = '.dll'
+else: # linux
+    shared_lib_suffix = '.so'
+
 def TestOpenImageIO(release=True):
 def TestOpenImageIO(release=True):
     build_type = 'Release' if release else 'Debug'
     build_type = 'Release' if release else 'Debug'
     test_configure_command = [
     test_configure_command = [
@@ -815,13 +829,25 @@ def TestOpenImageIO(release=True):
         test_executable_path = test_build_folder / 'test_OpenImageIO.app' / 'Contents' / 'MacOS' / 'test_OpenImageIO'
         test_executable_path = test_build_folder / 'test_OpenImageIO.app' / 'Contents' / 'MacOS' / 'test_OpenImageIO'
     elif args.platform == 'windows':
     elif args.platform == 'windows':
         test_executable_path = test_build_folder / f'{build_type}' / 'test_OpenImageIO.exe'
         test_executable_path = test_build_folder / f'{build_type}' / 'test_OpenImageIO.exe'
-    else:
+    else: # linux
         test_executable_path = test_build_folder / 'test_OpenImageIO'
         test_executable_path = test_build_folder / 'test_OpenImageIO'
 
 
     test_exec_command = [
     test_exec_command = [
         test_executable_path
         test_executable_path
     ]
     ]
 
 
+    # Manual copy of runtime dependencies (the OCIO/OIIO shared libs) to the
+    # test executable folder so that the executable can run
+    test_executable_dir = test_executable_path.parent
+    ocio_debug = ''
+    oiio_debug = ''
+    if not release:
+        ocio_debug = 'd'
+        oiio_debug = '_d'
+    shutil.copy2(src=final_package_image_root / 'OpenColorIO' / 'bin' / f'{lib_prefix}OpenColorIO{ocio_debug}_2_1{shared_lib_suffix}', dst=test_executable_dir)
+    shutil.copy2(src=final_package_image_root / 'OpenImageIO' / 'bin' / f'{lib_prefix}OpenImageIO{oiio_debug}{shared_lib_suffix}', dst=test_executable_dir)
+    shutil.copy2(src=final_package_image_root / 'OpenImageIO' / 'bin' / f'{lib_prefix}OpenImageIO_Util{oiio_debug}{shared_lib_suffix}', dst=test_executable_dir)
+
     exec_and_exit_if_failed(test_exec_command, cwd=test_script_folder)
     exec_and_exit_if_failed(test_exec_command, cwd=test_script_folder)
 
 
 module_path_string_with_package_folder = module_path_string + f';{final_package_image_root.as_posix()}'
 module_path_string_with_package_folder = module_path_string + f';{final_package_image_root.as_posix()}'
@@ -852,6 +878,13 @@ else:
 sys.path.insert(1, str(test_script_folder.absolute().resolve()))
 sys.path.insert(1, str(test_script_folder.absolute().resolve()))
 sys.path.insert(1, str(oiio_site_packages.absolute().resolve()))
 sys.path.insert(1, str(oiio_site_packages.absolute().resolve()))
 sys.path.insert(1, str(ocio_site_packages.absolute().resolve()))
 sys.path.insert(1, str(ocio_site_packages.absolute().resolve()))
+
+# Also need to add OpenColorIO and OpenImageIO bin directories to the PATH
+# so their shared libs can be found
+ocio_bin = final_package_image_root / 'OpenColorIO' / 'bin'
+oiio_bin = final_package_image_root / 'OpenImageIO' / 'bin'
+os.environ["PATH"] = f"{str(ocio_bin.absolute().resolve())}{os.pathsep}{str(oiio_bin.absolute().resolve())}{os.pathsep}{os.environ['PATH']}"
+
 from python_tests import test_OpenImageIO, test_OpenColorIO
 from python_tests import test_OpenImageIO, test_OpenColorIO
 
 
 if not test_OpenImageIO():
 if not test_OpenImageIO():

+ 0 - 9
package-system/openimageio-opencolorio/custom_find_files/FindOpenColorIO.cmake

@@ -51,12 +51,3 @@ find_library(yaml_cpp_LIBRARY NAMES libyaml-cpp yaml-cpp HINTS ${YAMLCPP_INSTALL
 add_library(yaml-cpp UNKNOWN IMPORTED GLOBAL)
 add_library(yaml-cpp UNKNOWN IMPORTED GLOBAL)
 set_target_properties(yaml-cpp PROPERTIES IMPORTED_LOCATION ${yaml_cpp_LIBRARY}
 set_target_properties(yaml-cpp PROPERTIES IMPORTED_LOCATION ${yaml_cpp_LIBRARY}
 )
 )
-
-# On Windows only, we need to make sure that this is built statically
-# and anything linking against OpenColorIO will link statically as well
-if(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
-    target_compile_definitions(OpenColorIO::OpenColorIO
-        INTERFACE
-            OpenColorIO_SKIP_IMPORTS
-    )
-endif()

+ 39 - 23
package-system/openimageio-opencolorio/distribution/FindOpenColorIO.cmake

@@ -30,40 +30,33 @@ set(OpenColorIO_BIN_DIR ${CMAKE_CURRENT_LIST_DIR}/OpenColorIO/bin)
 set(OpenColorIO_FOUND True)
 set(OpenColorIO_FOUND True)
 set(OpenColorIO_VERSION "2.1.1")
 set(OpenColorIO_VERSION "2.1.1")
 
 
-add_library(OpenColorIO::OpenColorIO STATIC IMPORTED GLOBAL)
-set_target_properties(OpenColorIO::OpenColorIO PROPERTIES 
-    IMPORTED_LOCATION ${OpenColorIO_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}OpenColorIO${CMAKE_STATIC_LIBRARY_SUFFIX}
-    INTERFACE_COMPILE_DEFINITIONS "OIIO_STATIC_DEFINE=1"
+set(OpenColorIO_SHARED_LIB ${OpenColorIO_BIN_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}OpenColorIO_2_1${CMAKE_SHARED_LIBRARY_SUFFIX})
+
+add_library(OpenColorIO::OpenColorIO SHARED IMPORTED GLOBAL)
+set_target_properties(OpenColorIO::OpenColorIO PROPERTIES
+    IMPORTED_LOCATION ${OpenColorIO_SHARED_LIB}
 )
 )
 
 
 # windows has Debug libraries available.
 # windows has Debug libraries available.
-set(_OCIO_DEBUG_POSTFIX "")
 if (${CMAKE_SYSTEM_NAME} STREQUAL Windows)
 if (${CMAKE_SYSTEM_NAME} STREQUAL Windows)
+    set(_OCIO_DEBUG_POSTFIX "")
     if ("${CMAKE_BUILD_TYPE}" STREQUAL Debug)
     if ("${CMAKE_BUILD_TYPE}" STREQUAL Debug)
         set(_OCIO_DEBUG_POSTFIX "d")
         set(_OCIO_DEBUG_POSTFIX "d")
-    endif()
+        set(OpenColorIO_SHARED_LIB_DEBUG ${OpenColorIO_BIN_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}OpenColorIO${_OCIO_DEBUG_POSTFIX}_2_1${CMAKE_SHARED_LIBRARY_SUFFIX})
 
 
-    set_target_properties(OpenColorIO::OpenColorIO PROPERTIES 
-    IMPORTED_LOCATION_DEBUG ${OpenColorIO_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}OpenColorIO${_OCIO_DEBUG_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
-
-    # On Windows the yaml lib is built with an extra "md" suffix
-    set(_yaml-cpp_LIB_SUFFIX "md")
+        set_target_properties(OpenColorIO::OpenColorIO PROPERTIES
+            IMPORTED_LOCATION_DEBUG ${OpenColorIO_SHARED_LIB_DEBUG}
+            IMPORTED_IMPLIB_DEBUG ${OpenColorIO_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}OpenColorIO${_OCIO_DEBUG_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
+        )
+    endif()
 
 
-    # On Windows only, we need to make sure that this is built statically
-    # and anything linking against OpenColorIO will link statically as well
-    target_compile_definitions(OpenColorIO::OpenColorIO
-        INTERFACE
-            OpenColorIO_SKIP_IMPORTS
+    set_target_properties(OpenColorIO::OpenColorIO PROPERTIES
+        IMPORTED_IMPLIB ${OpenColorIO_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}OpenColorIO${CMAKE_STATIC_LIBRARY_SUFFIX}
     )
     )
 endif()
 endif()
 
 
-
 target_link_libraries(OpenColorIO::OpenColorIO INTERFACE 
 target_link_libraries(OpenColorIO::OpenColorIO INTERFACE 
     Imath::Imath
     Imath::Imath
-    expat::expat
-    # private dependencies that we intentionally DO NOT WANT to create friendly targets for:
-    ${CMAKE_CURRENT_LIST_DIR}/privatedeps/pystring/lib/${CMAKE_STATIC_LIBRARY_PREFIX}pystring${_OCIO_DEBUG_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
-    ${CMAKE_CURRENT_LIST_DIR}/privatedeps/yaml-cpp/lib/libyaml-cpp${_yaml-cpp_LIB_SUFFIX}${_OCIO_DEBUG_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
 )
 )
 
 
 if (COMMAND ly_target_include_system_directories)
 if (COMMAND ly_target_include_system_directories)
@@ -95,15 +88,38 @@ set(OpenColorIO_TOOLS_BINARIES
     ${OpenColorIO_BIN_DIR}/ociowrite${CMAKE_EXECUTABLE_SUFFIX}
     ${OpenColorIO_BIN_DIR}/ociowrite${CMAKE_EXECUTABLE_SUFFIX}
 )
 )
 
 
+add_library(OpenColorIO::OpenColorIO::Runtime INTERFACE IMPORTED GLOBAL)
 add_library(OpenColorIO::OpenColorIO::Tools::Binaries INTERFACE IMPORTED GLOBAL)
 add_library(OpenColorIO::OpenColorIO::Tools::Binaries INTERFACE IMPORTED GLOBAL)
 add_library(OpenColorIO::OpenColorIO::Tools::PythonPlugins INTERFACE IMPORTED GLOBAL)
 add_library(OpenColorIO::OpenColorIO::Tools::PythonPlugins INTERFACE IMPORTED GLOBAL)
 if (COMMAND ly_add_target_files)
 if (COMMAND ly_add_target_files)
-    ly_add_target_files(TARGETS OpenColorIO::OpenColorIO::Tools::Binaries FILES ${OpenColorIO_TOOLS_BINARIES})
-    ly_add_target_files(TARGETS OpenColorIO::OpenColorIO::Tools::PythonPlugins FILES ${OpenColorPythonBindings})
+    ly_add_target_files(TARGETS OpenColorIO::OpenColorIO FILES ${OpenColorIO_SHARED_LIB})
+
+    if (${CMAKE_SYSTEM_NAME} STREQUAL Windows AND "${CMAKE_BUILD_TYPE}" STREQUAL Debug)
+        ly_add_target_files(TARGETS OpenColorIO::OpenColorIO FILES ${OpenColorIO_SHARED_LIB_DEBUG})
+    endif()
+
+    ly_add_target_files(TARGETS OpenColorIO::OpenColorIO::Runtime FILES
+        ${OpenColorIO_SHARED_LIB}
+    )
+    ly_add_target_files(TARGETS OpenColorIO::OpenColorIO::Tools::Binaries FILES
+        ${OpenColorIO_TOOLS_BINARIES}
+    )
+    ly_add_target_files(TARGETS OpenColorIO::OpenColorIO::Tools::PythonPlugins FILES
+        ${OpenColorPythonBindings}
+    )
 endif()
 endif()
 
 
+# Make sure our tools get the runtime dependency (shared library)
+target_link_libraries(OpenColorIO::OpenColorIO::Tools::Binaries INTERFACE
+    OpenColorIO::OpenColorIO::Runtime
+)
+target_link_libraries(OpenColorIO::OpenColorIO::Tools::PythonPlugins INTERFACE
+    OpenColorIO::OpenColorIO::Runtime
+)
+
 # alias the OpenColorIO library to the O3DE 3rdParty library
 # alias the OpenColorIO library to the O3DE 3rdParty library
 add_library(3rdParty::OpenColorIO ALIAS OpenColorIO::OpenColorIO)
 add_library(3rdParty::OpenColorIO ALIAS OpenColorIO::OpenColorIO)
+add_library(3rdParty::OpenColorIO::Runtime ALIAS OpenColorIO::OpenColorIO::Runtime)
 add_library(3rdParty::OpenColorIO::Tools::Binaries ALIAS OpenColorIO::OpenColorIO::Tools::Binaries)
 add_library(3rdParty::OpenColorIO::Tools::Binaries ALIAS OpenColorIO::OpenColorIO::Tools::Binaries)
 add_library(3rdParty::OpenColorIO::Tools::PythonPlugins ALIAS OpenColorIO::OpenColorIO::Tools::PythonPlugins)
 add_library(3rdParty::OpenColorIO::Tools::PythonPlugins ALIAS OpenColorIO::OpenColorIO::Tools::PythonPlugins)
 
 

+ 58 - 48
package-system/openimageio-opencolorio/distribution/FindOpenImageIO.cmake

@@ -73,53 +73,21 @@ set(OpenImageIO_BIN_DIR ${CMAKE_CURRENT_LIST_DIR}/OpenImageIO/bin)
 set(OpenImageIO_VERSION "2.3.12.0")
 set(OpenImageIO_VERSION "2.3.12.0")
 set(OpenImageIO_FOUND True)
 set(OpenImageIO_FOUND True)
 
 
-add_library(OpenImageIO::OpenImageIO_Util STATIC IMPORTED GLOBAL)
+set(OpenImageIO_Util_SHARED_LIB ${OpenImageIO_BIN_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}OpenImageIO_Util${CMAKE_SHARED_LIBRARY_SUFFIX})
+set(OpenImageIO_SHARED_LIB ${OpenImageIO_BIN_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}OpenImageIO${CMAKE_SHARED_LIBRARY_SUFFIX})
+
+add_library(OpenImageIO::OpenImageIO_Util SHARED IMPORTED GLOBAL)
 set_target_properties(OpenImageIO::OpenImageIO_Util PROPERTIES 
 set_target_properties(OpenImageIO::OpenImageIO_Util PROPERTIES 
-    IMPORTED_LOCATION ${OpenImageIO_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}OpenImageIO_Util${CMAKE_STATIC_LIBRARY_SUFFIX})
+    IMPORTED_LOCATION ${OpenImageIO_Util_SHARED_LIB})
 
 
-add_library(OpenImageIO::OpenImageIO STATIC IMPORTED GLOBAL)
+add_library(OpenImageIO::OpenImageIO SHARED IMPORTED GLOBAL)
 set_target_properties(OpenImageIO::OpenImageIO PROPERTIES
 set_target_properties(OpenImageIO::OpenImageIO PROPERTIES
-    INTERFACE_COMPILE_DEFINITIONS "OIIO_STATIC_DEFINE=1"
-    IMPORTED_LOCATION ${OpenImageIO_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}OpenImageIO${CMAKE_STATIC_LIBRARY_SUFFIX})
-
-# The Boost and LibJPEGTurbo libs have special suffixes on windows
-# Also look if we need to expose our debug libraries on windows
-# if the CMAKE_BUILD_TYPE has been set to Debug
-set(_OIIO_DEBUG_POSTFIX "")
-if (${CMAKE_SYSTEM_NAME} STREQUAL Windows)
-    set(_boost_DEBUG_TAG "")
-    if ("${CMAKE_BUILD_TYPE}" STREQUAL Debug)
-        set(_OIIO_DEBUG_POSTFIX "_d")
-        set(_boost_DEBUG_TAG "-gd")
-    endif()
-
-    # Boost has their own special debug lib tagging we need to account for
-    set(_boost_LIB_SUFFIX "-vc142-mt${_boost_DEBUG_TAG}-x64-1_76")
-    set(_jpegTurbo_LIB_SUFFIX "-static")
-endif()
+    IMPORTED_LOCATION ${OpenImageIO_SHARED_LIB})
 
 
 target_link_libraries(OpenImageIO::OpenImageIO INTERFACE 
 target_link_libraries(OpenImageIO::OpenImageIO INTERFACE 
-    expat::expat
     OpenImageIO::OpenImageIO_Util
     OpenImageIO::OpenImageIO_Util
     OpenColorIO::OpenColorIO
     OpenColorIO::OpenColorIO
-    Imath::Imath
-    PNG::PNG
-    TIFF::TIFF
-    OpenEXR::OpenEXR
-    OpenEXR::OpenEXRCore
-    OpenEXR::OpenEXRUtil
-    ZLIB::ZLIB
-    Freetype::Freetype
     ${CMAKE_DL_LIBS}
     ${CMAKE_DL_LIBS}
-    # private dependencies that we intentionally DO NOT WANT to create friendly targets for:
-    ${CMAKE_CURRENT_LIST_DIR}/privatedeps/Boost/lib/libboost_atomic${_boost_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
-    ${CMAKE_CURRENT_LIST_DIR}/privatedeps/Boost/lib/libboost_chrono${_boost_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
-    ${CMAKE_CURRENT_LIST_DIR}/privatedeps/Boost/lib/libboost_date_time${_boost_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
-    ${CMAKE_CURRENT_LIST_DIR}/privatedeps/Boost/lib/libboost_filesystem${_boost_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
-    ${CMAKE_CURRENT_LIST_DIR}/privatedeps/Boost/lib/libboost_system${_boost_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
-    ${CMAKE_CURRENT_LIST_DIR}/privatedeps/Boost/lib/libboost_thread${_boost_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
-    ${CMAKE_CURRENT_LIST_DIR}/privatedeps/LibJPEGTurbo/lib/${CMAKE_STATIC_LIBRARY_PREFIX}turbojpeg${_jpegTurbo_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
-    ${CMAKE_CURRENT_LIST_DIR}/privatedeps/LibJPEGTurbo/lib/${CMAKE_STATIC_LIBRARY_PREFIX}jpeg${_jpegTurbo_LIB_SUFFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
 )
 )
 
 
 if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
 if(${CMAKE_SYSTEM_NAME} STREQUAL "Darwin")
@@ -157,21 +125,63 @@ set(OpenImageIO_TOOLS_BINARIES
     ${OpenImageIO_BIN_DIR}/oiiotool${CMAKE_EXECUTABLE_SUFFIX}
     ${OpenImageIO_BIN_DIR}/oiiotool${CMAKE_EXECUTABLE_SUFFIX}
 )
 )
 
 
-add_library(OpenImageIO::OpenImageIO::Tools::Binaries INTERFACE IMPORTED GLOBAL)
-add_library(OpenImageIO::OpenImageIO::Tools::PythonPlugins INTERFACE IMPORTED GLOBAL)
-if (COMMAND ly_add_target_files)
-    ly_add_target_files(TARGETS OpenImageIO::OpenImageIO::Tools::Binaries FILES ${OpenImageIO_TOOLS_BINARIES})
-    ly_add_target_files(TARGETS OpenImageIO::OpenImageIO::Tools::PythonPlugins FILES ${OpenImageIOPythonBindings})
-endif()
-
 #only windows ships with debug libraries:
 #only windows ships with debug libraries:
 if (${CMAKE_SYSTEM_NAME} STREQUAL Windows)
 if (${CMAKE_SYSTEM_NAME} STREQUAL Windows)
+    set(_OIIO_DEBUG_POSTFIX "")
+    if ("${CMAKE_BUILD_TYPE}" STREQUAL Debug)
+        set(_OIIO_DEBUG_POSTFIX "_d")
+        set(OpenImageIO_Util_SHARED_LIB_DEBUG ${OpenImageIO_BIN_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}OpenImageIO_Util${_OIIO_DEBUG_POSTFIX}${CMAKE_SHARED_LIBRARY_SUFFIX})
+        set(OpenImageIO_SHARED_LIB_DEBUG ${OpenImageIO_BIN_DIR}/${CMAKE_SHARED_LIBRARY_PREFIX}OpenImageIO${_OIIO_DEBUG_POSTFIX}${CMAKE_SHARED_LIBRARY_SUFFIX})
+
+        set_target_properties(OpenImageIO::OpenImageIO_Util PROPERTIES
+            IMPORTED_LOCATION_DEBUG ${OpenImageIO_Util_SHARED_LIB_DEBUG}
+            IMPORTED_IMPLIB_DEBUG ${OpenImageIO_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}OpenImageIO_Util${_OIIO_DEBUG_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
+        )
+        set_target_properties(OpenImageIO::OpenImageIO PROPERTIES
+            IMPORTED_LOCATION_DEBUG ${OpenImageIO_SHARED_LIB_DEBUG}
+            IMPORTED_IMPLIB_DEBUG ${OpenImageIO_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}OpenImageIO${_OIIO_DEBUG_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX}
+        )
+    endif()
+
     set_target_properties(OpenImageIO::OpenImageIO_Util PROPERTIES 
     set_target_properties(OpenImageIO::OpenImageIO_Util PROPERTIES 
-        IMPORTED_LOCATION_DEBUG ${OpenImageIO_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}OpenImageIO_Util${_OIIO_DEBUG_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
+        IMPORTED_IMPLIB ${OpenImageIO_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}OpenImageIO_Util${CMAKE_STATIC_LIBRARY_SUFFIX}
+    )
     set_target_properties(OpenImageIO::OpenImageIO PROPERTIES
     set_target_properties(OpenImageIO::OpenImageIO PROPERTIES
-        IMPORTED_LOCATION_DEBUG ${OpenImageIO_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}OpenImageIO${_OIIO_DEBUG_POSTFIX}${CMAKE_STATIC_LIBRARY_SUFFIX})
+        IMPORTED_IMPLIB ${OpenImageIO_LIB_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}OpenImageIO${CMAKE_STATIC_LIBRARY_SUFFIX}
+    )
+endif()
+
+add_library(OpenImageIO::OpenImageIO::Tools::Binaries INTERFACE IMPORTED GLOBAL)
+add_library(OpenImageIO::OpenImageIO::Tools::PythonPlugins INTERFACE IMPORTED GLOBAL)
+if (COMMAND ly_add_target_files)
+    ly_add_target_files(TARGETS OpenImageIO::OpenImageIO_Util FILES ${OpenImageIO_Util_SHARED_LIB})
+    ly_add_target_files(TARGETS OpenImageIO::OpenImageIO FILES ${OpenImageIO_SHARED_LIB})
+
+    if (${CMAKE_SYSTEM_NAME} STREQUAL Windows AND "${CMAKE_BUILD_TYPE}" STREQUAL Debug)
+        ly_add_target_files(TARGETS OpenImageIO::OpenImageIO_Util FILES ${OpenImageIO_Util_SHARED_LIB_DEBUG})
+        ly_add_target_files(TARGETS OpenImageIO::OpenImageIO FILES ${OpenImageIO_SHARED_LIB_DEBUG})
+    endif()
+
+    ly_add_target_files(TARGETS OpenImageIO::OpenImageIO::Tools::Binaries FILES
+        ${OpenImageIO_TOOLS_BINARIES}
+        ${OpenImageIO_Util_SHARED_LIB}
+        ${OpenImageIO_SHARED_LIB}
+    )
+    ly_add_target_files(TARGETS OpenImageIO::OpenImageIO::Tools::PythonPlugins FILES
+        ${OpenImageIOPythonBindings}
+        ${OpenImageIO_Util_SHARED_LIB}
+        ${OpenImageIO_SHARED_LIB}
+    )
 endif()
 endif()
 
 
+# Our OpenImageIO tools also depend on the OpenColorIO runtime (shared library)
+target_link_libraries(OpenImageIO::OpenImageIO::Tools::Binaries INTERFACE
+    OpenColorIO::OpenColorIO::Runtime
+)
+target_link_libraries(OpenImageIO::OpenImageIO::Tools::PythonPlugins INTERFACE
+    OpenColorIO::OpenColorIO::Runtime
+)
+
 # alias the OpenImageIO library to the O3DE 3rdParty library
 # alias the OpenImageIO library to the O3DE 3rdParty library
 add_library(3rdParty::OpenImageIO ALIAS OpenImageIO::OpenImageIO)
 add_library(3rdParty::OpenImageIO ALIAS OpenImageIO::OpenImageIO)
 add_library(3rdParty::OpenImageIO_Util ALIAS OpenImageIO::OpenImageIO_Util)
 add_library(3rdParty::OpenImageIO_Util ALIAS OpenImageIO::OpenImageIO_Util)

+ 4 - 1
package-system/openimageio-opencolorio/distribution/README.md

@@ -1,3 +1,6 @@
 The files in this folder are added to the package being built.
 The files in this folder are added to the package being built.
 For example, the LICENSE.TXT file applies to the package that is built, not
 For example, the LICENSE.TXT file applies to the package that is built, not
-to this repo.  It is copied into the package as part of building it.
+to this repo.  It is copied into the package as part of building it.
+
+For additional LICENSE files for the private build dependencies of
+these libraries, see the `privatedeps` folder.

+ 2 - 2
package_build_list_host_darwin.json

@@ -25,7 +25,7 @@
         "OpenSSL-1.1.1o-rev1-mac": "package-system/OpenSSL/build_package_image.py",
         "OpenSSL-1.1.1o-rev1-mac": "package-system/OpenSSL/build_package_image.py",
         "OpenSSL-1.1.1o-rev1-ios": "package-system/OpenSSL/build_package_image.py --platform ios",
         "OpenSSL-1.1.1o-rev1-ios": "package-system/OpenSSL/build_package_image.py --platform ios",
         "OpenEXR-3.1.3-rev4-mac": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenEXR --platform-name Mac --package-root ../../package-system/OpenEXR/temp --clean",
         "OpenEXR-3.1.3-rev4-mac": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenEXR --platform-name Mac --package-root ../../package-system/OpenEXR/temp --clean",
-        "openimageio-opencolorio-2.3.12.0-mac": "package-system/openimageio-opencolorio/build_openimageio.py --clean",
+        "openimageio-opencolorio-2.3.12.0-rev2-mac": "package-system/openimageio-opencolorio/build_openimageio.py --clean",
         "PhysX-4.1.2.29882248-rev5-mac": "package-system/PhysX/build_package_image.py --platform mac",
         "PhysX-4.1.2.29882248-rev5-mac": "package-system/PhysX/build_package_image.py --platform mac",
         "PhysX-4.1.2.29882248-rev5-ios": "package-system/PhysX/build_package_image.py --platform ios",
         "PhysX-4.1.2.29882248-rev5-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",
         "NvCloth-v1.1.6-4-gd243404-pr58-rev1-mac": "package-system/NvCloth/build_package_image.py --platform-name mac",
@@ -74,7 +74,7 @@
         "OpenSSL-1.1.1o-rev1-mac": "package-system/OpenSSL/temp/OpenSSL-mac",
         "OpenSSL-1.1.1o-rev1-mac": "package-system/OpenSSL/temp/OpenSSL-mac",
         "OpenSSL-1.1.1o-rev1-ios": "package-system/OpenSSL/temp/OpenSSL-ios",
         "OpenSSL-1.1.1o-rev1-ios": "package-system/OpenSSL/temp/OpenSSL-ios",
         "OpenEXR-3.1.3-rev4-mac": "package-system/OpenEXR/temp/OpenEXR-mac",
         "OpenEXR-3.1.3-rev4-mac": "package-system/OpenEXR/temp/OpenEXR-mac",
-        "openimageio-opencolorio-2.3.12.0-mac": "package-system/openimageio-opencolorio/temp/package-darwin",
+        "openimageio-opencolorio-2.3.12.0-rev2-mac": "package-system/openimageio-opencolorio/temp/package-darwin",
         "tiff-4.2.0.15-rev3-mac": "package-system/tiff-mac",
         "tiff-4.2.0.15-rev3-mac": "package-system/tiff-mac",
         "tiff-4.2.0.15-rev3-ios": "package-system/tiff-ios",
         "tiff-4.2.0.15-rev3-ios": "package-system/tiff-ios",
         "python-3.7.12-rev3-darwin": "package-system/python/darwin_x64/package",
         "python-3.7.12-rev3-darwin": "package-system/python/darwin_x64/package",

+ 2 - 2
package_build_list_host_linux.json

@@ -20,7 +20,7 @@
         "pyside2-5.15.2-rev2-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/pyside2-qt --platform-name Linux --package-root ../../package-system --clean",
         "pyside2-5.15.2-rev2-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/pyside2-qt --platform-name Linux --package-root ../../package-system --clean",
         "OpenEXR-3.1.3-rev4-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenEXR --platform-name Linux --package-root ../../package-system/OpenEXR/temp --clean",
         "OpenEXR-3.1.3-rev4-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenEXR --platform-name Linux --package-root ../../package-system/OpenEXR/temp --clean",
         "OpenXR-1.0.22-rev2-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenXR --platform-name Linux --package-root ../../package-system --clean",
         "OpenXR-1.0.22-rev2-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenXR --platform-name Linux --package-root ../../package-system --clean",
-        "openimageio-opencolorio-2.3.12.0-linux": "package-system/openimageio-opencolorio/build_openimageio.py --clean",
+        "openimageio-opencolorio-2.3.12.0-rev2-linux": "package-system/openimageio-opencolorio/build_openimageio.py --clean",
         "PhysX-4.1.2.29882248-rev5-linux": "package-system/PhysX/build_package_image.py --platform-name linux",
         "PhysX-4.1.2.29882248-rev5-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",
         "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",
         "poly2tri-7f0487a-rev1-linux": "package-system/poly2tri/build_package_image.py --platform-name linux",
@@ -56,7 +56,7 @@
         "pyside2-5.15.2-rev2-linux": "package-system/pyside2-linux",
         "pyside2-5.15.2-rev2-linux": "package-system/pyside2-linux",
         "OpenEXR-3.1.3-rev4-linux": "package-system/OpenEXR/temp/OpenEXR-linux",
         "OpenEXR-3.1.3-rev4-linux": "package-system/OpenEXR/temp/OpenEXR-linux",
         "OpenXR-1.0.22-rev2-linux": "package-system/OpenXR-linux",
         "OpenXR-1.0.22-rev2-linux": "package-system/OpenXR-linux",
-        "openimageio-opencolorio-2.3.12.0-linux": "package-system/openimageio-opencolorio/temp/package-linux",
+        "openimageio-opencolorio-2.3.12.0-rev2-linux": "package-system/openimageio-opencolorio/temp/package-linux",
         "SPIRVCross-2021.04.29-rev1-linux": "package-system/SPIRVCross-linux",
         "SPIRVCross-2021.04.29-rev1-linux": "package-system/SPIRVCross-linux",
         "squish-ccr-deb557d-rev1-linux": "package-system/squish-ccr-linux",
         "squish-ccr-deb557d-rev1-linux": "package-system/squish-ccr-linux",
         "astc-encoder-3.2-rev2-linux": "package-system/astc-encoder-linux",
         "astc-encoder-3.2-rev2-linux": "package-system/astc-encoder-linux",

+ 2 - 2
package_build_list_host_windows.json

@@ -35,7 +35,7 @@
         "NvCloth-v1.1.6-4-gd243404-pr58-rev1-windows": "package-system/NvCloth/build_package_image.py --platform-name windows",
         "NvCloth-v1.1.6-4-gd243404-pr58-rev1-windows": "package-system/NvCloth/build_package_image.py --platform-name windows",
         "NvCloth-v1.1.6-4-gd243404-pr58-rev1-android": "package-system/NvCloth/build_package_image.py --platform-name android",
         "NvCloth-v1.1.6-4-gd243404-pr58-rev1-android": "package-system/NvCloth/build_package_image.py --platform-name android",
         "OpenEXR-3.1.3-rev4-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenEXR --platform-name Windows --package-root ../../package-system/OpenEXR/temp --clean",
         "OpenEXR-3.1.3-rev4-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenEXR --platform-name Windows --package-root ../../package-system/OpenEXR/temp --clean",
-        "openimageio-opencolorio-2.3.12.0-windows": "package-system/openimageio-opencolorio/build_openimageio.py --clean",
+        "openimageio-opencolorio-2.3.12.0-rev2-windows": "package-system/openimageio-opencolorio/build_openimageio.py --clean",
         "OpenMesh-8.1-rev3-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenMesh --platform-name Windows --package-root ../../package-system --clean",
         "OpenMesh-8.1-rev3-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenMesh --platform-name Windows --package-root ../../package-system --clean",
         "OpenSSL-1.1.1o-rev2-android": "package-system/OpenSSL/build_package_image.py --platform-name android",
         "OpenSSL-1.1.1o-rev2-android": "package-system/OpenSSL/build_package_image.py --platform-name android",
         "OpenSSL-1.1.1o-rev1-windows": "package-system/OpenSSL/build_package_image.py",
         "OpenSSL-1.1.1o-rev1-windows": "package-system/OpenSSL/build_package_image.py",
@@ -100,7 +100,7 @@
     "NvCloth-v1.1.6-4-gd243404-pr58-rev1-windows": "package-system/NvCloth-windows",
     "NvCloth-v1.1.6-4-gd243404-pr58-rev1-windows": "package-system/NvCloth-windows",
     "NvCloth-v1.1.6-4-gd243404-pr58-rev1-android": "package-system/NvCloth-android",
     "NvCloth-v1.1.6-4-gd243404-pr58-rev1-android": "package-system/NvCloth-android",
     "OpenEXR-3.1.3-rev4-windows": "package-system/OpenEXR/temp/OpenEXR-windows",
     "OpenEXR-3.1.3-rev4-windows": "package-system/OpenEXR/temp/OpenEXR-windows",
-    "openimageio-opencolorio-2.3.12.0-windows": "package-system/openimageio-opencolorio/temp/package-windows",
+    "openimageio-opencolorio-2.3.12.0-rev2-windows": "package-system/openimageio-opencolorio/temp/package-windows",
     "OpenMesh-8.1-rev3-windows": "package-system/OpenMesh-windows",
     "OpenMesh-8.1-rev3-windows": "package-system/OpenMesh-windows",
     "OpenSSL-1.1.1o-rev2-android": "package-system/OpenSSL/temp/OpenSSL-android",
     "OpenSSL-1.1.1o-rev2-android": "package-system/OpenSSL/temp/OpenSSL-android",
     "OpenSSL-1.1.1o-rev1-windows": "package-system/OpenSSL/temp/OpenSSL-windows",
     "OpenSSL-1.1.1o-rev1-windows": "package-system/OpenSSL/temp/OpenSSL-windows",