From f08db935e646ae137c4d2ac9f2e6e3e5792a9de2 Mon Sep 17 00:00:00 2001 From: guillaume-haerinck Date: Tue, 1 Jul 2025 20:36:28 +0200 Subject: [PATCH 01/14] Build Lua with emscripten Signed-off-by: guillaume-haerinck --- Scripts/extras/pull_and_build_from_git.py | 11 ++++++++++- package-system/Lua/build_config.json | 10 +++++++++- package_build_list_host_windows.json | 2 ++ 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/Scripts/extras/pull_and_build_from_git.py b/Scripts/extras/pull_and_build_from_git.py index 376cef47..ebc25a0b 100644 --- a/Scripts/extras/pull_and_build_from_git.py +++ b/Scripts/extras/pull_and_build_from_git.py @@ -100,6 +100,7 @@ for situations where the generator does not support multiple configs) the key can contain the suffix of the configuration name (cmake_generate_args_debug, cmake_generate_args_release). For common args that should apply to every config, see cmake_generate_args_common above. + Note : If your Target Platform is Emscripten, the generate call is wrapped by emcmake utility * cmake_build_args : Additional build args to pass to cmake during the cmake build command @@ -191,6 +192,9 @@ """ +# The platform used to target WebAssembly +EMSCRIPTEN_PLATFORM = 'Emscripten' + # The current path of this script, expected to be under '3rdPartySource/Scripts' CURRENT_PATH = pathlib.Path(os.path.dirname(__file__)).resolve() @@ -746,7 +750,12 @@ def build_and_install_cmake(self): if self.package_info.cmake_src_subfolder: cmakelists_folder = cmakelists_folder / self.package_info.cmake_src_subfolder - cmake_generate_cmd = [self.cmake_command, + # emcmake self configure the proper environment when targeting WebAssembly + cmake_command = self.cmake_command + if self.package_info.platform_name == EMSCRIPTEN_PLATFORM: + cmake_command = 'emcmake ' + self.cmake_command + + cmake_generate_cmd = [cmake_command, '-S', str(cmakelists_folder.resolve()), '-B', str(self.build_folder.name)] diff --git a/package-system/Lua/build_config.json b/package-system/Lua/build_config.json index c686ad72..5007c393 100644 --- a/package-system/Lua/build_config.json +++ b/package-system/Lua/build_config.json @@ -36,6 +36,14 @@ "-DCMAKE_C_FLAGS=\"-fPIC -O2 -Wall -Wextra\"", "-DCMAKE_BUILD_TYPE=Release" ] + }, + "Emscripten":{ + "cmake_generate_args": [ + "-G", + "Ninja", + "-DCMAKE_C_FLAGS=\"-fPIC -O2 -Wall -Wextra\"", + "-DCMAKE_BUILD_TYPE=Release" + ] } }, "Darwin":{ @@ -77,7 +85,7 @@ "-DCMAKE_BUILD_TYPE=Release" ] }, - "Linux-aarch64": "@Linux" + "Linux-aarch64": "@Linux" } } } diff --git a/package_build_list_host_windows.json b/package_build_list_host_windows.json index 21d5e389..395d8fb3 100644 --- a/package_build_list_host_windows.json +++ b/package_build_list_host_windows.json @@ -27,6 +27,7 @@ "libsamplerate-0.2.1-rev2-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/libsamplerate --platform-name Windows --package-root ../../package-system --clean", "Lua-5.4.4-rev1-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name Android --package-root ../../package-system/Lua/temp --clean", "Lua-5.4.4-rev1-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name Windows --package-root ../../package-system/Lua/temp --clean", + "Lua-5.4.4-rev1-emscripten": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name Emscripten --package-root ../../package-system/Lua/temp --clean", "lz4-1.9.4-rev1-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/lz4 --platform-name Android --package-root ../../package-system/lz4/temp --clean", "lz4-1.9.4-rev1-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/lz4 --platform-name Windows --package-root ../../package-system/lz4/temp --clean", "mcpp-2.7.2_az.2-rev1-windows": "package-system/mcpp/get_and_build_mcpp.py mcpp-2.7.2_az.2-rev1", @@ -95,6 +96,7 @@ "lz4-1.9.4-rev1-windows": "package-system/lz4/temp/lz4-windows", "Lua-5.4.4-rev1-android": "package-system/Lua/temp/Lua-android", "Lua-5.4.4-rev1-windows": "package-system/Lua/temp/Lua-windows", + "Lua-5.4.4-rev1-emscripten": "package-system/Lua/temp/Lua-emscripten", "lux_core-2.2-rev5-multiplatform": "package-system/luxcore-multiplatform", "mcpp-2.7.2_az.2-rev1-windows": "package-system/mcpp-windows", "md5-2.0-multiplatform": "package-system/md5-multiplatform", From 5a73ac2bef8eb4b71fbd5c3145942477958f6294 Mon Sep 17 00:00:00 2001 From: guillaume-haerinck Date: Wed, 2 Jul 2025 01:02:30 +0200 Subject: [PATCH 02/14] Support zlib emscripten build Signed-off-by: guillaume-haerinck --- .gitattributes | 1 + package-system/zlib/build_config.json | 20 +++++++++++++++++++ .../zlib/emscripten-alias-fix.patch | 13 ++++++++++++ package_build_list_host_windows.json | 4 +++- 4 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 package-system/zlib/emscripten-alias-fix.patch diff --git a/.gitattributes b/.gitattributes index 861dbc45..f11821cd 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1 +1,2 @@ package-system/Crashpad/add_o3de_handler_extensions.patch eol=lf +package-system/zlib/emscripten-alias-fix.patch eol=lf diff --git a/package-system/zlib/build_config.json b/package-system/zlib/build_config.json index 4597f82b..98f6ef84 100644 --- a/package-system/zlib/build_config.json +++ b/package-system/zlib/build_config.json @@ -29,6 +29,26 @@ "custom_install_cmd": [ "install_zlib_android.cmd" ] + }, + "Emscripten":{ + "patch_file": "emscripten-alias-fix.patch", + "cmake_generate_args" : [ + "-G", + "Ninja", + "-DCMAKE_BUILD_TYPE=Release", + "-DCMAKE_CXX_STANDARD=17", + "-DBUILD_SHARED_LIBS=OFF", + "-DSKIP_INSTALL_ALL=ON" + ], + "cmake_build_args": [ + "--target", + "zlibstatic" + ], + "extra_files_to_copy": [ + ["temp/build/zconf.h", "zlib/include/zconf.h"], + ["temp/build/libz.a", "zlib/lib/libz.a"], + ["temp/src/zlib.h", "zlib/include/zlib.h"] + ] } }, diff --git a/package-system/zlib/emscripten-alias-fix.patch b/package-system/zlib/emscripten-alias-fix.patch new file mode 100644 index 00000000..085d64d6 --- /dev/null +++ b/package-system/zlib/emscripten-alias-fix.patch @@ -0,0 +1,13 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 0fe939d..0cce489 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -201,7 +201,7 @@ endif() + + if(UNIX) + # On unix-like platforms the library is almost always called libz +- set_target_properties(zlib zlibstatic PROPERTIES OUTPUT_NAME z) ++ set_target_properties(zlibstatic PROPERTIES OUTPUT_NAME z) + if(NOT APPLE) + set_target_properties(zlib PROPERTIES LINK_FLAGS "-Wl,--version-script,\"${CMAKE_CURRENT_SOURCE_DIR}/zlib.map\"") + endif() diff --git a/package_build_list_host_windows.json b/package_build_list_host_windows.json index 395d8fb3..a1517419 100644 --- a/package_build_list_host_windows.json +++ b/package_build_list_host_windows.json @@ -62,7 +62,8 @@ "vulkan-validationlayers-1.3.261-rev1-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/vulkan-validationlayers --platform-name Windows --package-root ../../package-system --clean", "vulkan-validationlayers-1.3.261-rev1-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/vulkan-validationlayers --platform-name Android --package-root ../../package-system --clean", "zlib-1.2.11-rev5-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/zlib --platform-name Android --package-root ../../package-system --clean", - "zlib-1.2.11-rev5-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/zlib --platform-name Windows --package-root ../../package-system --clean" + "zlib-1.2.11-rev5-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/zlib --platform-name Windows --package-root ../../package-system --clean", + "zlib-1.2.11-rev5-emscripten": "Scripts/extras/pull_and_build_from_git.py ../../package-system/zlib --platform-name Emscripten --package-root ../../package-system --clean" }, "build_from_folder": { "alembic-1.7.11-rev3-multiplatform": "package-system/alembic-multiplatform", @@ -135,6 +136,7 @@ "xxhash-0.7.4-rev1-multiplatform": "package-system/xxhash-multiplatform", "zlib-1.2.11-rev5-android": "package-system/zlib-android", "zlib-1.2.11-rev5-windows": "package-system/zlib-windows", + "zlib-1.2.11-rev5-emscripten": "package-system/zlib-emscripten", "zstd-1.35-multiplatform": "package-system/zstd-multiplatform" } } From b898149b3eb51e6a1142eff0483c097f62290528 Mon Sep 17 00:00:00 2001 From: guillaume-haerinck Date: Wed, 2 Jul 2025 08:08:35 +0200 Subject: [PATCH 03/14] Add gtest emscripten Signed-off-by: guillaume-haerinck --- package-system/googletest/build_config.json | 13 +++++++++++++ package_build_list_host_windows.json | 2 ++ 2 files changed, 15 insertions(+) diff --git a/package-system/googletest/build_config.json b/package-system/googletest/build_config.json index 92e5620d..c4f28d20 100644 --- a/package-system/googletest/build_config.json +++ b/package-system/googletest/build_config.json @@ -59,6 +59,19 @@ "custom_additional_libraries":[ ] + }, + "Emscripten": { + "cmake_generate_args" : [ + "-G", + "Ninja", + "-DCMAKE_CXX_FLAGS=\"-fPIC\"", + "-DCMAKE_CXX_STANDARD=17", + "-DCMAKE_BUILD_TYPE=Release" + ], + "custom_additional_compile_definitions":[ + "GTEST_HAS_TR1_TUPLE=0", + "GTEST_OS_SUPPORTS_DEATH_TEST=0" + ] } }, "Darwin":{ diff --git a/package_build_list_host_windows.json b/package_build_list_host_windows.json index a1517419..f4787a73 100644 --- a/package_build_list_host_windows.json +++ b/package_build_list_host_windows.json @@ -22,6 +22,7 @@ "googlebenchmark-1.7.0-rev1-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-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/googletest --platform-name Windows --package-root ../../package-system --clean", + "googletest-1.8.1-rev4-emscripten": "Scripts/extras/pull_and_build_from_git.py ../../package-system/googletest --platform-name Emscripten --package-root ../../package-system --clean", "ISPCTexComp-36b80aa-rev1-windows": "package-system/ISPCTexComp/build_package_image.py", "libsamplerate-0.2.1-rev2-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/libsamplerate --platform-name Android --package-root ../../package-system --custom-toolchain-file ../../Scripts/cmake/Platform/Android/Toolchain_android.cmake --clean", "libsamplerate-0.2.1-rev2-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/libsamplerate --platform-name Windows --package-root ../../package-system --clean", @@ -89,6 +90,7 @@ "googlebenchmark-1.7.0-rev1-windows": "package-system/googlebenchmark-windows", "googletest-1.8.1-rev4-android": "package-system/googletest-android", "googletest-1.8.1-rev4-windows": "package-system/googletest-windows", + "googletest-1.8.1-rev4-emscripten": "package-system/googletest-emscripten", "hdf5-1.0.11-rev2-multiplatform": "package-system/hdf5-multiplatform", "ISPCTexComp-36b80aa-rev1-windows": "package-system/ISPCTexComp-windows", "libsamplerate-0.2.1-rev2-android": "package-system/libsamplerate-android", From 6131a02f03131ffde8f3e06686447b5c7e84211e Mon Sep 17 00:00:00 2001 From: guillaume-haerinck Date: Wed, 2 Jul 2025 08:37:35 +0200 Subject: [PATCH 04/14] Add expat emscripten Signed-off-by: guillaume-haerinck --- package-system/expat/build_config.json | 6 ++++++ package_build_list_host_windows.json | 2 ++ 2 files changed, 8 insertions(+) diff --git a/package-system/expat/build_config.json b/package-system/expat/build_config.json index 855f1e37..af8d3fce 100644 --- a/package-system/expat/build_config.json +++ b/package-system/expat/build_config.json @@ -52,6 +52,12 @@ "custom_test_cmd" : [ "test_expat_android.cmd" ] + }, + "Emscripten": { + "cmake_generate_args": [ + "-G", + "Ninja" + ] } }, "Darwin": { diff --git a/package_build_list_host_windows.json b/package_build_list_host_windows.json index f4787a73..44d33f73 100644 --- a/package_build_list_host_windows.json +++ b/package_build_list_host_windows.json @@ -16,6 +16,7 @@ "DirectXShaderCompilerDxc-1.8.2505.1-o3de-rev3-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/DirectXShaderCompiler --platform-name Windows --package-root ../../package-system --clean", "expat-2.4.2-rev2-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-rev2-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-rev2-emscripten": "Scripts/extras/pull_and_build_from_git.py ../../package-system/expat --platform-name Emscripten --package-root ../../package-system/expat/temp --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.7.0-rev2-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/googlebenchmark --platform-name Android --package-root ../../package-system --clean", @@ -83,6 +84,7 @@ "d3dx12-headers-rev1-windows": "package-system/d3dx12-windows", "expat-2.4.2-rev2-android": "package-system/expat/temp/expat-android", "expat-2.4.2-rev2-windows": "package-system/expat/temp/expat-windows", + "expat-2.4.2-rev2-emscripten": "package-system/expat/temp/expat-emscripten", "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", From 6cc7f2287bcd898c99e73c2b41e58cb7e07e2dcb Mon Sep 17 00:00:00 2001 From: guillaume-haerinck Date: Wed, 2 Jul 2025 19:17:51 +0200 Subject: [PATCH 05/14] Add lz4 support Signed-off-by: guillaume-haerinck --- package-system/lz4/build_config.json | 7 +++++++ package_build_list_host_windows.json | 2 ++ 2 files changed, 9 insertions(+) diff --git a/package-system/lz4/build_config.json b/package-system/lz4/build_config.json index d871b2ae..9e215ac6 100644 --- a/package-system/lz4/build_config.json +++ b/package-system/lz4/build_config.json @@ -36,6 +36,13 @@ "-DCMAKE_TOOLCHAIN_FILE=../../../../Scripts/cmake/Platform/Android/Toolchain_android.cmake", "-DCMAKE_BUILD_TYPE=Release" ] + }, + "Emscripten": { + "cmake_generate_args_release": [ + "-G", + "Ninja", + "-DCMAKE_BUILD_TYPE=Release" + ] } }, "Darwin": { diff --git a/package_build_list_host_windows.json b/package_build_list_host_windows.json index 44d33f73..4f86d9f8 100644 --- a/package_build_list_host_windows.json +++ b/package_build_list_host_windows.json @@ -32,6 +32,7 @@ "Lua-5.4.4-rev1-emscripten": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name Emscripten --package-root ../../package-system/Lua/temp --clean", "lz4-1.9.4-rev1-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/lz4 --platform-name Android --package-root ../../package-system/lz4/temp --clean", "lz4-1.9.4-rev1-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/lz4 --platform-name Windows --package-root ../../package-system/lz4/temp --clean", + "lz4-1.9.4-rev2-emscripten": "Scripts/extras/pull_and_build_from_git.py ../../package-system/lz4 --platform-name Emscripten --package-root ../../package-system/lz4/temp --clean", "mcpp-2.7.2_az.2-rev1-windows": "package-system/mcpp/get_and_build_mcpp.py mcpp-2.7.2_az.2-rev1", "mikkelsen-1.0.0.4-android": "package-system/mikkelsen/build_package_image.py --platform android", "mikkelsen-1.0.0.4-windows": "package-system/mikkelsen/build_package_image.py", @@ -99,6 +100,7 @@ "libsamplerate-0.2.1-rev2-windows": "package-system/libsamplerate-windows", "lz4-1.9.4-rev1-android": "package-system/lz4/temp/lz4-android", "lz4-1.9.4-rev1-windows": "package-system/lz4/temp/lz4-windows", + "lz4-1.9.4-rev2-emscripten": "package-system/lz4/temp/lz4-emscripten", "Lua-5.4.4-rev1-android": "package-system/Lua/temp/Lua-android", "Lua-5.4.4-rev1-windows": "package-system/Lua/temp/Lua-windows", "Lua-5.4.4-rev1-emscripten": "package-system/Lua/temp/Lua-emscripten", From 765f5bbdf591d53ae1d50595465065535addb307 Mon Sep 17 00:00:00 2001 From: guillaume-haerinck Date: Wed, 2 Jul 2025 19:42:38 +0200 Subject: [PATCH 06/14] Setup emscripten on the CI Signed-off-by: guillaume-haerinck --- .github/workflows/build-package.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/build-package.yaml b/.github/workflows/build-package.yaml index 6a379f2d..e8c2f057 100644 --- a/.github/workflows/build-package.yaml +++ b/.github/workflows/build-package.yaml @@ -210,6 +210,12 @@ jobs: if: runner.os == 'macOS' run: | brew install nasm + + - name: Setup Emscripten + uses: mymindstorm/setup-emsdk@v14 + with: + version: 4.0.10 + - name: Setup NDK env: ANDROID_NDK_VERSION: 25.1.8937393 From 8fae18c381b54ae7ec742833cbd33adb1036bef2 Mon Sep 17 00:00:00 2001 From: guillaume-haerinck Date: Wed, 2 Jul 2025 20:54:05 +0200 Subject: [PATCH 07/14] Add support for openssl Signed-off-by: guillaume-haerinck --- Scripts/builders/vcpkgbuilder.py | 4 ++++ package-system/OpenSSL/build_package_image.py | 9 ++++++--- package-system/OpenSSL/test_OpenSSL_wasm32.cmd | 9 +++++++++ package_build_list_host_windows.json | 2 ++ 4 files changed, 21 insertions(+), 3 deletions(-) create mode 100644 package-system/OpenSSL/test_OpenSSL_wasm32.cmd diff --git a/Scripts/builders/vcpkgbuilder.py b/Scripts/builders/vcpkgbuilder.py index b7a59885..d4e4a378 100644 --- a/Scripts/builders/vcpkgbuilder.py +++ b/Scripts/builders/vcpkgbuilder.py @@ -73,6 +73,10 @@ def tripletForPlatform(platformName: str, static: bool): 'ios': { True: 'arm64-ios', False: 'arm64-ios-dynamic', + }, + 'wasm32': { + True: 'wasm32-emscripten', + False: 'wasm32-emscripten', } } try: diff --git a/package-system/OpenSSL/build_package_image.py b/package-system/OpenSSL/build_package_image.py index ba78b67c..7ba946d4 100644 --- a/package-system/OpenSSL/build_package_image.py +++ b/package-system/OpenSSL/build_package_image.py @@ -24,7 +24,7 @@ def main(): parser.add_argument( '--platform-name', dest='platformName', - choices=['windows', 'android', 'mac', 'ios'], + choices=['windows', 'android', 'mac', 'ios', 'wasm32'], default=VcpkgBuilder.defaultPackagePlatformName(), ) args = parser.parse_args() @@ -45,20 +45,23 @@ def main(): 'mac': True, 'ios': True, 'windows': True, + 'wasm32': True, } revisionForPlatform = { 'android': 'rev2', 'mac': 'rev1', 'ios': 'rev1', - 'windows': 'rev1' + 'windows': 'rev1', + "wasm32": 'rev1', } testScriptForPlatform = { 'android' : opensslPackageSourceDir / 'test_OpenSSL_android.cmd', 'mac' : opensslPackageSourceDir / 'test_OpenSSL_mac.sh', 'ios' : opensslPackageSourceDir / 'test_OpenSSL_ios.sh', - 'windows' : opensslPackageSourceDir / 'test_OpenSSL_windows.cmd' + 'windows' : opensslPackageSourceDir / 'test_OpenSSL_windows.cmd', + 'wasm32' : opensslPackageSourceDir / 'test_OpenSSL_wasm32.cmd' } with TemporaryDirectory() as tempdir: diff --git a/package-system/OpenSSL/test_OpenSSL_wasm32.cmd b/package-system/OpenSSL/test_OpenSSL_wasm32.cmd new file mode 100644 index 00000000..71eb511a --- /dev/null +++ b/package-system/OpenSSL/test_OpenSSL_wasm32.cmd @@ -0,0 +1,9 @@ +@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 # + +exit /b 0 diff --git a/package_build_list_host_windows.json b/package_build_list_host_windows.json index 4f86d9f8..f3604514 100644 --- a/package_build_list_host_windows.json +++ b/package_build_list_host_windows.json @@ -43,6 +43,7 @@ "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-rev1-windows": "package-system/OpenSSL/build_package_image.py", + "OpenSSL-1.1.1o-rev1-emscripten": "package-system/OpenSSL/build_package_image.py --platform-name wasm32", "OpenXR-1.1.41-rev2-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenXR --platform-name Android --package-root ../../package-system/OpenXR/temp --clean", "OpenXR-1.1.41-rev2-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenXR --platform-name Windows --package-root ../../package-system/OpenXR/temp --clean", "PhysX-4.1.2.29882248-rev8-android": "package-system/PhysX/build_package_image.py --package-name PhysX-4.1.2.29882248 --package-rev rev8 --platform android", @@ -116,6 +117,7 @@ "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-rev1-windows": "package-system/OpenSSL/temp/OpenSSL-windows", + "OpenSSL-1.1.1o-rev1-emscripten": "package-system/OpenSSL/temp/OpenSSL-emscripten", "OpenXR-1.1.41-rev2-android": "package-system/OpenXR/temp/OpenXR-android", "OpenXR-1.1.41-rev2-windows": "package-system/OpenXR/temp/OpenXR-windows", "PhysX-4.1.2.29882248-rev8-android": "package-system/PhysX-android", From 073f04526bcc492f0d297c2ae5ee4b3397b755c7 Mon Sep 17 00:00:00 2001 From: guillaume-haerinck Date: Thu, 3 Jul 2025 01:01:38 +0200 Subject: [PATCH 08/14] Add minimum cmake version to prevent fail on latest Signed-off-by: guillaume-haerinck --- package-system/Lua/build_config.json | 3 +++ package-system/expat/build_config.json | 3 ++- package-system/googletest/build_config.json | 3 +++ package-system/lz4/build_config.json | 3 ++- package-system/zlib/build_config.json | 3 +++ 5 files changed, 13 insertions(+), 2 deletions(-) diff --git a/package-system/Lua/build_config.json b/package-system/Lua/build_config.json index 5007c393..fc813db4 100644 --- a/package-system/Lua/build_config.json +++ b/package-system/Lua/build_config.json @@ -13,6 +13,9 @@ "CMakeLists.txt", "LICENSE.txt" ], + "cmake_generate_args_common": [ + "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" + ], "cmake_build_args_common": [ "--parallel" ], diff --git a/package-system/expat/build_config.json b/package-system/expat/build_config.json index af8d3fce..40d1c7bf 100644 --- a/package-system/expat/build_config.json +++ b/package-system/expat/build_config.json @@ -23,7 +23,8 @@ "-DEXPAT_BUILD_FUZZERS=OFF", "-DEXPAT_BUILD_TESTS=OFF", "-DEXPAT_BUILD_TOOLS=OFF", - "-DEXPAT_SHARED_LIBS=OFF" + "-DEXPAT_SHARED_LIBS=OFF", + "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" ], "cmake_build_args_common": [ "--parallel" diff --git a/package-system/googletest/build_config.json b/package-system/googletest/build_config.json index c4f28d20..0b798225 100644 --- a/package-system/googletest/build_config.json +++ b/package-system/googletest/build_config.json @@ -8,6 +8,9 @@ "package_license_file":"LICENSE", "cmake_find_template":"Findgoogletest.cmake.template", "cmake_find_target":"Findgoogletest.cmake", + "cmake_generate_args_common": [ + "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" + ], "Platforms":{ "Windows":{ "Windows":{ diff --git a/package-system/lz4/build_config.json b/package-system/lz4/build_config.json index 9e215ac6..7f3674e2 100644 --- a/package-system/lz4/build_config.json +++ b/package-system/lz4/build_config.json @@ -13,7 +13,8 @@ ], "cmake_generate_args_common": [ "-DBUILD_SHARED_LIBS=0", - "-DCMAKE_CXX_STANDARD=17" + "-DCMAKE_CXX_STANDARD=17", + "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" ], "cmake_build_args_common": [ "-j" diff --git a/package-system/zlib/build_config.json b/package-system/zlib/build_config.json index 98f6ef84..d7502fe9 100644 --- a/package-system/zlib/build_config.json +++ b/package-system/zlib/build_config.json @@ -12,6 +12,9 @@ "package_license_file":"LICENSE", "cmake_find_source":"FindZLIB.cmake", "cmake_find_target":"FindZLIB.cmake", + "cmake_generate_args_common": [ + "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" + ], "Platforms":{ "Windows":{ "Windows":{ From acfc4e59344317b80cbd5d45bc54bd2c5092d0b4 Mon Sep 17 00:00:00 2001 From: guillaume-haerinck Date: Thu, 3 Jul 2025 08:11:33 +0200 Subject: [PATCH 09/14] Add samplerate lib Signed-off-by: guillaume-haerinck --- package-system/libsamplerate/build_config.json | 16 ++++++++++++++++ package_build_list_host_windows.json | 2 ++ 2 files changed, 18 insertions(+) diff --git a/package-system/libsamplerate/build_config.json b/package-system/libsamplerate/build_config.json index 8aa4cd1c..31cefe81 100644 --- a/package-system/libsamplerate/build_config.json +++ b/package-system/libsamplerate/build_config.json @@ -8,6 +8,9 @@ "package_license_file":"COPYING", "cmake_find_template":"Findlibsamplerate.cmake.template", "cmake_find_target":"Findlibsamplerate.cmake", + "cmake_generate_args_common": [ + "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" + ], "Platforms":{ "Windows":{ "Windows":{ @@ -45,6 +48,19 @@ "cmake_build_args":[ "--target samplerate" ] + }, + "Emscripten":{ + "build_configs":[ + "Release" + ], + "cmake_generate_args_release":[ + "-G", + "Ninja", + "-DCMAKE_BUILD_TYPE=Release" + ], + "cmake_build_args":[ + "--target samplerate" + ] } }, "Darwin":{ diff --git a/package_build_list_host_windows.json b/package_build_list_host_windows.json index f3604514..794b0524 100644 --- a/package_build_list_host_windows.json +++ b/package_build_list_host_windows.json @@ -27,6 +27,7 @@ "ISPCTexComp-36b80aa-rev1-windows": "package-system/ISPCTexComp/build_package_image.py", "libsamplerate-0.2.1-rev2-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/libsamplerate --platform-name Android --package-root ../../package-system --custom-toolchain-file ../../Scripts/cmake/Platform/Android/Toolchain_android.cmake --clean", "libsamplerate-0.2.1-rev2-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/libsamplerate --platform-name Windows --package-root ../../package-system --clean", + "libsamplerate-0.2.1-rev2-emscripten": "Scripts/extras/pull_and_build_from_git.py ../../package-system/libsamplerate --platform-name Emscripten --package-root ../../package-system --clean", "Lua-5.4.4-rev1-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name Android --package-root ../../package-system/Lua/temp --clean", "Lua-5.4.4-rev1-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name Windows --package-root ../../package-system/Lua/temp --clean", "Lua-5.4.4-rev1-emscripten": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name Emscripten --package-root ../../package-system/Lua/temp --clean", @@ -99,6 +100,7 @@ "ISPCTexComp-36b80aa-rev1-windows": "package-system/ISPCTexComp-windows", "libsamplerate-0.2.1-rev2-android": "package-system/libsamplerate-android", "libsamplerate-0.2.1-rev2-windows": "package-system/libsamplerate-windows", + "libsamplerate-0.2.1-rev2-emscripten": "package-system/libsamplerate-windows", "lz4-1.9.4-rev1-android": "package-system/lz4/temp/lz4-android", "lz4-1.9.4-rev1-windows": "package-system/lz4/temp/lz4-windows", "lz4-1.9.4-rev2-emscripten": "package-system/lz4/temp/lz4-emscripten", From 5e855860a203fae30f5cd53fb2821521cb79f978 Mon Sep 17 00:00:00 2001 From: guillaume-haerinck Date: Thu, 3 Jul 2025 08:26:49 +0200 Subject: [PATCH 10/14] Remove all packages not currently working on the CI Signed-off-by: guillaume-haerinck --- package_build_list_host_windows.json | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/package_build_list_host_windows.json b/package_build_list_host_windows.json index 794b0524..b2b14d4b 100644 --- a/package_build_list_host_windows.json +++ b/package_build_list_host_windows.json @@ -67,8 +67,8 @@ "vulkan-validationlayers-1.3.261-rev1-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/vulkan-validationlayers --platform-name Windows --package-root ../../package-system --clean", "vulkan-validationlayers-1.3.261-rev1-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/vulkan-validationlayers --platform-name Android --package-root ../../package-system --clean", "zlib-1.2.11-rev5-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/zlib --platform-name Android --package-root ../../package-system --clean", - "zlib-1.2.11-rev5-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/zlib --platform-name Windows --package-root ../../package-system --clean", - "zlib-1.2.11-rev5-emscripten": "Scripts/extras/pull_and_build_from_git.py ../../package-system/zlib --platform-name Emscripten --package-root ../../package-system --clean" + "zlib-1.2.11-rev5-emscripten": "Scripts/extras/pull_and_build_from_git.py ../../package-system/zlib --platform-name Emscripten --package-root ../../package-system --clean", + "zlib-1.2.11-rev5-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/zlib --platform-name Windows --package-root ../../package-system --clean" }, "build_from_folder": { "alembic-1.7.11-rev3-multiplatform": "package-system/alembic-multiplatform", @@ -100,10 +100,8 @@ "ISPCTexComp-36b80aa-rev1-windows": "package-system/ISPCTexComp-windows", "libsamplerate-0.2.1-rev2-android": "package-system/libsamplerate-android", "libsamplerate-0.2.1-rev2-windows": "package-system/libsamplerate-windows", - "libsamplerate-0.2.1-rev2-emscripten": "package-system/libsamplerate-windows", "lz4-1.9.4-rev1-android": "package-system/lz4/temp/lz4-android", "lz4-1.9.4-rev1-windows": "package-system/lz4/temp/lz4-windows", - "lz4-1.9.4-rev2-emscripten": "package-system/lz4/temp/lz4-emscripten", "Lua-5.4.4-rev1-android": "package-system/Lua/temp/Lua-android", "Lua-5.4.4-rev1-windows": "package-system/Lua/temp/Lua-windows", "Lua-5.4.4-rev1-emscripten": "package-system/Lua/temp/Lua-emscripten", @@ -119,7 +117,6 @@ "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-rev1-windows": "package-system/OpenSSL/temp/OpenSSL-windows", - "OpenSSL-1.1.1o-rev1-emscripten": "package-system/OpenSSL/temp/OpenSSL-emscripten", "OpenXR-1.1.41-rev2-android": "package-system/OpenXR/temp/OpenXR-android", "OpenXR-1.1.41-rev2-windows": "package-system/OpenXR/temp/OpenXR-windows", "PhysX-4.1.2.29882248-rev8-android": "package-system/PhysX-android", From 746dde0ad7558ef0300341397351b9d8316feb63 Mon Sep 17 00:00:00 2001 From: guillaume-haerinck Date: Thu, 3 Jul 2025 08:29:59 +0200 Subject: [PATCH 11/14] Remove packages not working on the CI Signed-off-by: guillaume-haerinck --- package_build_list_host_windows.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/package_build_list_host_windows.json b/package_build_list_host_windows.json index b2b14d4b..31098eb3 100644 --- a/package_build_list_host_windows.json +++ b/package_build_list_host_windows.json @@ -27,13 +27,11 @@ "ISPCTexComp-36b80aa-rev1-windows": "package-system/ISPCTexComp/build_package_image.py", "libsamplerate-0.2.1-rev2-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/libsamplerate --platform-name Android --package-root ../../package-system --custom-toolchain-file ../../Scripts/cmake/Platform/Android/Toolchain_android.cmake --clean", "libsamplerate-0.2.1-rev2-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/libsamplerate --platform-name Windows --package-root ../../package-system --clean", - "libsamplerate-0.2.1-rev2-emscripten": "Scripts/extras/pull_and_build_from_git.py ../../package-system/libsamplerate --platform-name Emscripten --package-root ../../package-system --clean", "Lua-5.4.4-rev1-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name Android --package-root ../../package-system/Lua/temp --clean", "Lua-5.4.4-rev1-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name Windows --package-root ../../package-system/Lua/temp --clean", "Lua-5.4.4-rev1-emscripten": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name Emscripten --package-root ../../package-system/Lua/temp --clean", "lz4-1.9.4-rev1-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/lz4 --platform-name Android --package-root ../../package-system/lz4/temp --clean", "lz4-1.9.4-rev1-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/lz4 --platform-name Windows --package-root ../../package-system/lz4/temp --clean", - "lz4-1.9.4-rev2-emscripten": "Scripts/extras/pull_and_build_from_git.py ../../package-system/lz4 --platform-name Emscripten --package-root ../../package-system/lz4/temp --clean", "mcpp-2.7.2_az.2-rev1-windows": "package-system/mcpp/get_and_build_mcpp.py mcpp-2.7.2_az.2-rev1", "mikkelsen-1.0.0.4-android": "package-system/mikkelsen/build_package_image.py --platform android", "mikkelsen-1.0.0.4-windows": "package-system/mikkelsen/build_package_image.py", @@ -44,7 +42,6 @@ "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-rev1-windows": "package-system/OpenSSL/build_package_image.py", - "OpenSSL-1.1.1o-rev1-emscripten": "package-system/OpenSSL/build_package_image.py --platform-name wasm32", "OpenXR-1.1.41-rev2-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenXR --platform-name Android --package-root ../../package-system/OpenXR/temp --clean", "OpenXR-1.1.41-rev2-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/OpenXR --platform-name Windows --package-root ../../package-system/OpenXR/temp --clean", "PhysX-4.1.2.29882248-rev8-android": "package-system/PhysX/build_package_image.py --package-name PhysX-4.1.2.29882248 --package-rev rev8 --platform android", From 8abcaa6437e4cae3afeed254b01fce0c425470e6 Mon Sep 17 00:00:00 2001 From: guillaume-haerinck Date: Wed, 13 Aug 2025 21:30:15 +0200 Subject: [PATCH 12/14] pr review Signed-off-by: guillaume-haerinck --- .gitattributes | 1 - package-system/googletest/build_config.json | 13 ------------- package-system/zlib/.gitattributes | 1 + package_build_list_host_windows.json | 2 -- 4 files changed, 1 insertion(+), 16 deletions(-) create mode 100644 package-system/zlib/.gitattributes diff --git a/.gitattributes b/.gitattributes index f11821cd..861dbc45 100644 --- a/.gitattributes +++ b/.gitattributes @@ -1,2 +1 @@ package-system/Crashpad/add_o3de_handler_extensions.patch eol=lf -package-system/zlib/emscripten-alias-fix.patch eol=lf diff --git a/package-system/googletest/build_config.json b/package-system/googletest/build_config.json index 0b798225..f36b1bf5 100644 --- a/package-system/googletest/build_config.json +++ b/package-system/googletest/build_config.json @@ -62,19 +62,6 @@ "custom_additional_libraries":[ ] - }, - "Emscripten": { - "cmake_generate_args" : [ - "-G", - "Ninja", - "-DCMAKE_CXX_FLAGS=\"-fPIC\"", - "-DCMAKE_CXX_STANDARD=17", - "-DCMAKE_BUILD_TYPE=Release" - ], - "custom_additional_compile_definitions":[ - "GTEST_HAS_TR1_TUPLE=0", - "GTEST_OS_SUPPORTS_DEATH_TEST=0" - ] } }, "Darwin":{ diff --git a/package-system/zlib/.gitattributes b/package-system/zlib/.gitattributes new file mode 100644 index 00000000..771936b6 --- /dev/null +++ b/package-system/zlib/.gitattributes @@ -0,0 +1 @@ +emscripten-alias-fix.patch eol=lf diff --git a/package_build_list_host_windows.json b/package_build_list_host_windows.json index 31098eb3..89ae9107 100644 --- a/package_build_list_host_windows.json +++ b/package_build_list_host_windows.json @@ -23,7 +23,6 @@ "googlebenchmark-1.7.0-rev1-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-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/googletest --platform-name Windows --package-root ../../package-system --clean", - "googletest-1.8.1-rev4-emscripten": "Scripts/extras/pull_and_build_from_git.py ../../package-system/googletest --platform-name Emscripten --package-root ../../package-system --clean", "ISPCTexComp-36b80aa-rev1-windows": "package-system/ISPCTexComp/build_package_image.py", "libsamplerate-0.2.1-rev2-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/libsamplerate --platform-name Android --package-root ../../package-system --custom-toolchain-file ../../Scripts/cmake/Platform/Android/Toolchain_android.cmake --clean", "libsamplerate-0.2.1-rev2-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/libsamplerate --platform-name Windows --package-root ../../package-system --clean", @@ -92,7 +91,6 @@ "googlebenchmark-1.7.0-rev1-windows": "package-system/googlebenchmark-windows", "googletest-1.8.1-rev4-android": "package-system/googletest-android", "googletest-1.8.1-rev4-windows": "package-system/googletest-windows", - "googletest-1.8.1-rev4-emscripten": "package-system/googletest-emscripten", "hdf5-1.0.11-rev2-multiplatform": "package-system/hdf5-multiplatform", "ISPCTexComp-36b80aa-rev1-windows": "package-system/ISPCTexComp-windows", "libsamplerate-0.2.1-rev2-android": "package-system/libsamplerate-android", From 91a06748bd5f23ff2217f8d7368c3f25a153a92a Mon Sep 17 00:00:00 2001 From: guillaume-haerinck Date: Wed, 13 Aug 2025 21:32:23 +0200 Subject: [PATCH 13/14] leftover from review Signed-off-by: guillaume-haerinck --- package-system/googletest/build_config.json | 3 --- 1 file changed, 3 deletions(-) diff --git a/package-system/googletest/build_config.json b/package-system/googletest/build_config.json index f36b1bf5..92e5620d 100644 --- a/package-system/googletest/build_config.json +++ b/package-system/googletest/build_config.json @@ -8,9 +8,6 @@ "package_license_file":"LICENSE", "cmake_find_template":"Findgoogletest.cmake.template", "cmake_find_target":"Findgoogletest.cmake", - "cmake_generate_args_common": [ - "-DCMAKE_POLICY_VERSION_MINIMUM=3.5" - ], "Platforms":{ "Windows":{ "Windows":{ From f2c374f3432fd81a2bd0746af0d7f08757fa0110 Mon Sep 17 00:00:00 2001 From: guillaume-haerinck Date: Sun, 15 Feb 2026 21:21:05 +0100 Subject: [PATCH 14/14] Fix lua declaration Signed-off-by: guillaume-haerinck --- package_build_list_host_windows.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package_build_list_host_windows.json b/package_build_list_host_windows.json index 89ae9107..cbbd83b4 100644 --- a/package_build_list_host_windows.json +++ b/package_build_list_host_windows.json @@ -28,7 +28,7 @@ "libsamplerate-0.2.1-rev2-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/libsamplerate --platform-name Windows --package-root ../../package-system --clean", "Lua-5.4.4-rev1-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name Android --package-root ../../package-system/Lua/temp --clean", "Lua-5.4.4-rev1-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name Windows --package-root ../../package-system/Lua/temp --clean", - "Lua-5.4.4-rev1-emscripten": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name Emscripten --package-root ../../package-system/Lua/temp --clean", + "Lua-5.4.4-rev2-emscripten": "Scripts/extras/pull_and_build_from_git.py ../../package-system/Lua --platform-name Emscripten --package-root ../../package-system/Lua/temp --clean", "lz4-1.9.4-rev1-android": "Scripts/extras/pull_and_build_from_git.py ../../package-system/lz4 --platform-name Android --package-root ../../package-system/lz4/temp --clean", "lz4-1.9.4-rev1-windows": "Scripts/extras/pull_and_build_from_git.py ../../package-system/lz4 --platform-name Windows --package-root ../../package-system/lz4/temp --clean", "mcpp-2.7.2_az.2-rev1-windows": "package-system/mcpp/get_and_build_mcpp.py mcpp-2.7.2_az.2-rev1", @@ -99,7 +99,7 @@ "lz4-1.9.4-rev1-windows": "package-system/lz4/temp/lz4-windows", "Lua-5.4.4-rev1-android": "package-system/Lua/temp/Lua-android", "Lua-5.4.4-rev1-windows": "package-system/Lua/temp/Lua-windows", - "Lua-5.4.4-rev1-emscripten": "package-system/Lua/temp/Lua-emscripten", + "Lua-5.4.4-rev2-emscripten": "package-system/Lua/temp/Lua-emscripten", "lux_core-2.2-rev5-multiplatform": "package-system/luxcore-multiplatform", "mcpp-2.7.2_az.2-rev1-windows": "package-system/mcpp-windows", "md5-2.0-multiplatform": "package-system/md5-multiplatform",