diff --git a/scripts/create_release.sh b/scripts/create_release.sh index 28511013b..68a39565c 100644 --- a/scripts/create_release.sh +++ b/scripts/create_release.sh @@ -9,8 +9,19 @@ read version echo -n "What kind of distribution (e.g. production, trial) ? " read distribution +echo -n "What platform (e.g. win, mac) ? " +read platform + destdir=$(pwd)/aseprite-release-$version +if [ "$platform" == "win" ]; then + exefile=aseprite.exe + generator=ninja +elif [ "$platform" == "mac" ]; then + exefile=aseprite + generator=make +fi + # -------------------------- # Clone the local repository # -------------------------- @@ -24,7 +35,7 @@ fi # -------------- cd "$destdir/scripts" -sh update_version.sh $version +sh $srcdir/scripts/update_version.sh $version # ---------------------------------------------- # Make a build/ directory and compile with cmake @@ -33,23 +44,39 @@ sh update_version.sh $version if [ ! -d "$destdir/build" ] ; then mkdir "$destdir/build" cd "$destdir/build" - if [ "$distribution" == "production" ]; then - cmake \ - -D "CMAKE_BUILD_TYPE:STRING=RelWithDebInfo" \ - -D "CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING = /Zi /MT /O2 /Ob1 /D NDEBUG" \ - -D "CMAKE_C_FLAGS_RELWITHDEBINFO:STRING = /Zi /MT /O2 /Ob1 /D NDEBUG" \ - -D "CMAKE_EXE_LINKER_FLAGS:STRING = /MACHINE:X86 /SUBSYSTEM:WINDOWS,5.01" \ - -G "Ninja" \ - .. - elif [ "$distribution" == "trial" ]; then - cmake \ - -D "CMAKE_BUILD_TYPE:STRING=RelWithDebInfo" \ - -D "CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING = /Zi /MT /O2 /Ob1 /D NDEBUG" \ - -D "CMAKE_C_FLAGS_RELWITHDEBINFO:STRING = /Zi /MT /O2 /Ob1 /D NDEBUG" \ - -D "CMAKE_EXE_LINKER_FLAGS:STRING = /MACHINE:X86 /SUBSYSTEM:WINDOWS,5.01" \ - -D "ENABLE_TRIAL_MODE:BOOL=ON" \ - -G "Ninja" \ - .. + + if [ "$platform" == "win" ]; then + if [ "$distribution" == "production" ]; then + cmake \ + -D "CMAKE_BUILD_TYPE:STRING=RelWithDebInfo" \ + -D "CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING = /Zi /MT /O2 /Ob1 /D NDEBUG" \ + -D "CMAKE_C_FLAGS_RELWITHDEBINFO:STRING = /Zi /MT /O2 /Ob1 /D NDEBUG" \ + -D "CMAKE_EXE_LINKER_FLAGS:STRING = /MACHINE:X86 /SUBSYSTEM:WINDOWS,5.01" \ + -G "Ninja" \ + .. + elif [ "$distribution" == "trial" ]; then + cmake \ + -D "CMAKE_BUILD_TYPE:STRING=RelWithDebInfo" \ + -D "CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING = /Zi /MT /O2 /Ob1 /D NDEBUG" \ + -D "CMAKE_C_FLAGS_RELWITHDEBINFO:STRING = /Zi /MT /O2 /Ob1 /D NDEBUG" \ + -D "CMAKE_EXE_LINKER_FLAGS:STRING = /MACHINE:X86 /SUBSYSTEM:WINDOWS,5.01" \ + -D "ENABLE_TRIAL_MODE:BOOL=ON" \ + -G "Ninja" \ + .. + fi + elif [ "$platform" == "mac" ]; then + if [ "$distribution" == "production" ]; then + cmake \ + -D "CMAKE_BUILD_TYPE:STRING=RelWithDebInfo" \ + -G "Unix Makefiles" \ + .. + elif [ "$distribution" == "trial" ]; then + cmake \ + -D "CMAKE_BUILD_TYPE:STRING=RelWithDebInfo" \ + -D "ENABLE_TRIAL_MODE:BOOL=ON" \ + -G "Unix Makefiles" \ + .. + fi fi fi @@ -57,13 +84,13 @@ fi # Compile # ------- -if [ ! -f "$destdir/aseprite.exe" ] ; then +if [ ! -f "$destdir/$exefile" ] ; then cd "$destdir/build" - ninja aseprite + $generator aseprite cd "$destdir/build/src" - signexe aseprite.exe - cp aseprite.exe "$destdir" + signexe $exefile + cp $exefile "$destdir" fi # --------------- @@ -71,4 +98,8 @@ fi # --------------- cd "$destdir/scripts" -sh create_packages.sh +if [ "$platform" == "win" ]; then + sh create_packages.sh +elif [ "$platform" == "mac" ]; then + sh create_dmg.sh +fi diff --git a/scripts/update_version.sh b/scripts/update_version.sh index 26170e385..08b714a6d 100644 --- a/scripts/update_version.sh +++ b/scripts/update_version.sh @@ -1,33 +1,34 @@ -#! /bin/sh - -if [ ! -f update_version.sh ]; then - echo You must run update_version.sh from scripts/ directory - exit 1 -fi - -version=$1 -if [ "$version" == "" ]; then - echo Usage: update_version.sh VERSION - exit 1 -fi - -version_win32=$(echo $1 | sed -e 's/\./,/g' | sed -e 's/-.*$//') -commas=$(grep -o "," <<< "$version_win32" | wc -l) - -while [ $commas -lt 3 ] ; do - version_win32+=",0" - commas=$(grep -o "," <<< "$version_win32" | wc -l) -done - -sed -e "s/define VERSION.*/define VERSION \"$version\"/" < ../src/config.h > tmp -mv tmp ../src/config.h - -sed -e "s/gui version=\".*/gui version=\"$version\">/" < ../data/gui.xml > tmp -mv tmp ../data/gui.xml - -sed -e "s/FILEVERSION .*/FILEVERSION $version_win32/" < ../src/main/resources_win32.rc \ - | sed -e "s/PRODUCTVERSION .*/PRODUCTVERSION $version_win32/" \ - | sed -e "s/FileVersion\",.*/FileVersion\", \"$version_win32\"/" \ - | sed -e "s/ProductVersion\",.*/ProductVersion\", \"$version_win32\"/" \ - > tmp -mv tmp ../src/main/resources_win32.rc +#! /bin/sh + +if [ ! -f update_version.sh ]; then + echo You must run update_version.sh from scripts/ directory + exit 1 +fi + +version=$1 +if [ "$version" == "" ]; then + echo Usage: update_version.sh VERSION + exit 1 +fi + +version_win32=$(echo $1 | sed -e 's/\./,/g' | sed -e 's/-.*$//') +commas=$(grep -o "," <<< "$version_win32" | wc -l) + +while [ $commas -lt 3 ] ; do + version_win32+=",0" + commas=$(grep -o "," <<< "$version_win32" | wc -l) +done + +sed -e "s/define VERSION.*/define VERSION \"$version\"/" < ../src/config.h > tmp +mv tmp ../src/config.h + +sed -e "s/gui version=\".*/gui version=\"$version\">/" < ../data/gui.xml > tmp +mv tmp ../data/gui.xml + +cat ../src/main/resources_win32.rc \ + | sed -e "s/FILEVERSION .*/FILEVERSION $version_win32/" \ + | sed -e "s/PRODUCTVERSION .*/PRODUCTVERSION $version_win32/" \ + | sed -e "s/FileVersion\",.*/FileVersion\", \"$version_win32\"/" \ + | sed -e "s/ProductVersion\",.*/ProductVersion\", \"$version_win32\"/" \ + > tmp +mv tmp ../src/main/resources_win32.rc