You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
129 lines
4.9 KiB
129 lines
4.9 KiB
#!/bin/bash |
|
|
|
function get_libs { |
|
echo "============= Getting Libs =============" |
|
mkdir libs |
|
cd libs |
|
|
|
curl -O https://www.libsdl.org/release/SDL2-2.0.9.zip |
|
curl -O https://www.libsdl.org/projects/SDL_mixer/release/SDL2_mixer-2.0.4.zip |
|
curl -O https://www.libsdl.org/projects/SDL_ttf/release/SDL2_ttf-2.0.15.zip |
|
curl -SLO https://download.savannah.gnu.org/releases/freetype/freetype-2.9.1.tar.gz |
|
curl -SLO https://github.com/glennrp/libpng/archive/v1.6.36.zip |
|
curl -SLO https://github.com/jedisct1/libsodium/archive/1.0.17.zip |
|
} |
|
|
|
function decompress_libs { |
|
echo "============= Unzip Libs =============" |
|
unzip SDL2-2.0.9.zip |
|
unzip SDL2_mixer-2.0.4.zip |
|
unzip SDL2_ttf-2.0.15.zip |
|
unzip v1.6.36.zip |
|
tar -zxvf freetype-2.9.1.tar.gz |
|
unzip 1.0.17.zip |
|
} |
|
|
|
function build_sdl2 { |
|
echo "============= Build SDL2 =============" |
|
xcodebuild -project "SDL2-2.0.9/Xcode/SDL/SDL.xcodeproj" -scheme "Framework" build -configuration Release CONFIGURATION_BUILD_DIR="~/Library/Frameworks" ARCHS="i386 x86_64" ONLY_ACTIVE_ARCH=NO |
|
mkdir frameworks |
|
cp -v -f -a ~/Library/Frameworks/SDL2.framework ./frameworks/ |
|
} |
|
|
|
function build_sdl2_mixer { |
|
echo "============= Build SDL2_mixer =============" |
|
xcodebuild -project "SDL2_mixer-2.0.4/Xcode/SDL_mixer.xcodeproj" -scheme "Framework" build -configuration Release ARCHS="i386 x86_64" ONLY_ACTIVE_ARCH=NO -derivedDataPath "SDL2_mixer-2.0.4/Xcode/DerivedData/" |
|
cp -v -f -a SDL2_mixer-2.0.4/Xcode/DerivedData/Build/Products/Release/SDL2_mixer.framework ./frameworks/ |
|
} |
|
|
|
function build_libpng { |
|
echo "============= Build libpng =============" |
|
mkdir libpng-1.6.36/build |
|
cd libpng-1.6.36/build |
|
cmake .. -G"Xcode" |
|
cd ../../ |
|
xcodebuild -project "libpng-1.6.36/build/libpng.xcodeproj" -scheme "ALL_BUILD" build -configuration Release ARCHS="i386 x86_64" ONLY_ACTIVE_ARCH=NO |
|
sudo mv /usr/local/lib/libpng16.16.dylib /usr/local/lib/libpng16.16_o.dylib |
|
sudo cp -v -f -a libpng-1.6.36/build/Release/libpng16.16.36.0.dylib /usr/local/lib/libpng16.16.dylib |
|
sudo rm /usr/local/lib/libpng.dylib |
|
sudo ln -s /usr/local/lib/libpng16.16.dylib /usr/local/lib/libpng.dylib |
|
} |
|
|
|
function build_freetype { |
|
echo "============= Build Freetype =============" |
|
cd freetype-2.9.1/ |
|
cmake -E make_directory build |
|
mkdir -p build/builds/mac |
|
cp -v -f builds/mac/freetype-Info.plist build/builds/mac/freetype-Info.plist |
|
cmake -E chdir build cmake -G Xcode -D BUILD_FRAMEWORK:BOOL=true .. |
|
cd ../ |
|
xcodebuild -project "freetype-2.9.1/build/freetype.xcodeproj" -scheme "ALL_BUILD" build -configuration Release ARCHS="i386 x86_64" ONLY_ACTIVE_ARCH=NO |
|
} |
|
|
|
function build_sdl2_ttf { |
|
echo "============= Build SDL2_ttf =============" |
|
rm -vr SDL2_ttf-2.0.15/Xcode/Frameworks/FreeType.framework |
|
cp -v -f -a freetype-2.9.1/build/Release/freetype.framework SDL2_ttf-2.0.15/Xcode/Frameworks/FreeType.framework |
|
xcodebuild -project "SDL2_ttf-2.0.15/Xcode/SDL_ttf.xcodeproj" -scheme "Framework" build -configuration Release ARCHS="i386 x86_64" ONLY_ACTIVE_ARCH=NO -derivedDataPath "SDL2_ttf-2.0.15/Xcode/DerivedData/" |
|
cp -v -f -a SDL2_ttf-2.0.15/Xcode/DerivedData/Build/Products/Release/SDL2_ttf.framework ./frameworks/ |
|
} |
|
|
|
function build_libsodium { |
|
echo "============= Build Libsodium =============" |
|
cp -v -f ../3rdParty/libsodium/osxi386.sh libsodium-1.0.17/dist-build/osxi386.sh |
|
cd libsodium-1.0.17 |
|
sudo ./autogen.sh |
|
./dist-build/osxi386.sh |
|
sudo cp -v -f -a libsodium-osx/lib/ /usr/local/lib/ |
|
sudo cp -v -f -a libsodium-osx/include/ /usr/local/include/ |
|
|
|
cd ../.. |
|
} |
|
|
|
function build_devilutionx { |
|
echo "============= Build DevilutionX =============" |
|
xcodebuild -project "./Xcode/devilutionX.xcodeproj" -scheme "devilutionX" build -configuration Release CONFIGURATION_BUILD_DIR="build" |
|
} |
|
|
|
function create_dmg { |
|
echo "============= Create DMG =============" |
|
mkdir build/devilutionX |
|
mv -v build/devilutionX.app build/devilutionX/devilutionX.app |
|
|
|
hdiutil create build/devilutionX_temp.dmg -ov -volname "devilutionX" -fs HFS+ -srcfolder "build/devilutionX" |
|
hdiutil convert build/devilutionX_temp.dmg -format UDZO -o build/devilutionX.dmg |
|
|
|
echo "============= Cleaning temps =============" |
|
rm build/devilutionX_temp.dmg |
|
} |
|
|
|
function main { |
|
for args in "$@" |
|
do |
|
case $args in |
|
"--get-libs") |
|
get_libs |
|
decompress_libs |
|
;; |
|
"--build-libs") |
|
build_sdl2 |
|
build_sdl2_mixer |
|
build_libpng |
|
build_freetype |
|
build_sdl2_ttf |
|
build_libsodium |
|
;; |
|
"--build-project") |
|
build_devilutionx |
|
;; |
|
"--package") |
|
create_dmg |
|
;; |
|
*) |
|
echo Unknown command |
|
;; |
|
esac |
|
done |
|
} |
|
|
|
main "$@"
|
|
|