Преглед изворни кода

Freetype -> 2.11.1, fix errors in pull_and_build_from_git.py (#99)

* Freetype -> 2.11.1, fix errors in pull_and_build_from_git.py

As part of upgrading freetype to 2.11.1 some errors and omissions were
found in pull_and_build_from_git.py

Changes to Freetype:
* upgraded to latest stable
* Converted the complex build script to a patchless json file.
* Test scripts added which test the built freetype2 library in terms
  of linking/compiling against a trivial test app in the same way
  as O3DE might link and use it.
* Added official zlib support to it, using the standard o3de zlib.
* Standardized the FindFreetype.cmake - uppercase F, now it can be
  used by other projects that are not O3DE such as other 3p's,
  transparently.

Changes to pull_and_build_from_git to support the above:
* The option to do a 'custom install' is meaningless and would
  likely malfunction on windows, since the target's name is install
  on some build systems and INSTALL on others, and it IS case sensitive.
  This option has been removed and now the script always does a
  platform independent configure, build, install that will work with
  both the old and new scripts.
* The option to filter install was actually broken and did nothing
  due to the 'temp install' directory and final install directory
  getting mixed up in code.
* The install filter can now be globally specified and then overridden
  per platform, leading to simpler scripts.

Signed-off-by: lawsonamzn <[email protected]>

* Fixup copy and paste error

Signed-off-by: lawsonamzn <[email protected]>
Nicholas Lawson пре 3 година
родитељ
комит
bf38700b8e

+ 20 - 26
Scripts/extras/pull_and_build_from_git.py

@@ -71,6 +71,13 @@ The following keys can exist at the root level or the target-platform level:
                             The final args will be (cmake_build_args || cmake_build_args_CONFIG) + cmake_build_args_common
                             The final args will be (cmake_build_args || cmake_build_args_CONFIG) + cmake_build_args_common
                             `cmake --build (build folder) --config config` will automatically be supplied.
                             `cmake --build (build folder) --config config` will automatically be supplied.
 * extra_files_to_copy   : (optional) a list of pairs of files to copy [source, destination]. 
 * extra_files_to_copy   : (optional) a list of pairs of files to copy [source, destination]. 
+
+* cmake_install_filter                    : Optional list of filename patterns to filter what is actually copied to the target package based on
+                                            the 3rd party library's install definition. (For example, a library may install headers and static
+                                            libraries when all you want in the package is just the binary executables). If omitted, then the entire
+                                            install tree will be copied to the target package.
+                                            This field can exist at the root but also at individual platform target level.
+
  
  
 The following keys can only exist at the target platform level as they describe the specifics for that platform.
 The following keys can only exist at the target platform level as they describe the specifics for that platform.
 
 
@@ -82,11 +89,6 @@ The following keys can only exist at the target platform level as they describe
 
 
 * cmake_build_args                        : Additional build args to pass to cmake during the cmake build command
 * cmake_build_args                        : Additional build args to pass to cmake during the cmake build command
 
 
-* cmake_install_filter                    : Optional list of filename patterns to filter what is actually copied to the target package based on
-                                            the 3rd party library's install definition. (For example, a library may install headers and static
-                                            libraries when all you want in the package is just the binary executables). If omitted, then the entire
-                                            install tree will be copied to the target package
-
 * custom_build_cmd                        : A list of custom scripts to run to build from the source that was pulled from git. This option is 
 * custom_build_cmd                        : A list of custom scripts to run to build from the source that was pulled from git. This option is 
                                             mutually exclusive from the cmake_generate_args and cmake_build_args options.
                                             mutually exclusive from the cmake_generate_args and cmake_build_args options.
                                             see the note about environment variables below.
                                             see the note about environment variables below.
@@ -111,9 +113,6 @@ The following keys can only exist at the target platform level as they describe
 * custom_additional_libraries             : Any additional dependent system library to include in the find*.cmake file for the library that will 
 * custom_additional_libraries             : Any additional dependent system library to include in the find*.cmake file for the library that will 
                                             applied to targets that consume this 3P library during linking
                                             applied to targets that consume this 3P library during linking
                                             
                                             
-* custom_cmake_install                    : Custom flag for certain platforms (ie iOS) that needs the installation arguments applied during the 
-                                            cmake generation, and not to apply the cmake install process
-
 * depends_on_packages                     : list of name of 3-TUPLES of [package name, package hash, subfolder] that 'find' files live in] 
 * depends_on_packages                     : list of name of 3-TUPLES of [package name, package hash, subfolder] that 'find' files live in] 
                                             [  ["zlib-1.5.3-rev5",    "some hash", ""],
                                             [  ["zlib-1.5.3-rev5",    "some hash", ""],
                                                ["some other package", "some other hash", "subfoldername"], 
                                                ["some other package", "some other hash", "subfoldername"], 
@@ -240,6 +239,7 @@ class PackageInfo(object):
         self.cmake_build_args_common = _get_value("cmake_build_args_common", required=False)
         self.cmake_build_args_common = _get_value("cmake_build_args_common", required=False)
         self.build_configs = _get_value("build_configs", required=False, default=['Debug', 'Release'])
         self.build_configs = _get_value("build_configs", required=False, default=['Debug', 'Release'])
         self.extra_files_to_copy = _get_value("extra_files_to_copy", required=False)
         self.extra_files_to_copy = _get_value("extra_files_to_copy", required=False)
+        self.cmake_install_filter = _get_value("cmake_install_filter", required=False, default=[])
         if self.cmake_find_template and self.cmake_find_source:
         if self.cmake_find_template and self.cmake_find_source:
             raise BuildError("Bad build config file. 'cmake_find_template' and 'cmake_find_source' cannot both be set in the configuration.")            
             raise BuildError("Bad build config file. 'cmake_find_template' and 'cmake_find_source' cannot both be set in the configuration.")            
         if not self.cmake_find_template and not self.cmake_find_source:
         if not self.cmake_find_template and not self.cmake_find_source:
@@ -558,10 +558,9 @@ class BuildInfo(object):
         if not is_multi_config:
         if not is_multi_config:
             if 'cmake_generate_args_debug' not in self.platform_config and 'cmake_generate_args_release' not in self.platform_config:
             if 'cmake_generate_args_debug' not in self.platform_config and 'cmake_generate_args_release' not in self.platform_config:
                 raise BuildError("Invalid configuration")
                 raise BuildError("Invalid configuration")
-        custom_cmake_install = self.platform_config.get('custom_cmake_install', False)
 
 
         # Check for the optional install filter
         # Check for the optional install filter
-        cmake_install_filter = self.platform_config.get('cmake_install_filter', None)
+        cmake_install_filter = self.platform_config.get('cmake_install_filter', self.package_info.cmake_install_filter)
         if cmake_install_filter:
         if cmake_install_filter:
             # If there is a custom install filter, then we need to install to another temp folder and copy over based on the filter rules
             # If there is a custom install filter, then we need to install to another temp folder and copy over based on the filter rules
             install_target_folder = self.base_temp_folder / 'working_install'
             install_target_folder = self.base_temp_folder / 'working_install'
@@ -613,8 +612,8 @@ class BuildInfo(object):
 
 
                 cmake_generate_cmd.extend(cmake_generator_args)
                 cmake_generate_cmd.extend(cmake_generator_args)
                 
                 
-                if custom_cmake_install:
-                    cmake_generate_cmd.extend([f"-DCMAKE_INSTALL_PREFIX={str(self.build_install_folder.resolve())}"])
+                # make sure it always installs into a prefix (ie, not the system!)
+                cmake_generate_cmd.extend([f"-DCMAKE_INSTALL_PREFIX={str(install_target_folder.resolve())}"])
 
 
                 call_result = subprocess.run(subp_args(cmake_generate_cmd),
                 call_result = subprocess.run(subp_args(cmake_generate_cmd),
                                              shell=True,
                                              shell=True,
@@ -635,8 +634,6 @@ class BuildInfo(object):
             cmake_build_cmd = [self.cmake_command,
             cmake_build_cmd = [self.cmake_command,
                                '--build', str(self.build_folder.name),
                                '--build', str(self.build_folder.name),
                                '--config', config]
                                '--config', config]
-            if custom_cmake_install:
-                cmake_build_cmd.extend(['--target', 'install'])
 
 
             cmake_build_cmd.extend(cmake_build_args)
             cmake_build_cmd.extend(cmake_build_args)
 
 
@@ -647,17 +644,15 @@ class BuildInfo(object):
             if call_result.returncode != 0:
             if call_result.returncode != 0:
                 raise BuildError(f"Error building project for platform {self.package_info.platform_name}")
                 raise BuildError(f"Error building project for platform {self.package_info.platform_name}")
 
 
-            if not custom_cmake_install:
-                cmake_install_cmd = [self.cmake_command,
-                                     '--install', str(self.build_folder.name),
-                                     '--prefix', str(install_target_folder.resolve()),
-                                     '--config', config]
-                call_result = subprocess.run(subp_args(cmake_install_cmd),
-                                             shell=True,
-                                             capture_output=False,
-                                             cwd=str(self.build_folder.parent.resolve()))
-                if call_result.returncode != 0:
-                    raise BuildError(f"Error installing project for platform {self.package_info.platform_name}")
+            cmake_install_cmd = [self.cmake_command,
+                                    '--install', str(self.build_folder.name),
+                                    '--config', config]
+            call_result = subprocess.run(subp_args(cmake_install_cmd),
+                                            shell=True,
+                                            capture_output=False,
+                                            cwd=str(self.build_folder.parent.resolve()))
+            if call_result.returncode != 0:
+                raise BuildError(f"Error installing project for platform {self.package_info.platform_name}")
 
 
         if cmake_install_filter:
         if cmake_install_filter:
             # If an install filter was specified, then perform a copy from the intermediate temp install folder
             # If an install filter was specified, then perform a copy from the intermediate temp install folder
@@ -669,7 +664,6 @@ class BuildInfo(object):
             for glob_result in glob_results:
             for glob_result in glob_results:
                 if os.path.isdir(glob_result):
                 if os.path.isdir(glob_result):
                     continue
                     continue
-                print(glob_result)
                 source_relative = os.path.relpath(glob_result, source_root_folder)
                 source_relative = os.path.relpath(glob_result, source_root_folder)
                 matched = False
                 matched = False
                 for pattern in cmake_install_filter:
                 for pattern in cmake_install_filter:

+ 80 - 0
package-system/freetype/FindFreetype.cmake

@@ -0,0 +1,80 @@
+#
+# 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
+#
+#
+
+# note that this script calls find_package(xxxxx) which executes code
+# inside other Findxxxx.cmake files as if they are in the current scope
+# that means that its not safe to use generic variable names like "TARGETNAME"
+# as the other scripts may also use those names.  To be extra safe, prefix
+# all our variables with our library name ("Freetype")
+
+set(Freetype_O3DE_TARGETNAME "3rdParty::Freetype")
+if (TARGET ${Freetype_O3DE_TARGETNAME})
+    # Someone has already run this file before, don't re-run
+    return()
+endif()
+
+# note that the rest of the world calls this Freetype, as in, capital F Freetype.
+# to make sure this is compatible, O3DE will also use it via Freetype instead of freetype
+# we create standard named targets to be compatible with what non-O3DE software expects:
+set(Freetype_TARGETNAME "Freetype::Freetype")
+
+# we're trying to be a drop-in replacement for the FindFreetype.cmake that is shipped
+# with CMake itself, so we set the same variables with the same uppercase for compatibility
+# for questions about these variables, see https://cmake.org/cmake/help/latest/module/FindFreetype.html
+set(FREETYPE_FOUND True)
+set(FREETYPE_INCLUDE_DIR_ft2build ${CMAKE_CURRENT_LIST_DIR}/freetype/include/freetype2)
+set(FREETYPE_INCLUDE_DIR_freetype2 ${CMAKE_CURRENT_LIST_DIR}/freetype/include/freetype2/freetype)
+set(FREETYPE_INCLUDE_DIRS ${FREETYPE_INCLUDE_DIR_ft2build} ${FREETYPE_INCLUDE_DIR_freetype2})
+set(FREETYPE_VERSION_STRING "2.11.1")
+set(FREETYPE_VERSION ${FREETYPE_VERSION_STRING})
+
+# an effort to shorten lines:
+set(_FT_LIB_DIR  ${CMAKE_CURRENT_LIST_DIR}/freetype/lib/)
+set(_FT_LIB_NAME ${CMAKE_STATIC_LIBRARY_PREFIX}freetype${CMAKE_STATIC_LIBRARY_SUFFIX})
+set(FREETYPE_LIBRARIES ${_FT_LIB_DIR}/${_FT_LIB_NAME})
+
+# in addition to being a drop-in replacement for the CMake-provided FindFreetype.cmake we also
+# declare common names for these variables that are more standard, ie, following the normal casing
+# of the find_package system in general:
+set(Freetype_FOUND True)
+
+add_library(${Freetype_TARGETNAME} STATIC IMPORTED GLOBAL)
+set_target_properties(${Freetype_TARGETNAME} PROPERTIES IMPORTED_LINK_INTERFACE_LANGUAGES "C")
+set_target_properties(${Freetype_TARGETNAME} PROPERTIES IMPORTED_LOCATION "${FREETYPE_LIBRARIES}")
+
+# freetype depends on ZLIB, too, so if its not included already, we find and use it
+if (NOT TARGET ZLIB::ZLIB)
+    if (COMMAND ly_download_associated_package)
+        ly_download_associated_package(ZLIB)
+    endif()
+    find_package(ZLIB)
+endif()
+# anyone who links to freetype also links to ZLIB:
+target_link_libraries(${Freetype_TARGETNAME} INTERFACE ZLIB::ZLIB)
+
+# cmake < 3.21 and visual studio < 16.10 don't properly implement SYSTEM includes
+# so we use O3DEs patched implementation if it is available and fallback to default if not.
+# this is futureproof so that when O3DE no longer needs to define this and CMake's system 
+# works without fixes, O3DE can erase this implementation and this script will still function.
+if (COMMAND ly_target_include_system_directories)
+    ly_target_include_system_directories(TARGET ${Freetype_TARGETNAME} INTERFACE ${FREETYPE_INCLUDE_DIRS})
+else()
+    target_include_directories(${Freetype_TARGETNAME} SYSTEM INTERFACE ${FREETYPE_INCLUDE_DIRS})
+endif()
+
+# alias the O3DE name to the official name:
+add_library(${Freetype_O3DE_TARGETNAME} ALIAS ${Freetype_TARGETNAME})
+
+# if we're not in O3DE, it's also extremely helpful to show a message to logs that indicate that this
+# library was successfully picked up, as opposed to the system one.
+# A good way to know if you're in O3DE or not is that O3DE sets various cache variables before 
+# calling find_package, specifically, LY_VERSION_ENGINE_NAME is always set very early:
+if (NOT LY_VERSION_ENGINE_NAME)
+    message(STATUS "Using O3DE's Freetype (${FREETYPE_VERSION_STRING}) from ${CMAKE_CURRENT_LIST_DIR}")
+endif()
+

+ 0 - 23
package-system/freetype/Findfreetype.cmake

@@ -1,23 +0,0 @@
-#
-# 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::freetype")
-if (TARGET ${TARGET_WITH_NAMESPACE})
-    return()
-endif()
-
-set(freetype_INCLUDE_DIR ${CMAKE_CURRENT_LIST_DIR}/freetype/include/freetype2)
-set(freetype_LIBS_DIR ${CMAKE_CURRENT_LIST_DIR}/freetype/lib)
-set(freetype_LIBRARY ${freetype_LIBS_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}freetype$<IF:$<CONFIG:Debug>,d,>${CMAKE_STATIC_LIBRARY_SUFFIX})
-
-add_library(${TARGET_WITH_NAMESPACE} INTERFACE IMPORTED GLOBAL)
-ly_target_include_system_directories(TARGET ${TARGET_WITH_NAMESPACE} INTERFACE ${freetype_INCLUDE_DIR})
-target_link_libraries(${TARGET_WITH_NAMESPACE} INTERFACE ${freetype_LIBRARY})
-
-set(freetype_FOUND True)

+ 80 - 22
package-system/freetype/build_config.json

@@ -1,44 +1,102 @@
 {
 {
    "git_url":"https://gitlab.freedesktop.org/freetype/freetype.git",
    "git_url":"https://gitlab.freedesktop.org/freetype/freetype.git",
-   "git_tag":"VER-2-10-4",
+   "git_tag":"VER-2-11-1",
    "package_name":"freetype",
    "package_name":"freetype",
-   "package_version":"2.10.4.16",
+   "package_version":"2.11.1-rev1",
    "package_url":"https://www.freetype.org/",
    "package_url":"https://www.freetype.org/",
    "package_license":"FTL",
    "package_license":"FTL",
    "package_license_file":"docs/FTL.TXT",
    "package_license_file":"docs/FTL.TXT",
-   "cmake_find_source":"Findfreetype.cmake",
-   "cmake_find_target":"Findfreetype.cmake",
-   "patch_file":"freetype.patch",
+   "cmake_find_source":"FindFreetype.cmake",
+   "cmake_find_target":"FindFreetype.cmake",
+   "cmake_build_args_common" : [ 
+      "--parallel"
+   ],
+   "cmake_generate_args_common" : [
+      "-DCMAKE_CXX_STANDARD=17",
+      "-DBUILD_SHARED_LIBS=FALSE",
+      "-DCMAKE_POSITION_INDEPENDENT_CODE=ON",
+      "-DCMAKE_DISABLE_FIND_PACKAGE_ZLIB=FALSE",
+      "-DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE",
+      "-DCMAKE_DISABLE_FIND_PACKAGE_PNG=TRUE",
+      "-DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE",
+      "-DCMAKE_DISABLE_FIND_PACKAGE_BrotliDec=TRUE"
+   ],
+   "cmake_install_filter":[
+      "*.h",
+      "*.lib",
+      "*.TXT",
+      "*.a"
+   ],
+   "build_configs": [
+      "Release"
+   ],
    "Platforms":{
    "Platforms":{
       "Windows":{
       "Windows":{
          "Windows":{
          "Windows":{
-            "custom_build_cmd": [
-               "build_package_image.py --platform windows"
-            ]
+            "depends_on_packages" :[ 
+               ["zlib-1.2.11-rev5-windows", "8847112429744eb11d92c44026fc5fc53caa4a06709382b5f13978f3c26c4cbd", ""]
+            ],
+           
+            "cmake_generate_args": [
+                "-G",
+                "\"Visual Studio 16 2019\""
+            ],
+            "custom_test_cmd" : [
+               "test_Freetype_windows.cmd"
+           ]
          },
          },
          "Android":{
          "Android":{
-            "custom_build_cmd": [
-               "build_package_image.py --platform android"
-            ]
+            "depends_on_packages" :[ 
+               ["zlib-1.2.11-rev5-android", "73c9e88892c237a3fc6eafc04268ccd9d479e6d55f9df2ed58b236c8f9cf2cae", ""]
+            ],
+            "cmake_generate_args" : [
+               "-G",
+               "\"Ninja Multi-Config\"",
+               "-DCMAKE_TOOLCHAIN_FILE=../../../../Scripts/cmake/Platform/Android/Toolchain_android.cmake"
+            ],
+            "custom_test_cmd" : [
+               "test_Freetype_android.cmd"
+           ]
          }
          }
       },
       },
       "Darwin":{
       "Darwin":{
-        "Mac":{
-            "custom_build_cmd": [
-                "python3 build_package_image.py --platform mac"
-            ]
-        },
+         "Mac":{
+            "depends_on_packages" :[ 
+               ["zlib-1.2.11-rev5-mac", "b6fea9c79b8bf106d4703b67fecaa133f832ad28696c2ceef45fb5f20013c096", ""]
+            ],
+            "cmake_generate_args": [
+               "-G", "Xcode",
+               "-DCMAKE_TOOLCHAIN_FILE=../../../../Scripts/cmake/Platform/Mac/Toolchain_mac.cmake"
+            ],
+            "custom_test_cmd" : [
+               "./test_Freetype_mac.sh"
+           ]
+         },
         "iOS":{
         "iOS":{
-            "custom_build_cmd": [
-                "python3 build_package_image.py --platform ios"
-            ]
+            "depends_on_packages" :[ 
+               ["zlib-1.2.11-rev5-ios", "c7f10b4d0fe63192054d926f53b08e852cdf472bc2b18e2f7be5aecac1869f7f", ""]
+            ],
+            "cmake_generate_args": [
+               "-G", "Xcode",
+               "-DCMAKE_TOOLCHAIN_FILE=../../../../Scripts/cmake/Platform/iOS/Toolchain_ios.cmake"
+            ],
+            "custom_test_cmd" : [
+               "./test_Freetype_ios.sh"
+           ]
         }
         }
       },
       },
       "Linux":{
       "Linux":{
          "Linux":{
          "Linux":{
-            "custom_build_cmd": [
-                "python3 build_package_image.py --platform linux"
-             ]
+            "depends_on_packages" :[ 
+               ["zlib-1.2.11-rev5-linux", "9be5ea85722fc27a8645a9c8a812669d107c68e6baa2ca0740872eaeb6a8b0fc", ""]
+            ],
+            "cmake_generate_args": [
+               "-G",
+               "\"Ninja Multi-Config\""
+            ],
+            "custom_test_cmd" : [
+               "./test_Freetype_linux.sh"
+           ]
          }
          }
       }
       }
    }
    }

+ 0 - 102
package-system/freetype/build_package_image.py

@@ -1,102 +0,0 @@
-# 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
-#
-#
-
-import argparse
-import os
-import platform
-import subprocess
-import sys
-
-parser = argparse.ArgumentParser(description='Builds this package')
-parser.add_argument('--platform', default=platform.system().lower(), required=False, help=f'Platform to build (defaults to \"{platform.system().lower()}\")')
-args = parser.parse_args()
-
-this_dir = os.path.dirname(os.path.realpath(__file__))
-cmake_scripts_path = os.path.abspath(os.path.join(this_dir, '../../Scripts/cmake'))
-
-ly_3rdparty_path = os.getenv('LY_3RDPARTY_PATH')
-ly_android_sdk_path = os.getenv('LY_ANDROID_SDK_PATH');
-
-folder_names = { 
-    #system-name  cmake generation, cmake build
-    'mac'       : ([
-        '-G', 'Xcode',
-         '-DCMAKE_OSX_ARCHITECTURES=x86_64'
-    ], [], 'Debug', 'Release'),
-    'ios'       : ([
-        '-G', 'Xcode',
-        f'-DCMAKE_TOOLCHAIN_FILE={cmake_scripts_path}/Platform/iOS/Toolchain_ios.cmake',
-        '-DPACKAGE_PLATFORM=ios'
-    ], [
-        '--',
-        '-destination generic/platform=iOS'
-    ], 'Debug', 'Release'),
-    'linux'     : ([
-        '-G', 'Ninja Multi-Config',
-        '-DCMAKE_C_COMPILER=clang-6.0', 
-        '-DCMAKE_CXX_COMPILER=clang++-6.0',
-        '-DCMAKE_POSITION_INDEPENDENT_CODE=ON'
-    ], [], 'Debug', 'Release'),
-    'windows'   : ([
-        '-G', 'Visual Studio 16 2019',
-        '-Ax64', '-Thost=x64'
-    ], [], 'Debug', 'Release'),
-    'android'   : ([
-        '-G', 'Ninja Multi-Config',
-        f'-DCMAKE_TOOLCHAIN_FILE={cmake_scripts_path}/Platform/Android/Toolchain_android.cmake',
-        '-DANDROID_ABI=arm64-v8a',
-        '-DANDROID_ARM_MODE=arm',
-        '-DANDROID_ARM_NEON=FALSE',
-        '-DANDROID_NATIVE_API_LEVEL=21',
-        f'-DLY_NDK_DIR={ly_android_sdk_path}/ndk/22.0.7026061',
-        '-DPACKAGE_PLATFORM=android',
-        '-DCMAKE_POSITION_INDEPENDENT_CODE=ON'
-    ], [], 'debug', 'release') # Android needs to have ninja in the path
-}
-
-# intentionally generate a keyerror if its not a good platform:
-cmake_generation, cmake_build, debug_build_name, release_build_name = folder_names[args.platform]
-
-script_dir = os.path.dirname(os.path.realpath(__file__))
-package_name = os.path.basename(script_dir) 
-build_dir = os.path.join(script_dir, 'temp/build', args.platform)
-os.makedirs(build_dir, exist_ok=True)
-
-# generate
-generate_call = ['cmake', 
-                 '-Stemp/src', 
-                 f'-B{build_dir}', 
-                 f'-DCMAKE_INSTALL_PREFIX=../{package_name}-{args.platform}/{package_name}/', 
-                 '-DBUILD_SHARED_LIBS=FALSE',
-                 '-DCMAKE_DISABLE_FIND_PACKAGE_ZLIB=TRUE',
-                 '-DCMAKE_DISABLE_FIND_PACKAGE_BZip2=TRUE',
-                 '-DCMAKE_DISABLE_FIND_PACKAGE_PNG=TRUE',
-                 '-DCMAKE_DISABLE_FIND_PACKAGE_HarfBuzz=TRUE',
-                 '-DCMAKE_DISABLE_FIND_PACKAGE_BrotliDec=TRUE']
-if cmake_generation:
-    generate_call += cmake_generation
-print(f"Cmake command '{generate_call}'")
-result_value = subprocess.run(generate_call, shell=False, cwd=script_dir)
-if result_value.returncode != 0:
-    sys.exit(result_value.returncode)
-
-# build debug
-build_call =['cmake', '--build', build_dir, '--config', debug_build_name, '--target', 'install']
-if cmake_build:
-    build_call += cmake_build
-print(build_call)
-result_value = subprocess.run(build_call, shell=False, cwd=script_dir)
-if result_value.returncode != 0:
-    sys.exit(result_value.returncode)
-
-# build release
-build_call =['cmake', '--build', build_dir, '--config', release_build_name, '--target', 'install']
-if cmake_build:
-    build_call += cmake_build
-result_value = subprocess.run(build_call, shell=False, cwd=script_dir)
-sys.exit(result_value.returncode)

+ 0 - 28
package-system/freetype/freetype.patch

@@ -1,28 +0,0 @@
-diff --git a/CMakeLists.txt b/CMakeLists.txt
-index 3ed55aad7..87a302d85 100644
---- a/CMakeLists.txt
-+++ b/CMakeLists.txt
-@@ -405,7 +405,7 @@ if (WIN32)
- endif ()
- 
- if (BUILD_SHARED_LIBS)
--  set_target_properties(freetype PROPERTIES
-+set_target_properties(freetype PROPERTIES
-     VERSION ${LIBRARY_VERSION}
-     SOVERSION ${LIBRARY_SOVERSION})
- endif ()
-diff --git a/include/ft2build.h b/include/ft2build.h
-index b4fd1f8c3..56c261b10 100644
---- a/include/ft2build.h
-+++ b/include/ft2build.h
-@@ -34,6 +34,10 @@
- #ifndef FT2BUILD_H_
- #define FT2BUILD_H_
- 
-+#ifndef FT2_BUILD_LIBRARY
-+#define FT2_BUILD_LIBRARY
-+#endif
-+
- #include <freetype/config/ftheader.h>
- 
- #endif /* FT2BUILD_H_ */

+ 25 - 0
package-system/freetype/test/CMakeLists.txt

@@ -0,0 +1,25 @@
+#
+# 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
+#
+#
+
+cmake_minimum_required(VERSION 3.20)
+
+PROJECT(test_Freetype VERSION 1.0 LANGUAGES C)
+
+find_package(Freetype)
+
+add_executable(test_Freetype test_Freetype.c)
+
+# note that we use 3rdParty::Freetype here.  This will ONLY work 
+# if the O3DE version of Freetype is used, which is what we are testing for.
+target_link_libraries(test_Freetype PRIVATE 3rdParty::Freetype)
+
+set_target_properties(test_Freetype PROPERTIES
+                 XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED OFF
+                 MACOSX_BUNDLE TRUE
+                 XCODE_ATTRIBUTE_EXECUTABLE_NAME "test_Freetype")
+

+ 45 - 0
package-system/freetype/test/test_Freetype.c

@@ -0,0 +1,45 @@
+/*
+ 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
+*/
+
+#include <stdio.h>
+
+// this is just a super basic include and compile and link test
+// it doesn't exercise the library much, but if this compiles and links
+// its likely that further testing needs to be done in a real full project
+// rather than artificially
+
+// test whether a header is found
+#include <freetype/freetype.h>
+
+int main()
+{
+    FT_Library lib;
+    if (FT_Init_FreeType(&lib) != 0)
+    {
+        printf("FAILURE! Freetype failed call to FT_Init_FreeType!\n");
+        return 1;
+    }
+        
+    FT_Int major = 0;
+    FT_Int minor = 0;
+    FT_Int patch = 0;
+    FT_Library_Version(lib, &major, &minor, &patch);
+    if (major == 0)
+    {
+        printf("FAILURE! Freetype FT_Library_Version returned invalid major version (%i)!\n", (int)major);
+        return 1;
+    }
+    printf("Freetype Version: %i.%i.%i\n", (int)major, (int)minor, (int)patch );
+
+    if (FT_Done_FreeType(lib) != 0)
+    {
+        printf("FAILURE! Freetype failed call to FT_Done_FreeType!\n");
+        return 1;
+    }
+    printf("Success: All is ok!\n");
+    return 0;
+}

+ 27 - 0
package-system/freetype/test_Freetype_android.cmd

@@ -0,0 +1,27 @@
+@rem #
+@rem # Copyright (c) Contributors to the Open 3D Engine Project.
+@rem # For complete copyright and license terms please see the LICENSE at the root of this distribution.
+@rem # 
+@rem # SPDX-License-Identifier: Apache-2.0 OR MIT
+@rem #
+@rem #
+
+rmdir /S /Q  temp\build_test
+mkdir temp\build_test
+
+@rem CMAKE demands forward slashes but PACKAGE_ROOT is in native path:
+set "PACKAGE_ROOT=%PACKAGE_ROOT:\=/%"
+set "DOWNLOADED_PACKAGE_FOLDERS=%DOWNLOADED_PACKAGE_FOLDERS:\=/%"
+
+cmake -S test -B temp/build_test ^
+    -G Ninja ^
+    -DCMAKE_BUILD_TYPE=Release ^
+    -DCMAKE_TOOLCHAIN_FILE=../../../../Scripts/cmake/Platform/Android/Toolchain_android.cmake ^
+    -DCMAKE_MODULE_PATH="%DOWNLOADED_PACKAGE_FOLDERS%;%PACKAGE_ROOT%" || exit /b 1
+
+cmake --build temp/build_test --parallel || exit /b 1
+
+@rem we can't actually run this - its an android binary.  But at least the above
+@rem makes sure it links and that our FindFreetype script is working.
+
+exit /b 0

+ 21 - 0
package-system/freetype/test_Freetype_ios.sh

@@ -0,0 +1,21 @@
+#
+# 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
+#
+#
+
+rm -rf temp/build_test
+mkdir temp/build_test
+
+cmake -S test -B temp/build_test -G Xcode \
+    -DCMAKE_TOOLCHAIN_FILE=../../../../Scripts/cmake/Platform/iOS/Toolchain_ios.cmake \
+    -DCMAKE_MODULE_PATH="$DOWNLOADED_PACKAGE_FOLDERS;$PACKAGE_ROOT" || exit 1
+
+cmake --build temp/build_test --parallel --config Release || exit 1
+
+# we can't actually run it on ios, that'd require an emulator or device as well as
+# cert / signing - but we can at least make sure it compiles and links!
+
+exit 0

+ 19 - 0
package-system/freetype/test_Freetype_linux.sh

@@ -0,0 +1,19 @@
+#
+# 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
+#
+#
+
+rm -rf temp/build_test
+mkdir temp/build_test
+
+cmake -S test -B temp/build_test -G Ninja -DCMAKE_BUILD_TYPE=Release  \
+    -DCMAKE_MODULE_PATH="$DOWNLOADED_PACKAGE_FOLDERS;$PACKAGE_ROOT" || exit 1
+
+cmake --build temp/build_test --parallel || exit 1
+
+temp/build_test/test_Freetype || exit 1
+
+exit 0

+ 20 - 0
package-system/freetype/test_Freetype_mac.sh

@@ -0,0 +1,20 @@
+#
+# 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
+#
+#
+
+rm -rf temp/build_test
+mkdir temp/build_test
+
+cmake -S test -B temp/build_test -G Xcode \
+    -DCMAKE_TOOLCHAIN_FILE=../../../../Scripts/cmake/Platform/Mac/Toolchain_mac.cmake \
+    -DCMAKE_MODULE_PATH="$DOWNLOADED_PACKAGE_FOLDERS;$PACKAGE_ROOT" || exit 1
+
+cmake --build temp/build_test --parallel --config Release || exit 1
+
+temp/build_test/Release/test_Freetype.app/Contents/MacOS/test_Freetype || exit 1
+
+exit 0

+ 25 - 0
package-system/freetype/test_Freetype_windows.cmd

@@ -0,0 +1,25 @@
+@rem #
+@rem # Copyright (c) Contributors to the Open 3D Engine Project.
+@rem # For complete copyright and license terms please see the LICENSE at the root of this distribution.
+@rem # 
+@rem # SPDX-License-Identifier: Apache-2.0 OR MIT
+@rem #
+@rem #
+
+rmdir /S /Q  temp\build_test
+mkdir temp\build_test
+
+@rem CMAKE demands forward slashes but PACKAGE_ROOT is in native path:
+set "PACKAGE_ROOT=%PACKAGE_ROOT:\=/%"
+set "DOWNLOADED_PACKAGE_FOLDERS=%DOWNLOADED_PACKAGE_FOLDERS:\=/%"
+
+cmake -S test -B temp/build_test ^
+    -DCMAKE_MODULE_PATH="%DOWNLOADED_PACKAGE_FOLDERS%;%PACKAGE_ROOT%" || exit /b 1
+
+cmake --build temp/build_test --parallel --config Release || exit /b 1
+temp\build_test\Release\test_Freetype.exe || exit /b 1
+
+cmake --build temp/build_test --parallel --config Debug || exit /b 1
+temp\build_test\Debug\test_Freetype.exe || exit /b 1
+
+exit /b 0

+ 4 - 4
package_build_list_host_darwin.json

@@ -10,8 +10,8 @@
         "Lua-5.4.4-rev1-mac": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name Mac --package-root ../../package-system/Lua/temp --clean",
         "Lua-5.4.4-rev1-mac": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name Mac --package-root ../../package-system/Lua/temp --clean",
         "Lua-5.4.4-rev1-ios": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name iOS --package-root ../../package-system/Lua/temp --clean",
         "Lua-5.4.4-rev1-ios": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name iOS --package-root ../../package-system/Lua/temp --clean",
         "AwsIotDeviceSdkCpp-1.15.2-rev2-mac": "Scripts/extras/pull_and_build_from_git.py ../../package-system/AwsIotDeviceSdkCpp --platform-name Mac --package-root ../../package-system --clean",
         "AwsIotDeviceSdkCpp-1.15.2-rev2-mac": "Scripts/extras/pull_and_build_from_git.py ../../package-system/AwsIotDeviceSdkCpp --platform-name Mac --package-root ../../package-system --clean",
-        "freetype-2.10.4.16-mac": "Scripts/extras/pull_and_build_from_git.py ../../package-system/freetype --platform-name Mac --package-root ../../package-system --clean",
-        "freetype-2.10.4.16-ios": "Scripts/extras/pull_and_build_from_git.py ../../package-system/freetype --platform-name iOS --package-root ../../package-system --clean",
+        "freetype-2.11.1-rev1-mac": "Scripts/extras/pull_and_build_from_git.py ../../package-system/freetype --platform-name Mac --package-root ../../package-system/freetype/temp --clean",
+        "freetype-2.11.1-rev1-ios": "Scripts/extras/pull_and_build_from_git.py ../../package-system/freetype --platform-name iOS --package-root ../../package-system/freetype/temp --clean",
         "googlebenchmark-1.5.0-rev2-ios": "Scripts/extras/pull_and_build_from_git.py ../../package-system/googlebenchmark --platform-name iOS --package-root ../../package-system --clean",
         "googlebenchmark-1.5.0-rev2-ios": "Scripts/extras/pull_and_build_from_git.py ../../package-system/googlebenchmark --platform-name iOS --package-root ../../package-system --clean",
         "googlebenchmark-1.5.0-rev2-mac": "Scripts/extras/pull_and_build_from_git.py ../../package-system/googlebenchmark --platform-name Mac --package-root ../../package-system --clean",
         "googlebenchmark-1.5.0-rev2-mac": "Scripts/extras/pull_and_build_from_git.py ../../package-system/googlebenchmark --platform-name Mac --package-root ../../package-system --clean",
         "googletest-1.8.1-rev4-ios": "Scripts/extras/pull_and_build_from_git.py ../../package-system/googletest --platform-name iOS --package-root ../../package-system --clean",
         "googletest-1.8.1-rev4-ios": "Scripts/extras/pull_and_build_from_git.py ../../package-system/googletest --platform-name iOS --package-root ../../package-system --clean",
@@ -58,8 +58,8 @@
         "AwsIotDeviceSdkCpp-1.15.2-rev2-mac": "package-system/AwsIotDeviceSdkCpp-mac",
         "AwsIotDeviceSdkCpp-1.15.2-rev2-mac": "package-system/AwsIotDeviceSdkCpp-mac",
         "Lua-5.4.4-rev1-mac": "package-system/Lua/temp/Lua-mac",
         "Lua-5.4.4-rev1-mac": "package-system/Lua/temp/Lua-mac",
         "Lua-5.4.4-rev1-ios": "package-system/Lua/temp/Lua-ios",
         "Lua-5.4.4-rev1-ios": "package-system/Lua/temp/Lua-ios",
-        "freetype-2.10.4.16-mac": "package-system/freetype-mac",
-        "freetype-2.10.4.16-ios": "package-system/freetype-ios",
+        "freetype-2.11.1-rev1-mac": "package-system/freetype/temp/freetype-mac",
+        "freetype-2.11.1-rev1-ios": "package-system/freetype/temp/freetype-ios",
         "googlebenchmark-1.5.0-rev2-ios": "package-system/googlebenchmark-ios",
         "googlebenchmark-1.5.0-rev2-ios": "package-system/googlebenchmark-ios",
         "googlebenchmark-1.5.0-rev2-mac": "package-system/googlebenchmark-mac",
         "googlebenchmark-1.5.0-rev2-mac": "package-system/googlebenchmark-mac",
         "googletest-1.8.1-rev4-ios": "package-system/googletest-ios",
         "googletest-1.8.1-rev4-ios": "package-system/googletest-ios",

+ 2 - 2
package_build_list_host_linux.json

@@ -9,7 +9,7 @@
         "AWSNativeSDK-1.9.50-rev1-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/AWSNativeSDK --platform-name Linux --package-root ../../package-system --clean",
         "AWSNativeSDK-1.9.50-rev1-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/AWSNativeSDK --platform-name Linux --package-root ../../package-system --clean",
         "Lua-5.4.4-rev1-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name Linux --package-root ../../package-system/Lua/temp --clean",
         "Lua-5.4.4-rev1-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name Linux --package-root ../../package-system/Lua/temp --clean",
         "AwsIotDeviceSdkCpp-1.15.2-rev1-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/AwsIotDeviceSdkCpp --platform-name Linux --package-root ../../package-system --clean",
         "AwsIotDeviceSdkCpp-1.15.2-rev1-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/AwsIotDeviceSdkCpp --platform-name Linux --package-root ../../package-system --clean",
-        "freetype-2.10.4.16-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/freetype --platform-name Linux --package-root ../../package-system --clean",
+        "freetype-2.11.1-rev1-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/freetype --platform-name Linux --package-root ../../package-system/freetype/temp --clean",
         "googlebenchmark-1.5.0-rev2-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/googlebenchmark --platform-name Linux --package-root ../../package-system --clean",
         "googlebenchmark-1.5.0-rev2-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/googlebenchmark --platform-name Linux --package-root ../../package-system --clean",
         "googletest-1.8.1-rev4-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/googletest --platform-name Linux --package-root ../../package-system --clean",
         "googletest-1.8.1-rev4-linux": "Scripts/extras/pull_and_build_from_git.py ../../package-system/googletest --platform-name Linux --package-root ../../package-system --clean",
         "ISPCTexComp-36b80aa-rev1-linux": "package-system/ISPCTexComp/build_package_image.py",
         "ISPCTexComp-36b80aa-rev1-linux": "package-system/ISPCTexComp/build_package_image.py",
@@ -44,7 +44,7 @@
         "AWSNativeSDK-1.9.50-rev1-linux": "package-system/AWSNativeSDK-linux",
         "AWSNativeSDK-1.9.50-rev1-linux": "package-system/AWSNativeSDK-linux",
         "Lua-5.4.4-rev1-linux": "package-system/Lua/temp/Lua-linux",
         "Lua-5.4.4-rev1-linux": "package-system/Lua/temp/Lua-linux",
         "AwsIotDeviceSdkCpp-1.15.2-rev1-linux": "package-system/AwsIotDeviceSdkCpp-linux",
         "AwsIotDeviceSdkCpp-1.15.2-rev1-linux": "package-system/AwsIotDeviceSdkCpp-linux",
-        "freetype-2.10.4.16-linux": "package-system/freetype-linux",
+        "freetype-2.11.1-rev1-linux": "package-system/freetype/temp/freetype-linux",
         "googlebenchmark-1.5.0-rev2-linux": "package-system/googlebenchmark-linux",
         "googlebenchmark-1.5.0-rev2-linux": "package-system/googlebenchmark-linux",
         "googletest-1.8.1-rev4-linux": "package-system/googletest-linux",
         "googletest-1.8.1-rev4-linux": "package-system/googletest-linux",
         "ISPCTexComp-36b80aa-rev1-linux": "package-system/ISPCTexComp-linux",
         "ISPCTexComp-36b80aa-rev1-linux": "package-system/ISPCTexComp-linux",

+ 4 - 4
package_build_list_host_windows.json

@@ -16,8 +16,8 @@
         "DirectXShaderCompilerDxc-1.6.2112-o3de-rev1-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/DirectXShaderCompiler --platform-name Windows --package-root ../../package-system --clean",
         "DirectXShaderCompilerDxc-1.6.2112-o3de-rev1-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/DirectXShaderCompiler --platform-name Windows --package-root ../../package-system --clean",
         "expat-2.4.2-rev1-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/expat --platform-name Android --package-root ../../package-system/expat/temp --clean",
         "expat-2.4.2-rev1-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/expat --platform-name Android --package-root ../../package-system/expat/temp --clean",
         "expat-2.4.2-rev1-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/expat --platform-name Windows --package-root ../../package-system/expat/temp --clean",
         "expat-2.4.2-rev1-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/expat --platform-name Windows --package-root ../../package-system/expat/temp --clean",
-        "freetype-2.10.4.16-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/freetype --platform-name Android --package-root ../../package-system --clean",
-        "freetype-2.10.4.16-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/freetype --platform-name Windows --package-root ../../package-system --clean",
+        "freetype-2.11.1-rev1-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/freetype --platform-name Android --package-root ../../package-system/freetype/temp --clean",
+        "freetype-2.11.1-rev1-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/freetype --platform-name Windows --package-root ../../package-system/freetype/temp --clean",
         "googlebenchmark-1.5.0-rev2-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/googlebenchmark --platform-name Android --package-root ../../package-system --clean",
         "googlebenchmark-1.5.0-rev2-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/googlebenchmark --platform-name Android --package-root ../../package-system --clean",
         "googlebenchmark-1.5.0-rev2-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/googlebenchmark --platform-name Windows --package-root ../../package-system --clean",
         "googlebenchmark-1.5.0-rev2-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/googlebenchmark --platform-name Windows --package-root ../../package-system --clean",
         "googletest-1.8.1-rev4-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/googletest --platform-name Android --package-root ../../package-system --clean",
         "googletest-1.8.1-rev4-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/googletest --platform-name Android --package-root ../../package-system --clean",
@@ -74,8 +74,8 @@
     "d3dx12-headers-rev1-windows": "package-system/d3dx12-windows",
     "d3dx12-headers-rev1-windows": "package-system/d3dx12-windows",
     "expat-2.4.2-rev1-android": "package-system/expat/temp/expat-android",
     "expat-2.4.2-rev1-android": "package-system/expat/temp/expat-android",
     "expat-2.4.2-rev1-windows": "package-system/expat/temp/expat-windows",
     "expat-2.4.2-rev1-windows": "package-system/expat/temp/expat-windows",
-    "freetype-2.10.4.16-android": "package-system/freetype-android",
-    "freetype-2.10.4.16-windows": "package-system/freetype-windows",
+    "freetype-2.11.1-rev1-android": "package-system/freetype/temp/freetype-android",
+    "freetype-2.11.1-rev1-windows": "package-system/freetype/temp/freetype-windows",
     "glad-2.0.0-beta-rev2-multiplatform": "package-system/glad-multiplatform",
     "glad-2.0.0-beta-rev2-multiplatform": "package-system/glad-multiplatform",
     "googlebenchmark-1.5.0-rev2-android": "package-system/googlebenchmark-android",
     "googlebenchmark-1.5.0-rev2-android": "package-system/googlebenchmark-android",
     "googlebenchmark-1.5.0-rev2-windows": "package-system/googlebenchmark-windows",
     "googlebenchmark-1.5.0-rev2-windows": "package-system/googlebenchmark-windows",