Commit Graph

64 Commits

Author SHA1 Message Date
Josh Tynjala
895ce877d9 Default hlc target directory is not the same as hl 2024-10-07 09:40:22 -07: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
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
tobil4sk
45972bb733 Copy correct ndll on arm64 mac 2024-05-31 14:40:23 -07:00
Josh Tynjala
ae941e7442 MacPlatform: running install_name_tool with System.runCommand() works better than new Process()
new Process() was crashing before the process could start for some reason
2024-05-29 15:57:41 -07:00
Josh Tynjala
c26a73fc3c MacPlatform: when rebuilding the bundled HashLink, bundle all Homebrew dependencies too
Previously, a compiled .app file for HL/C wouldn't launch at all because it couldn't find these libraries. For HL/JIT, it would launch, but it might crash later when it needed to load a missing library.

We need to bundle these dependencies into the .app file so that it can successfully launch on systems that don't have Homebrew installed, or haven't separately installed the exact set of Homebrew libraries that we need. We also don't want to have to make people ask their users to install Homebrew and to install the dependencies manually.

Tested the .app files for both HL/JIT and HL/C on a system without Homebrew. It failed before, but now it launches successfully!
2024-04-25 15:20:47 -07:00
Joseph Cloutier
f52b59bbff Merge branch 'develop' into 8.2.0-Dev 2024-02-05 14:46:33 -05:00
player-03
4ed893afbd Use consistent capitalization.
Not that `dirSuffix` includes any letters yet, but it likely will in the future.
2024-02-04 18:05:54 -05:00
Josh Tynjala
c3170a0577 Merge branch '8.2.0-Dev' into feature/hlc 2024-01-30 09:16:34 -08:00
player-03
560ad5a6ba Don't force an architecture when building HL on Mac.
Originally, we forced compilation on x86, presumably because at the time HashLink lacked good 64-bit support. When this support improved, the line was changed to force x64 compilation rather than being removed, which may have been a mistake. Now that there are even more valid architectures, it just doesn't make sense to force one.
2024-01-29 20:30:06 -05:00
player-03
3ee35b05c0 Streamline architecture selection.
I don't know if there are any ARMv6 or ARMv7 Macs, but they were in the old switch block, so maybe?
2024-01-29 16:37:17 -05:00
player-03
17ad0577d7 Merge is64 and isArm64. 2024-01-28 16:17:24 -05:00
player-03
3d87dfeb97 Only set one of is64 and isArm64. 2024-01-28 16:03:37 -05:00
player-03
f0bae5692e Improve target selection logic in MacPlatform.rebuild().
The old logic could produce inappropriate results, such as attempting to compile an x86 binary on ARM64, or compiling no binary when "64" is specified on a 32-bit machine. I'd argue that it makes sense to only check the flags when they're supported, and not to bother otherwise.
2024-01-27 22:29:04 -05:00
tobil4sk
f06c78e82a Set HXCPP_ARM64 by default when building on Apple Silicon Mac 2024-01-27 13:20:22 +00:00
Joseph Cloutier
8b07a83991 Remove unnecessary casts. 2024-01-13 16:15:57 -05:00
Josh Tynjala
b021dbeae7 lime display: if the project file is newer than an existing debug/release/final.hxml file, don't consider the .hxml file valid anymore
Code intelligence should always use the newest hxml content, so the fallback mode where the hxml content is generated, instead of loaded from an existing .hxml file, should be used when the project file is newer.

For instance, if the user changes any file/dir paths in their project file, continuing to use the existing .hxml file could lead to confusing error messages that still reference the old/cached file paths. It should always use the latest paths or other values from the project file. It should be considered a bug to use the old cached paths.

Previously, as a workaround, the user would need to clean or build their project again to get updated .hxml files. It might also require restarting their editor/IDE too. Bad developer experience when we can detect this case automatically.
2024-01-05 13:54:36 -08:00
Josh Tynjala
6dc0c4c785 tools: allow -hlc on windows/mac/linux without -hl 2023-11-22 11:46:33 -08:00
Josh Tynjala
10635d6231 MacPlatform: can specify -clang with -hlc to use clang instead of gcc 2023-11-03 12:11:23 -07:00
Josh Tynjala
f0ecccf5eb HL/C on macOS 2023-10-19 15:00:27 -07:00
Josh Tynjala
fd0fc3da48 HashLink: fix the ability to double-click the .app file on macOS to run it
The HashLink executable expects hlboot.dat and libraries to be in the current working directory (it's not enough for them to be in the same directory as the executable). Make the .app file launch a shell script that 1) changes the current working directory 2) launches the HashLink executable
2022-07-13 10:01:57 -07:00
Josh Tynjala
8a3b990f98 MacPlatform: use executableDirectory instead of applicationDirectory when copying HashLink (references #1517) 2022-06-03 13:19:25 -07:00
Apprentice-Alchemist
ad70700a14 Try to fix Windows mess a bit.
Default to 64 bit on windows too.
2022-05-19 20:46:08 +02:00
Apprentice-Alchemist
668b3f7ba7 Fix the HashlinkHelper 2022-04-28 19:42:51 +02:00
Apprentice-Alchemist
cb3b0240de Implement lime setup hl in a hopefully better way. 2022-04-28 19:42:46 +02:00
Apprentice-Alchemist
a44fe3669a Put hashlink binaries in templates/bin again.
Add setup script for macOS codesigning.
2022-04-28 19:42:45 +02:00
Apprentice-Alchemist
aa62d786b3 Add some more -pthread. 2022-04-28 19:42:44 +02:00
Apprentice-Alchemist
a288feca96 Add hashlink as a submodule. 2022-04-28 19:42:41 +02:00
Joshua Granick
1c92c707cc Run Haxe formatter 2022-03-23 14:02:39 -07:00
Joshua Granick
362be074f4 Merge HXProject defaults and exclude architectures at end 2022-03-23 14:00:32 -07:00
Joshua Granick
ccd9dca6e1 Add explicit toString() call for HXML display 2020-12-21 17:24:44 -08:00
Joshua Granick
79e21c8312 Fix watch command (resolves haxelime/hxp#23) 2020-12-21 12:50:14 -08:00
Joshua Granick
1188b3aa42 Run formatter 2019-07-12 12:08:09 -07:00
Joshua Granick
a4cc3c13a9 Mac output-file fix 2019-03-18 13:39:09 -07:00
Joshua Granick
b795534773 Add initial support for '--output-file' option on 'display' command 2019-03-18 12:01:37 -07:00
Joshua Granick
533dcf82a4 Fix HL on Mac 2019-03-14 08:58:17 -07:00
Joshua Granick
8d72e71357 HL update 2019-03-13 11:13:19 -07:00
Joshua Granick
00e3c85b58 Add entry class to non-template displalay command 2019-02-28 11:58:38 -08:00
Joshua Granick
44bf137f9b Improve 'lime display' when templates have not been processed 2019-02-26 14:01:45 -08:00
Joshua Granick
0c163a80e7 Use formatter for all Haxe code 2019-02-14 08:41:20 -08:00
Joshua Granick
792a0003dc Do not rebuild mac 32-bit by default 2018-10-01 19:19:07 -07:00
Joshua Granick
59a40366ec Disable 64-bit on HashLink for now 2018-08-16 10:38:27 -07:00
Joshua Granick
ccf8c48923 Remove forced -Ddisplay on 'lime display' output 2018-08-14 09:08:50 -07:00