foxygit / doom Log in
commit 28472387c230df24eb7fa461d3dd9cf9409e20e0
Author:     Roman Fomin <rfomin@gmail.com>
AuthorDate: Fri Nov 17 19:08:28 2023 +0700
Commit:     Roman Fomin <rfomin@gmail.com>
CommitDate: Fri Nov 17 19:38:05 2023 +0700

    Use dylibbundler
---
 .github/workflows/main.yml |  1 +
 pkg/osx/GNUmakefile        | 25 ++++++++++++++++++++-----
 2 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index eb1fd997..fdee9ee0 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -71,6 +71,7 @@ jobs:
         run: |
           brew install \
             automake \
+            dylibbundler \
             sdl2 \
             sdl2_mixer \
             sdl2_net \
diff --git a/pkg/osx/GNUmakefile b/pkg/osx/GNUmakefile
index 22ef8e48..188490d9 100644
--- a/pkg/osx/GNUmakefile
+++ b/pkg/osx/GNUmakefile
@@ -12,6 +12,12 @@ DMG=$(PACKAGE_TARNAME)-$(PACKAGE_VERSION).dmg
 TOPLEVEL=../..
 TOPLEVEL_DOCS=$(patsubst %,../../%,$(DOC_FILES))

+ifeq (, $(shell which dylibbundler))
+	CP=./cp-with-libs
+else
+	CP=cp
+endif
+
 # DMG file containing package:

 $(DMG) : tmp.dmg
@@ -63,17 +69,26 @@ $(STAGING_DIR): launcher $(TOPLEVEL_DOCS) app.icns wadfile.icns
 	cp launcher "$(APP_BIN_DIR)"
 	$(STRIP) "$(APP_BIN_DIR)/launcher"

-	./cp-with-libs $(TOPLEVEL)/src/$(PROGRAM_PREFIX)doom "$(APP_BIN_DIR)"
+	$(CP) $(TOPLEVEL)/src/$(PROGRAM_PREFIX)doom "$(APP_BIN_DIR)"
 	$(STRIP) "$(APP_BIN_DIR)/$(PROGRAM_PREFIX)doom"
-	./cp-with-libs $(TOPLEVEL)/src/$(PROGRAM_PREFIX)heretic "$(APP_BIN_DIR)"
+	$(CP) $(TOPLEVEL)/src/$(PROGRAM_PREFIX)heretic "$(APP_BIN_DIR)"
 	$(STRIP) "$(APP_BIN_DIR)/$(PROGRAM_PREFIX)heretic"
-	./cp-with-libs $(TOPLEVEL)/src/$(PROGRAM_PREFIX)hexen "$(APP_BIN_DIR)"
+	$(CP) $(TOPLEVEL)/src/$(PROGRAM_PREFIX)hexen "$(APP_BIN_DIR)"
 	$(STRIP) "$(APP_BIN_DIR)/$(PROGRAM_PREFIX)hexen"
-	./cp-with-libs $(TOPLEVEL)/src/$(PROGRAM_PREFIX)strife "$(APP_BIN_DIR)"
+	$(CP) $(TOPLEVEL)/src/$(PROGRAM_PREFIX)strife "$(APP_BIN_DIR)"
 	$(STRIP) "$(APP_BIN_DIR)/$(PROGRAM_PREFIX)strife"
-	./cp-with-libs $(TOPLEVEL)/src/$(PROGRAM_PREFIX)setup "$(APP_BIN_DIR)"
+	$(CP) $(TOPLEVEL)/src/$(PROGRAM_PREFIX)setup "$(APP_BIN_DIR)"
 	$(STRIP) "$(APP_BIN_DIR)/$(PROGRAM_PREFIX)setup"

+	-dylibbundler --bundle-deps --overwrite-files                      \
+		      --install-path "@executable_path/"                   \
+		      --dest-dir "$(APP_BIN_DIR)"                          \
+		      --fix-file "$(APP_BIN_DIR)/$(PROGRAM_PREFIX)doom"    \
+		      --fix-file "$(APP_BIN_DIR)/$(PROGRAM_PREFIX)heretic" \
+		      --fix-file "$(APP_BIN_DIR)/$(PROGRAM_PREFIX)hexen"   \
+		      --fix-file "$(APP_BIN_DIR)/$(PROGRAM_PREFIX)strife"  \
+		      --fix-file "$(APP_BIN_DIR)/$(PROGRAM_PREFIX)setup"
+
 	$(TOPLEVEL)/man/simplecpp -DPRECOMPILED -D__MACOSX__  \
 	                -DDOOM -DHERETIC -DHEXEN -DSTRIFE     \
 	             < $(TOPLEVEL)/man/INSTALL.template       \