Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 23 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -50,12 +50,17 @@ install-bin:
install -m 755 lem $(PREFIX)/bin

# TODO: on the fly edit lem.desktop depends on $(PREFIX)
install-desktop:
install-desktop:
install -m 644 scripts/install/lem.svg /usr/share/icons/hicolor/scalable/apps/
gtk-update-icon-cache /usr/share/icons/hicolor
install -m 644 scripts/install/lem-$(VARIANT).desktop /usr/share/applications/lem.desktop

UNAME_S := $(shell uname -s)
ifeq ($(UNAME_S),Darwin)
install: install-bin
else
install: install-bin install-desktop
endif
@echo "+--------------------------------+"
@echo "| Lem installation complete! |"
@echo "+--------------------------------+"
Expand Down Expand Up @@ -144,5 +149,22 @@ lint:
.qlot/bin/sblint extensions/yaml-mode/lem-yaml-mode.asd
.qlot/bin/sblint extensions/ruby-mode/lem-ruby-mode.asd

resources/lem.icns: resources/lem.png
mkdir -p resources/lem.iconset
sips -z 16 16 $< --out resources/lem.iconset/icon_16x16.png
sips -z 32 32 $< --out resources/lem.iconset/icon_16x16@2x.png
sips -z 32 32 $< --out resources/lem.iconset/icon_32x32.png
sips -z 64 64 $< --out resources/lem.iconset/icon_32x32@2x.png
sips -z 128 128 $< --out resources/lem.iconset/icon_128x128.png
sips -z 256 256 $< --out resources/lem.iconset/icon_128x128@2x.png
sips -z 256 256 $< --out resources/lem.iconset/icon_256x256.png
sips -z 256 256 $< --out resources/lem.iconset/icon_256x256@2x.png
sips -z 256 256 $< --out resources/lem.iconset/icon_512x512.png
sips -z 256 256 $< --out resources/lem.iconset/icon_512x512@2x.png
iconutil -c icns resources/lem.iconset -o $@
rm -rf resources/lem.iconset

icns: resources/lem.icns

AppImage:
docker buildx build -f docker/Dockerfile-AppImage --progress=plain --target artifact --output type=local,dest=./artifacts .
3 changes: 2 additions & 1 deletion scripts/macos-deploy.bash
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@ cd "$parent_dir"
qlot install
qlot exec sbcl --eval '(ql:quickload :lem)' --eval '(asdf:make :lem)'

# アイコン(存在しなくても続行)
# アイコン(.icns for macOS dock/taskbar icon, .png as fallback)
cp resources/lem.icns bin/lem.app/Contents/Resources/ || true
cp resources/lem.png bin/lem.app/Contents/Resources/ || true

# ===== 2) OpenSSL を同梱し、参照先を @loader_path 化 =====
Expand Down
10 changes: 10 additions & 0 deletions src/macosx.lisp
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,13 @@
(let ((dir (user-homedir-pathname)))
(setq *default-pathname-defaults* dir)
(uiop:chdir dir)))))

;; Tell the deploy library not to bundle tree-sitter native libraries.
;; They are optional and loaded at runtime only when available.
(when (find-package :tree-sitter/ffi)
(let ((ts (find-symbol "TREE-SITTER" :tree-sitter/ffi))
(tw (find-symbol "TS-WRAPPER" :tree-sitter/ffi)))
(when ts
(setf (deploy:library-dont-deploy-p (deploy:ensure-library ts)) T))
(when tw
(setf (deploy:library-dont-deploy-p (deploy:ensure-library tw)) T))))
Loading