Commit Graph

552 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
Josh Tynjala
b8435aa894 PlatformSetup: Further refine HL setup to explain how to remove a custom HL_PATH value 2025-02-20 10:19:55 -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
Tobiasz Laskowski
69bbcaea27 Skip confirmation for alias with -alias/-cli flag
The user has already specified this is what they want by passing in the
flag, so there is no point in asking again.
2025-01-31 10:27:24 -08:00
Tobiasz Laskowski
dd9f9d40c9 Add -cli, -alias, and -noalias setup flags to help
The `-cli`/`-alias` flags are useful when you don't want lime to mess with
libraries that might be intentionally set to specific versions.
2025-01-31 10:27:24 -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
Tobiasz Laskowski
e0c734d8fe Remove MAC_USE_CURRENT_SDK from lime setup
MAC_USE_CURRENT_SDK is an incredibly old relic from a very old version
of hxcpp (haxe 2 days). It was removed in:
9a7f7f931f

This is now instead controlled by the flag `MACOSX_DEPLOYMENT_TARGET`.

The setup command now only does two things:
- Sets up haxelibs
- Adds cli alias
2025-01-22 08:06:52 -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
Josh Tynjala
57cf88b02d CommandLineTools: set macos define when using cpp target on macOS (closes #1878)
It should behave the same as mac or macos target.
2025-01-06 10:07:12 -08:00
Tobiasz Laskowski
d2129bbd64 Respect -cpp flag for windows cross compile 2024-12-18 08:48:18 -08:00
player-03
8a1083be25 Use absolute paths when running Lime. 2024-12-09 12:39:09 -05: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
Josh Tynjala
61ec7d0913 PlatformSetup: for lime setup hashlink, display the "leave empty to use default" message only when a custom version is not configured yet
If a custom version is configured, users will think that just pressing enter will clear it, but it won't. It'll just keep the current value. To actually clear the value, they need to run lime config remove HL_PATH instead.
2024-11-20 09:35:57 -08:00
Josh Tynjala
3d10ea7eb6 PlatformSetup: improve HL_PATH message with capital L in Lime and add bundled descriptor 2024-11-13 11:16:20 -08:00
Josh Tynjala
5388c47a8b PlatformSetup: more formal grammar 2024-11-13 11:15:06 -08:00
Josh Tynjala
19b571d8c2 HashlinkHelper, PlatformSetup: proper casing in user-facing messages for HashLink name 2024-11-13 11:13:16 -08:00
Josh Tynjala
4e56bd9bf2 PlatformSetup: specify that absolute path is required for config values 2024-11-13 11:11:07 -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