diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index bf3904d3d..24a80bd83 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -606,7 +606,7 @@ jobs: runs-on: windows-latest strategy: matrix: - haxe-version: [4.0.5, 4.1.5, 4.2.5, 4.3.1] + haxe-version: [4.0.5, 4.1.5, 4.2.5, 4.3.6] steps: - uses: actions/checkout@v4 @@ -715,7 +715,7 @@ jobs: - uses: krdlab/setup-haxe@v1 with: - haxe-version: 4.3.3 # minimum required version for HL/C + haxe-version: 4.3.3 # minimum required version for HL/C is 4.3.3 - name: Set HAXEPATH (Windows) if: runner.os == 'Windows' @@ -756,14 +756,18 @@ jobs: lime build SimpleAudio hlc -release -verbose -nocolor html5-samples: + needs: package-haxelib runs-on: ubuntu-20.04 + strategy: + matrix: + haxe-version: [3.4.7, 4.0.5, 4.1.5, 4.2.5, 4.3.6] steps: - uses: actions/checkout@v4 - uses: krdlab/setup-haxe@v1 with: - haxe-version: ${{ env.HAXE_VERSION }} + haxe-version: ${{ matrix.haxe-version }} - name: Set HAXEPATH run: | @@ -771,45 +775,51 @@ jobs: - name: Install Haxe dependencies run: | - haxelib install format --quiet - haxelib install hxp --quiet haxelib install genes --quiet haxelib git lime-samples https://github.com/openfl/lime-samples --quiet + - uses: actions/download-artifact@v4 + with: + name: lime-haxelib + path: lime-haxelib + - name: Prepare Lime run: | - haxelib dev lime ${{ github.workspace }} - haxelib run lime setup -alias -y -nocffi -eval + haxelib dev lime lime-haxelib + haxelib run lime setup -alias -y -nocffi - name: Build HelloWorld sample run: | - lime create HelloWorld -verbose -nocolor -eval - lime build HelloWorld html5 -release -verbose -nocolor -eval + lime create HelloWorld -verbose -nocolor + lime build HelloWorld html5 -release -verbose -nocolor - name: Build HelloWorld variants + if: ${{ matrix.haxe-version != '3.4.7' }} run: | - lime build HelloWorld html5 -clean -release -verbose -nocolor --haxelib=genes -eval - lime build HelloWorld html5 -clean -release -verbose -nocolor -minify -terser -eval + lime build HelloWorld html5 -clean -release -verbose -nocolor --haxelib=genes + lime build HelloWorld html5 -clean -release -verbose -nocolor -minify -terser - name: Build SimpleImage sample run: | - lime create SimpleImage -verbose -nocolor -eval - lime build SimpleImage html5 -release -verbose -nocolor -eval + lime create SimpleImage -verbose -nocolor + lime build SimpleImage html5 -release -verbose -nocolor - name: Build SimpleImage variants + if: ${{ matrix.haxe-version != '3.4.7' }} run: | - lime build SimpleImage html5 -clean -release -verbose -nocolor --haxelib=genes -eval - lime build SimpleImage html5 -clean -release -verbose -nocolor -minify -terser -eval + lime build SimpleImage html5 -clean -release -verbose -nocolor --haxelib=genes + lime build SimpleImage html5 -clean -release -verbose -nocolor -minify -terser - name: Build SimpleAudio sample run: | - lime create SimpleAudio -verbose -nocolor -eval - lime build SimpleAudio html5 -release -verbose -nocolor -eval + lime create SimpleAudio -verbose -nocolor + lime build SimpleAudio html5 -release -verbose -nocolor - name: Build SimpleAudio variants + if: ${{ matrix.haxe-version != '3.4.7' }} run: | - lime build SimpleAudio html5 -clean -release -verbose -nocolor --haxelib=genes -eval - lime build SimpleAudio html5 -clean -release -verbose -nocolor -minify -terser -eval + lime build SimpleAudio html5 -clean -release -verbose -nocolor --haxelib=genes + lime build SimpleAudio html5 -clean -release -verbose -nocolor -minify -terser neko-samples: needs: package-haxelib diff --git a/project/lib/cairo b/project/lib/cairo index b43e7c6f3..200441e68 160000 --- a/project/lib/cairo +++ b/project/lib/cairo @@ -1 +1 @@ -Subproject commit b43e7c6f3cf7855e16170a06d3a9c7234c60ca94 +Subproject commit 200441e6855854eb4dbf338e44d67b00ababe07f diff --git a/project/lib/freetype-files.xml b/project/lib/freetype-files.xml index c9e9e69e5..722fc2508 100644 --- a/project/lib/freetype-files.xml +++ b/project/lib/freetype-files.xml @@ -16,6 +16,7 @@ + @@ -79,6 +80,7 @@ + diff --git a/project/lib/harfbuzz b/project/lib/harfbuzz index afcae83a0..7b27c8edd 160000 --- a/project/lib/harfbuzz +++ b/project/lib/harfbuzz @@ -1 +1 @@ -Subproject commit afcae83a064843d71d47624bc162e121cc56c08b +Subproject commit 7b27c8edd46c674e01dd226fa9e1aa7549f5c436 diff --git a/project/lib/harfbuzz-files.xml b/project/lib/harfbuzz-files.xml index 68f882a6b..60625a997 100644 --- a/project/lib/harfbuzz-files.xml +++ b/project/lib/harfbuzz-files.xml @@ -30,15 +30,18 @@ - + + + + @@ -62,6 +65,9 @@ + + + diff --git a/src/lime/_internal/backend/html5/HTML5Thread.hx b/src/lime/_internal/backend/html5/HTML5Thread.hx index 022a085da..9f744e59e 100644 --- a/src/lime/_internal/backend/html5/HTML5Thread.hx +++ b/src/lime/_internal/backend/html5/HTML5Thread.hx @@ -96,7 +96,7 @@ class HTML5Thread { var thread:HTML5Thread = new HTML5Thread(url.href, new Worker(url.href)); // Run `job` on the new thread. - thread.sendMessage(job); + thread.sendMessage(#if !haxe4 cast #end job); return thread; #else @@ -416,7 +416,7 @@ abstract WorkFunction(WorkFunctionData) from Wor else { #if !macro - this.sourceCode = (cast this.func:Function).toString(); + this.sourceCode = (cast this.func #if haxe4 :Function #end).toString(); if (this.sourceCode.indexOf("[native code]") < 0) { // All set. diff --git a/src/lime/media/AudioManager.hx b/src/lime/media/AudioManager.hx index 162ed40e7..8a085f253 100644 --- a/src/lime/media/AudioManager.hx +++ b/src/lime/media/AudioManager.hx @@ -34,9 +34,12 @@ class AudioManager var alc = context.openal; var device = alc.openDevice(); - var ctx = alc.createContext(device); - alc.makeContextCurrent(ctx); - alc.processContext(ctx); + if (device != null) + { + var ctx = alc.createContext(device); + alc.makeContextCurrent(ctx); + alc.processContext(ctx); + } } #end } diff --git a/tools/platforms/IOSPlatform.hx b/tools/platforms/IOSPlatform.hx index cd1cca661..5d1a98660 100644 --- a/tools/platforms/IOSPlatform.hx +++ b/tools/platforms/IOSPlatform.hx @@ -354,7 +354,7 @@ class IOSPlatform extends PlatformTarget } context.IOS_LINKER_FLAGS = ["-stdlib=libc++"].concat(project.config.getArrayString("ios.linker-flags")); - context.IOS_NON_EXEMPT_ENCRYPTION = project.config.getBool("ios.non-exempt-encryption", true); + context.IOS_NON_EXEMPT_ENCRYPTION = project.config.getBool("ios.non-exempt-encryption", false); switch (project.window.orientation) { diff --git a/tools/platforms/MacPlatform.hx b/tools/platforms/MacPlatform.hx index 64b89f565..b087e9174 100644 --- a/tools/platforms/MacPlatform.hx +++ b/tools/platforms/MacPlatform.hx @@ -711,7 +711,7 @@ class MacPlatform extends PlatformTarget continue; } } - if (Lambda.exists(homebrewDirs, dirPath -> StringTools.startsWith(resolvedLibPath, dirPath))) + if (Lambda.exists(homebrewDirs, function(dirPath:String):Bool { return StringTools.startsWith(resolvedLibPath, dirPath); })) { homebrewDependencyPaths.push(libPath); pathsToSearchForHomebrewDependencies.push(resolvedLibPath); diff --git a/tools/platforms/WindowsPlatform.hx b/tools/platforms/WindowsPlatform.hx index 98c5eea32..8355c7077 100644 --- a/tools/platforms/WindowsPlatform.hx +++ b/tools/platforms/WindowsPlatform.hx @@ -383,7 +383,7 @@ class WindowsPlatform extends PlatformTarget var visualStudioPath = StringTools.trim(vswhereOutput); var vcvarsallPath = visualStudioPath + "\\VC\\Auxiliary\\Build\\vcvarsall.bat"; // this command sets up the environment variables and things that visual studio requires - var vcvarsallCommand = [vcvarsallPath, "x64"].map(arg -> ~/([&|\(\)<>\^ ])/g.replace(arg, "^$1")); + var vcvarsallCommand = [vcvarsallPath, "x64"].map(function(arg:String):String { return ~/([&|\(\)<>\^ ])/g.replace(arg, "^$1"); }); // this command runs the cl.exe c compiler from visual studio var clCommand = ["cl.exe", "/Ox", "/Fe:" + executablePath, "-I", Path.combine(targetDirectory, "obj"), Path.combine(targetDirectory, "obj/ApplicationMain.c")]; for (file in System.readDirectory(applicationDirectory)) @@ -398,7 +398,7 @@ class WindowsPlatform extends PlatformTarget } clCommand.push("/link"); clCommand.push("/subsystem:windows"); - clCommand = clCommand.map(arg -> ~/([&|\(\)<>\^ ])/g.replace(arg, "^$1")); + clCommand = clCommand.map(function(arg:String):String { return ~/([&|\(\)<>\^ ])/g.replace(arg, "^$1"); }); // combine both commands into one command = ["cmd.exe", "/s", "/c", vcvarsallCommand.join(" ") + " && " + clCommand.join(" ")]; } diff --git a/tools/utils/PlatformSetup.hx b/tools/utils/PlatformSetup.hx index 9dee297a5..7e2dee07c 100644 --- a/tools/utils/PlatformSetup.hx +++ b/tools/utils/PlatformSetup.hx @@ -816,11 +816,6 @@ class PlatformSetup setupHaxelib(new Haxelib("lime")); } - if (System.hostPlatform == MAC) - { - ConfigHelper.writeConfigValue("MAC_USE_CURRENT_SDK", "1"); - } - if (targetFlags.exists("noalias")) { return; @@ -1079,11 +1074,6 @@ class PlatformSetup setupHaxelib(new Haxelib("openfl")); } - if (System.hostPlatform == MAC) - { - ConfigHelper.writeConfigValue("MAC_USE_CURRENT_SDK", "1"); - } - if (targetFlags.exists("noalias")) { return;