Commit Graph

251 Commits

Author SHA1 Message Date
Joseph Cloutier
0d3f193021 Remove _appinfo.json_ special case.
Two reasons:

1. This is how it always worked in practice. The old special case actually did nothing due to an oversight.
2. Per the principle of least astonishment, Lime should avoid messing with the user's assets. If they wanted it to be a template, they would have specified `type="template"`.
2025-10-22 19:21:51 -04:00
Joseph Cloutier
5e3f77a44f Unify PlatformTarget.clean().
All of the implementations were identical, except for `FlashPlatform`, which was identical with extra steps.
2025-08-31 22:35:35 -04:00
Joseph Cloutier
057a2a4f5e Unify PlatformTarget.watch().
The implementation was copy-pasted, so it makes more sense to have only a single copy. `HTML5Platform` added a comment about possible future changes, so I kept that. Future changes will still be possible by overriding the function.
2025-08-31 22:30:05 -04:00
Joseph Cloutier
6ed53a9b92 Handle appinfo.json as a template on Tizen.
The old code appeared to be trying to do this, but it didn't work. When it found appinfo.json, it would call `copyAsset()` with an extra `context` argument, which is what you do for templates. However, `copyAsset()` only processes templates when `type == TEMPLATE`, otherwise it ignores the extra argument and processes it as a normal asset.
2025-08-31 22:12:16 -04:00
Joseph Cloutier
31af41e69c Unify asset copying code, and standardize asset embedding.
Having eight separate implementations made it harder to maintain. While an asset embedding bug got fixed on desktop targets, it got overlooked on others. This lead to assets being included twice on those other targets: once embedded, and once normally. (#1898) Now, that behavior is controlled from one place, and the bug is fixed for eight targets at once.

This also standardizes the case of `asset.embed == true && asset.type == TEMPLATE`. Previously, some targets would prioritze `embed` over `type`, embedding the template into the app without even processing it as a template. Now, it will always prioritize `type`, processing templates as templates and never trying to embed them.

Three targets are left out since they have more complex asset embedding behavior. I haven't checked if the bug is present on any of those.
2025-08-31 22:07:10 -04:00
Josh Tynjala
f8229bf7ae AndroidPlatform: target-sdk-version 35 is the current minimum requirement for new apps 2025-07-21 08:55:06 -07:00
Josh Tynjala
7b5a5e1d0a Set hl-ver for Lime's bundled HashLink
Haxe 5 defaults to 1.15, but we're currently still bundling an older version. So we need to specify hl-ver or it won't work properly because Haxe 5 will produce code that older HashLink isn't compatible with.

If hl-ver is already specified, or if a custom HL_PATH is defined, does not set hl-ver because that may be undesirable.
2025-07-09 10:24:20 -07:00
Chris Speciale
ee1d56e864 Android: Revert to sdk 21 as default minimumSdkVersion
Minimum SDK 28 is no longer required to build android after updating openal to 1.21.1. See: https://github.com/openfl/lime/pull/1924

Closes https://github.com/openfl/lime/issues/1923
2025-03-14 01:45:05 -04:00
Chris Speciale
80aaaaef9f Android: Set hard minimum sdk ver for rebuild
Avoids expectations of rebuilding clean which could lead to some confusing situations otherwise.
2025-03-13 08:56:59 -04:00
Chris Speciale
46aab0c80e Android: Allow minimumSDKVersion to be set dynamically
This change moves away from purely hard coding the minimum sdk version for android and also correctly sets the PLATFORM_NUMBER define. The gcc toolchain is no longer compatible in lime 8.3.x+ so, we shouldn't have to worry about the PLATFORM define at all.

It might be wise to enforce a baseline minimum version and complain if users try to use something lower than the default.
2025-03-13 02:24:30 -04:00
Chris Speciale
ed8354a86a Update the API level for Android to 28 2025-03-12 18:45:42 -04:00
Chris Speciale
37c9155608 Set minSdkVersion to 28
Should resolve part of the issues related here: https://github.com/openfl/lime/issues/1923#issuecomment-2719250849
2025-03-12 18:26:56 -04:00
Josh Tynjala
9f9a5b9f31 Merge branch 'develop' into 8.3.0-Dev 2025-03-03 13:19:35 -08:00
Josh Tynjala
d7b2b75f1e AIRPlatform: default AIR SDK version to 32.0 instead of 28.0
You can't get 28.0 from Adobe anymore, but you can get 32.0
2025-02-24 15:49:32 -08:00
MAJigsaw77
df3f816f9b Add copyrightYears to MetaData. 2025-02-11 13:59:39 +02:00
MAJigsaw77
dcbee9d54a Initial support for windows resource file. 2025-02-10 23:36:19 +02:00
Tobiasz Laskowski
99ca58d06f Add workaround for hxcpp compiler cache bug
See: https://github.com/HaxeFoundation/hxcpp/issues/1180
2025-02-10 09:24:47 -08:00
Tobiasz Laskowski
1b5958f6ff Remove CPP_LIBPREFIX from ios/tvos template
It is no longer used, and was only there to provide compatibility with
hxcpp versions older than 3.2
2025-02-10 09:24:47 -08:00
Josh Tynjala
41ac2fc8b6 add <config:android layoutInDisplayCutoutMode/>
Options are default, always, never, and shortEdges. Defaults to default.

What default means depends on which Android SDK version is used.

According to the Android docs, starting with Android SDK 35, most options will be forced to act the same as always. However, for SDK 34 (which is the current minimum on Google Play) this should remain configurable.

https://developer.android.com/develop/ui/views/layout/display-cutout
2025-02-07 09:23:29 -08:00
Josh Tynjala
2da06fa2af Merge branch 'develop' into 8.3.0-Dev 2025-01-29 09:37:47 -08:00
Josh Tynjala
f6d262c54e AndroidPlatform: include ARM64 in the default architectures for emulators
On ARM64 macOS, the emulator is probably ARM64, so x86_32 and x86_64 won't work
2025-01-24 12:03:06 -08:00
Josh Tynjala
d21f7befaa AndroidPlatform: default to x86_64 instead of x86_32
It's still possible to check out Lime and build x86_32 manually
2025-01-24 12:01:50 -08:00
Josh Tynjala
f604ae3b0e tools: fix haxe 4 function syntax for haxe 3 backcompat 2025-01-17 09:30:30 -08:00
Josh Tynjala
2e578d3e56 Default to Android target-sdk-version 34, and support 35 (closes #1888)
34 is the minimum required version by Google Play, so it should be default.

Bumping to 34 and 35 requires updating both gradle-version and gradle-plugin-version.

The new versions now require an ndkVersion flag in build.gradle. This can be obtained by reading source.properties in the root of the NDK.

JDK 17 will be required for these updates. Previously required JDK 11.
2025-01-14 14:00:54 -08:00
Igor
c2c9d0ea7c Setting ios.non-exempt-encryption to false by default. 2025-01-10 16:00:10 -08:00
Josh Tynjala
8bfc0be57e WebAssemblyPlatform: missed -json flag here in #1882 2025-01-10 15:11:20 -08:00
Cameron Taylor
03ea041e0e add -json flag to allow json types export 2025-01-10 15:09:55 -08:00
Tobiasz Laskowski
d2129bbd64 Respect -cpp flag for windows cross compile 2024-12-18 08:48:18 -08:00
Josh Tynjala
c3b749b415 MacPlatform: fix duplicate shell scripts when building without -clean and copyIfNewer decides the HL executable isn't newer 2024-12-02 10:29:11 -08:00
Josh Tynjala
4812f6a1dd MacPlatform: fix error that says @rpath/libhl.dylib is not found when using HashLink nightly builds for HL/C
Added `@executable_path` to the rpath.
2024-11-20 15:44:08 -08:00
Chris Speciale
a8939e9951 Merge pull request #1834 from gepatto/8.2.0-Dev
set correct paths for ndll for linxuarm and linuxarm64 (raspberrypi)
2024-10-22 07:17:56 -04:00
Josh Tynjala
895ce877d9 Default hlc target directory is not the same as hl 2024-10-07 09:40:22 -07:00
Patrick Gutlich
40764acbf3 set correct paths for ndll for linxuarm and linuxarm64 (raspberrypi)
and remove conflicting legacy includepaths in build.xml
2024-08-18 17:12:47 +02:00
Josh Tynjala
b866632a6f tools: allow -x86_64 and -x86_32 as command line flags to select those architectures instead of defaults (closes #1819)
Still supports -32 and -64, though, for backwards compatibility. We could consider removing those in Lime 9.
2024-07-19 14:46:47 -07:00
Josh Tynjala
745c178908 MacPlatform: find lime.hdll in Mac64 on ARM64 Mac because HashLink doesn't support x86_64 yet 2024-07-18 12:23:32 -07:00
Josh Tynjala
b95dac4da3 MacPlatform: always build HashLink for Intel on macOS for now 2024-07-18 12:14:07 -07:00
tobil4sk
4fa31a0d34 [tools] Cross compile to x86 from arm64 on mac (#1813) 2024-07-14 12:08:01 +01:00
Josh Tynjala
8f3ea8d271 Merge branch 'develop' into 8.2.0-Dev 2024-07-08 14:31:23 -07:00
Josh Tynjala
84d7f39605 Revert "MacPlatform: use install_name_tool to add /usr/local/lib and /opt/hombrew/lib to rpath of lime.ndll"
This reverts commit 47936494ac.

Didn't work with Haxe/Neko installed from Apple Silicon Homebrew because Lime tools couldn't link to Neko.
2024-07-08 14:27:15 -07:00
Tobiasz Laskowski
5eafeb047d [tools] Support cross compiling arm64 ndll on mac 2024-07-06 14:04:29 +01:00
Josh Tynjala
e257b7ebe4 Merge branch 'develop' into 8.2.0-Dev 2024-07-01 08:53:48 -07:00
Joseph Cloutier
d27aaebc01 Copy SDL's list of configChanges on Android.
On Android, Lime apps are SDL apps, so it makes sense to defer to them on this.

https://github.com/libsdl-org/SDL/blob/main/android-project/app/src/main/AndroidManifest.xml
2024-06-26 20:36:02 -04:00
Josh Tynjala
47936494ac MacPlatform: use install_name_tool to add /usr/local/lib and /opt/hombrew/lib to rpath of lime.ndll
Previously, we added these rpaths to lime.ndll when it was built in commits c70ec9f and 333d093, but it's actually necessary only for Neko, so now I made it happen specfically after calling `nekotools boot` to create the Neko executable.

I've tested cpp and hl, and I've confirmed that the executables still launch successfully when these rpaths are omitted. It's better for their security to use fewer rpaths.

As noted commit c70ec9f, adding these rpaths is necessary due to a change in Xcode 15 where /usr/local/lib used to be available on the rpath automatically, but now it isn't, which affects the executable's ability to find the libneko dylib.
2024-06-19 14:39:17 -07:00
Josh Tynjala
c8501b17e5 AndroidPlatform: fix @android:style/Theme.NoTitleBarnull in AndroidManifest.xml
Replace (project.window.fullscreen ? ".Fullscreen" : null) with (project.window.fullscreen ? ".Fullscreen" : "")
2024-06-17 15:47:20 -07:00
Mihai Alexandru
0e0dd0b5a2 Support VIEW intents on Android. (#1799)
* Add Drop file event support for android.

* Updated MIME type configuration and intent filter generation.

* "supportedMimeTypes" => "mimeType"

* `mimeType` -> `accept-file-intent`
2024-06-16 19:29:25 -04:00
Joseph Cloutier
593f4fa52c Rename web-workerallow-web-workers for clarity.
The former was unclear about how the dependency would relate to web workers. Would it only be available to workers? Would it automatically spin up a worker?

`allow-web-workers` isn't 100% perfect, but it implies the correct answers to the questions above (no and no) and isn't too long.
2024-06-15 22:13:05 -04:00
Joseph Cloutier
8066037cdd Bug fix: Node.js was being treated as a web worker context. 2024-06-10 14:07:22 -04:00
player-03
6a23b6eee3 Merge pull request #1790 from player-03/stale_assets
Automatically delete stale assets and dependency files.
2024-06-04 13:42:31 -04:00
tobil4sk
45972bb733 Copy correct ndll on arm64 mac 2024-05-31 14:40:23 -07:00
Joseph Cloutier
224c0a0e93 Delete stale dependencies in addition to stale assets. 2024-05-29 20:55:09 -04:00