diff --git a/build-packages.sh b/build-packages.sh index 2c735320..f30b1112 100755 --- a/build-packages.sh +++ b/build-packages.sh @@ -32,7 +32,11 @@ lite_build () { local build="$1" build_dir_is_usable "$build" || exit 1 rm -fr "$build" - meson setup --buildtype=release "$build" || exit 1 + setup_options=() + if [[ "$OSTYPE" == "darwin"* ]]; then + setup_options+=(-Dbundle=true) + fi + meson setup "${setup_options[@]}" "$build" || exit 1 ninja -C "$build" || exit 1 } diff --git a/meson_options.txt b/meson_options.txt index 9621ff64..ce7eca98 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,3 +1,3 @@ -option('bundle', type : 'boolean', value : true, description: 'Build a macOS bundle') +option('bundle', type : 'boolean', value : false, description: 'Build a macOS bundle') option('portable', type : 'boolean', value : false, description: 'Portable install') option('renderer', type : 'boolean', value : false, description: 'Use SDL renderer') diff --git a/scripts/run-local b/scripts/run-local index cef53ab1..8a32e7fa 100755 --- a/scripts/run-local +++ b/scripts/run-local @@ -47,10 +47,7 @@ if [[ "$OSTYPE" == "msys"* || "$OSTYPE" == "mingw"* ]]; then fi rundir=".run" -if [[ "$OSTYPE" == "darwin"* ]]; then - bindir="$rundir" - datadir="$rundir" -elif [ "$option_portable" == on ]; then +if [ "$option_portable" == on ]; then bindir="$rundir" datadir="$rundir/data" else diff --git a/src/bundle_open.m b/src/bundle_open.m index 08685d08..2ba10da7 100644 --- a/src/bundle_open.m +++ b/src/bundle_open.m @@ -5,25 +5,8 @@ void set_macos_bundle_resources(lua_State *L) { @autoreleasepool { - /* Use resolved executablePath instead of resourcePath to allow lanching - the lite-xl binary via a symlink, like typically done by Homebrew: - - /usr/local/bin/lite-xl -> /Applications/lite-xl.app/Contents/MacOS/lite-xl - - The resourcePath returns /usr/local in this case instead of - /Applications/lite-xl.app/Contents/Resources, which makes later - access to the resource files fail. Resolving the symlink to the - executable and then the relative path to the expected directory - Resources is a workaround for starting the application from both - the launcher directly and the command line via the symlink. - */ - NSString* executable_path = [[NSBundle mainBundle] executablePath]; - char resolved_path[PATH_MAX + 16 + 1]; - realpath([executable_path UTF8String], resolved_path); - strcat(resolved_path, "/../../Resources"); - char resource_path[PATH_MAX + 1]; - realpath(resolved_path, resource_path); - lua_pushstring(L, resource_path); + NSString* resource_path = [[NSBundle mainBundle] resourcePath]; + lua_pushstring(L, [resource_path UTF8String]); lua_setglobal(L, "MACOS_RESOURCES"); }} #endif diff --git a/src/meson.build b/src/meson.build index 2f3943fb..707e04e9 100644 --- a/src/meson.build +++ b/src/meson.build @@ -28,6 +28,7 @@ executable('lite-xl', include_directories: [lite_include, font_renderer_include], dependencies: lite_deps, c_args: lite_cargs, + objc_args: lite_cargs, link_with: libfontrenderer, link_args: lite_link_args, install_dir: lite_bindir,