[C++] 268 実行ファイルからappファイルを作成 シェルスクリプトをバイナリ化 引数2つ

[M1 Mac, Monterey 12.6.3, clang 13.0.0, SDL 2.26.2, ChatGPT Plus, NO IDE]

Makefileのアプリファイル作成するところを1行減らすためにmakeAppコマンドの引数を2つに増やしました。

実行ファイル作成とappファイル作成がそれぞれ1行にまとまり、すっきりしました。

# 実行ファイル
TARGETDIR = ./bin
TARGET = TetrisDX

# oファイルから実行ファイル・appファイル作成
$(TARGET):$(OBJS)
	$(COMPILER) -o $(TARGETDIR)/$@ $(OBJS) $(LIBRARY0) $(LIBRARY) $(LDFLAGS)
	./sh/makeApp $(TARGETDIR) $(TARGET)
#!/bin/sh

cp $1/$2 $2
mkdir $2.app
mkdir $2.app/Contents
mkdir $2.app/Contents/MacOS
mv $2 $2.app/Contents/MacOS
mkdir $2.app/Contents/Resources
cp ./images/$2.icns $2.app/Contents/Resources
plutil -create xml1 $2.app/Contents/Info.plist
plutil -insert 'CFBundleInfoDictionaryVersion' -string "6.0" $2.app/Contents/Info.plist
plutil -insert 'CFBundleExecutable' -string $2 $2.app/Contents/Info.plist
plutil -insert 'CFBundleIdentifier' -string "" $2.app/Contents/Info.plist
plutil -insert 'CFBundleName' -string $2 $2.app/Contents/Info.plist
plutil -insert 'CFBundlePackageType' -string "APPL" $2.app/Contents/Info.plist
plutil -insert 'CFBundleIconFile' -string $2.icns $2.app/Contents/Info.plist
plutil -insert 'NSHighResolutionCapable' -bool true $2.app/Contents/Info.plist