From 5bece5c274374f4dcc30e6a0d33285e00bbcccf6 Mon Sep 17 00:00:00 2001 From: Markus Stoll Date: Fri, 28 Nov 2014 10:18:10 +0100 Subject: [PATCH] take care of proper PATH and error handling add dependencies and build scripts to be able to build all configurations from the solution SparkleShare.sln the used git binaries are now built from source build configurations are now: Debug: with debug symbols and symbol DEBUG defined Release: without debug symbols, with optimizations, depends on installed Mono framework ReleaseDist: like Release, but all depending frameworks are merged into one OSX binary, installed Mono framework not needed / used --- SparkleLib/Git/SparkleLib.Git.csproj | 10 ++++---- SparkleLib/SparkleLib.csproj | 25 +++++-------------- SparkleShare/Mac/SparkleShare.csproj | 26 +++++++++++++------ SparkleShare/Mac/SparkleShare.sln | 7 ++++++ SparkleShare/Mac/checkGit.sh | 37 ++++++++++++++++++++++++++++ SparkleShare/Mac/git.version | 1 + SparkleShare/Mac/packReleaseDist.sh | 16 ++++++++++++ SparkleShare/Mac/postBuild.sh | 15 +++++++++++ 8 files changed, 106 insertions(+), 31 deletions(-) create mode 100755 SparkleShare/Mac/checkGit.sh create mode 100644 SparkleShare/Mac/git.version create mode 100755 SparkleShare/Mac/packReleaseDist.sh create mode 100755 SparkleShare/Mac/postBuild.sh diff --git a/SparkleLib/Git/SparkleLib.Git.csproj b/SparkleLib/Git/SparkleLib.Git.csproj index a67702e7..ddfed9db 100644 --- a/SparkleLib/Git/SparkleLib.Git.csproj +++ b/SparkleLib/Git/SparkleLib.Git.csproj @@ -3,7 +3,7 @@ Debug AnyCPU - 9.0.30729 + 8.0.30703 2.0 {009FDCD7-1D57-4202-BB6D-8477D8C6B8EE} Library @@ -11,21 +11,21 @@ SparkleLib.Git SparkleLib.Git 512 - + + - pdbonly True ..\..\bin\ - TRACE prompt 4 - none False bin\Debug 4 + TRACE DEBUG + true diff --git a/SparkleLib/SparkleLib.csproj b/SparkleLib/SparkleLib.csproj index fb1fcc98..d90138af 100644 --- a/SparkleLib/SparkleLib.csproj +++ b/SparkleLib/SparkleLib.csproj @@ -3,27 +3,29 @@ Debug AnyCPU - 8.0.50727 + 8.0.30703 2.0 {2C914413-B31C-4362-93C7-1AE34F09112A} Library SparkleLib SparkleLib - + + none - False + true ..\bin prompt 4 False - none False ..\bin 4 + true + DEBUG @@ -46,19 +48,4 @@ - - - - - - - - - - - - - - - diff --git a/SparkleShare/Mac/SparkleShare.csproj b/SparkleShare/Mac/SparkleShare.csproj index 6920eb19..04b8cbb9 100644 --- a/SparkleShare/Mac/SparkleShare.csproj +++ b/SparkleShare/Mac/SparkleShare.csproj @@ -23,16 +23,14 @@ 4 - + False False False - True + false False - Mac Developer - 3rd Party Mac Developer Installer false false @@ -44,7 +42,7 @@ 4 - + False @@ -52,12 +50,26 @@ False false False - Mac Developer - 3rd Party Mac Developer Installer true false false + + false + bin\ReleaseDist + 4 + false + false + false + + + + + + + false + false + diff --git a/SparkleShare/Mac/SparkleShare.sln b/SparkleShare/Mac/SparkleShare.sln index 9faea5d9..8920b7f0 100644 --- a/SparkleShare/Mac/SparkleShare.sln +++ b/SparkleShare/Mac/SparkleShare.sln @@ -11,20 +11,27 @@ Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Release|Any CPU = Release|Any CPU Debug|Any CPU = Debug|Any CPU + ReleaseDist|Any CPU = ReleaseDist|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution {009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}.Debug|Any CPU.Build.0 = Debug|Any CPU {009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}.Release|Any CPU.ActiveCfg = Release|Any CPU {009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}.Release|Any CPU.Build.0 = Release|Any CPU + {009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}.ReleaseDist|Any CPU.ActiveCfg = Release|Any CPU + {009FDCD7-1D57-4202-BB6D-8477D8C6B8EE}.ReleaseDist|Any CPU.Build.0 = Release|Any CPU {2C914413-B31C-4362-93C7-1AE34F09112A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {2C914413-B31C-4362-93C7-1AE34F09112A}.Debug|Any CPU.Build.0 = Debug|Any CPU {2C914413-B31C-4362-93C7-1AE34F09112A}.Release|Any CPU.ActiveCfg = Release|Any CPU {2C914413-B31C-4362-93C7-1AE34F09112A}.Release|Any CPU.Build.0 = Release|Any CPU + {2C914413-B31C-4362-93C7-1AE34F09112A}.ReleaseDist|Any CPU.ActiveCfg = Release|Any CPU + {2C914413-B31C-4362-93C7-1AE34F09112A}.ReleaseDist|Any CPU.Build.0 = Release|Any CPU {CF5BC8DB-A633-4FCC-8A3E-E3AC9B59FABC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {CF5BC8DB-A633-4FCC-8A3E-E3AC9B59FABC}.Debug|Any CPU.Build.0 = Debug|Any CPU {CF5BC8DB-A633-4FCC-8A3E-E3AC9B59FABC}.Release|Any CPU.ActiveCfg = Release|Any CPU {CF5BC8DB-A633-4FCC-8A3E-E3AC9B59FABC}.Release|Any CPU.Build.0 = Release|Any CPU + {CF5BC8DB-A633-4FCC-8A3E-E3AC9B59FABC}.ReleaseDist|Any CPU.ActiveCfg = ReleaseDist|Any CPU + {CF5BC8DB-A633-4FCC-8A3E-E3AC9B59FABC}.ReleaseDist|Any CPU.Build.0 = ReleaseDist|Any CPU EndGlobalSection GlobalSection(MonoDevelopProperties) = preSolution StartupItem = SparkleShare.csproj diff --git a/SparkleShare/Mac/checkGit.sh b/SparkleShare/Mac/checkGit.sh new file mode 100755 index 00000000..d64a0836 --- /dev/null +++ b/SparkleShare/Mac/checkGit.sh @@ -0,0 +1,37 @@ +#!/bin/sh +function abspath() +{ + case "${1}" in + [./]*) + echo "$(cd ${1%/*}; pwd)/${1##*/}" + ;; + *) + echo "${PWD}/${1}" + ;; + esac +} + +export projectFolder=$(dirname $0) +export projectFolder=$(abspath ${projectFolder}) + +export gitVersion=$(cat ${projectFolder}/git.version) + +set -e + +if [ ! -f ${projectFolder}/git-${gitVersion}.tar.gz ] +then + curl -s https://codeload.github.com/git/git/zip/v${gitVersion} > git.zip + unzip -q git.zip + + cd git-${gitVersion} + + make configure + ./configure --prefix=${projectFolder}/git + make install + cd .. + + tar cfz git-${gitVersion}.tar.gz git + rm -rf git + rm -rf git-${gitVersion} + rm git.zip +fi diff --git a/SparkleShare/Mac/git.version b/SparkleShare/Mac/git.version new file mode 100644 index 00000000..05fc3da2 --- /dev/null +++ b/SparkleShare/Mac/git.version @@ -0,0 +1 @@ +1.8.5.5 diff --git a/SparkleShare/Mac/packReleaseDist.sh b/SparkleShare/Mac/packReleaseDist.sh new file mode 100755 index 00000000..4a8f2df0 --- /dev/null +++ b/SparkleShare/Mac/packReleaseDist.sh @@ -0,0 +1,16 @@ +#!/bin/sh + +# expect path to app bundle argument +export bundle=$1 +export projectFolder=$(dirname $0) + +echo packing ${bundle} for release without Mono framework dependency + +export PKG_CONFIG_PATH=/usr/lib/pkgconfig:/Library/Frameworks/Mono.framework/Versions/Current/lib/pkgconfig +export AS="as -arch i386" +export CC="cc -arch i386 -lobjc -liconv -framework Foundation" +export PATH=/usr/local/bin:/opt/local/bin:/Library/Frameworks/Mono.framework/Versions/Current/bin:/usr/bin:/bin + +cd ${bundle}/Contents/MonoBundle/ +mkbundle --static --deps -o ../MacOS/SparkleShare SparkleShare.exe SparkleLib.dll MonoMac.dll SparkleLib.Git.dll +rm *.dll *.exe diff --git a/SparkleShare/Mac/postBuild.sh b/SparkleShare/Mac/postBuild.sh new file mode 100755 index 00000000..643f33a1 --- /dev/null +++ b/SparkleShare/Mac/postBuild.sh @@ -0,0 +1,15 @@ +#!/bin/sh + +# expect path to app bundle argument +export bundle=$1 +export projectFolder=$(dirname $0) +export gitVersion=$(cat ${projectFolder}/git.version) + +echo postprocessing ${bundle} + +export PATH=/usr/local/bin:/opt/local/bin:/Library/Frameworks/Mono.framework/Versions/Current/bin:/usr/bin:/bin + +${projectFolder}/checkGit.sh +tar -x -f ${projectFolder}/git-${gitVersion}.tar.gz -C ${bundle}/Contents/Resources +cp -R SparkleShareInviteOpener.app ${bundle}/Contents/Resources +cp config ${bundle}/Contents/MonoBundle