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;