From 6db72f913d66f3d5fd21129fc0c60958e72a4733 Mon Sep 17 00:00:00 2001 From: Memphiz Date: Sun, 24 Mar 2013 02:23:37 +0100 Subject: [PATCH] [jenkins] - welcome jenkins support for osx/ios/atv2/android to mainline :o) - add buildsteps for usage with jenkins --- tools/buildsteps/README | 15 +++ tools/buildsteps/android/configure-depends | 15 +++ tools/buildsteps/android/configure-xbmc | 5 + tools/buildsteps/android/make-depends | 9 ++ tools/buildsteps/android/make-xbmc | 5 + tools/buildsteps/android/package | 10 ++ tools/buildsteps/android/prepare-depends | 13 +++ tools/buildsteps/android/prepare-xbmc | 5 + tools/buildsteps/atv2/configure-depends | 13 +++ tools/buildsteps/atv2/configure-xbmc | 5 + tools/buildsteps/atv2/make-depends | 9 ++ tools/buildsteps/atv2/make-xbmc | 8 ++ tools/buildsteps/atv2/package | 13 +++ tools/buildsteps/atv2/prepare-depends | 14 +++ tools/buildsteps/atv2/prepare-xbmc | 6 ++ tools/buildsteps/defaultenv | 112 +++++++++++++++++++++ tools/buildsteps/ios/configure-depends | 12 +++ tools/buildsteps/ios/configure-xbmc | 5 + tools/buildsteps/ios/make-depends | 9 ++ tools/buildsteps/ios/make-xbmc | 9 ++ tools/buildsteps/ios/package | 13 +++ tools/buildsteps/ios/prepare-depends | 13 +++ tools/buildsteps/ios/prepare-xbmc | 6 ++ tools/buildsteps/osx32/configure-depends | 12 +++ tools/buildsteps/osx32/configure-xbmc | 5 + tools/buildsteps/osx32/make-depends | 9 ++ tools/buildsteps/osx32/make-xbmc | 8 ++ tools/buildsteps/osx32/package | 10 ++ tools/buildsteps/osx32/prepare-depends | 13 +++ tools/buildsteps/osx32/prepare-xbmc | 5 + tools/buildsteps/osx64/configure-depends | 12 +++ tools/buildsteps/osx64/configure-xbmc | 5 + tools/buildsteps/osx64/make-depends | 9 ++ tools/buildsteps/osx64/make-xbmc | 8 ++ tools/buildsteps/osx64/package | 10 ++ tools/buildsteps/osx64/prepare-depends | 13 +++ tools/buildsteps/osx64/prepare-xbmc | 5 + 37 files changed, 448 insertions(+) create mode 100644 tools/buildsteps/README create mode 100644 tools/buildsteps/android/configure-depends create mode 100644 tools/buildsteps/android/configure-xbmc create mode 100644 tools/buildsteps/android/make-depends create mode 100644 tools/buildsteps/android/make-xbmc create mode 100644 tools/buildsteps/android/package create mode 100644 tools/buildsteps/android/prepare-depends create mode 100644 tools/buildsteps/android/prepare-xbmc create mode 100755 tools/buildsteps/atv2/configure-depends create mode 100755 tools/buildsteps/atv2/configure-xbmc create mode 100755 tools/buildsteps/atv2/make-depends create mode 100755 tools/buildsteps/atv2/make-xbmc create mode 100755 tools/buildsteps/atv2/package create mode 100755 tools/buildsteps/atv2/prepare-depends create mode 100755 tools/buildsteps/atv2/prepare-xbmc create mode 100644 tools/buildsteps/defaultenv create mode 100755 tools/buildsteps/ios/configure-depends create mode 100755 tools/buildsteps/ios/configure-xbmc create mode 100755 tools/buildsteps/ios/make-depends create mode 100755 tools/buildsteps/ios/make-xbmc create mode 100755 tools/buildsteps/ios/package create mode 100755 tools/buildsteps/ios/prepare-depends create mode 100755 tools/buildsteps/ios/prepare-xbmc create mode 100755 tools/buildsteps/osx32/configure-depends create mode 100755 tools/buildsteps/osx32/configure-xbmc create mode 100755 tools/buildsteps/osx32/make-depends create mode 100755 tools/buildsteps/osx32/make-xbmc create mode 100755 tools/buildsteps/osx32/package create mode 100755 tools/buildsteps/osx32/prepare-depends create mode 100755 tools/buildsteps/osx32/prepare-xbmc create mode 100755 tools/buildsteps/osx64/configure-depends create mode 100755 tools/buildsteps/osx64/configure-xbmc create mode 100755 tools/buildsteps/osx64/make-depends create mode 100755 tools/buildsteps/osx64/make-xbmc create mode 100755 tools/buildsteps/osx64/package create mode 100755 tools/buildsteps/osx64/prepare-depends create mode 100755 tools/buildsteps/osx64/prepare-xbmc diff --git a/tools/buildsteps/README b/tools/buildsteps/README new file mode 100644 index 0000000000000..68c5354521764 --- /dev/null +++ b/tools/buildsteps/README @@ -0,0 +1,15 @@ +This folder holds all the platform dependend build scripts which are called from the jenkins buildserver. + +The following ENV variables are available on all scripts: + +$WORKSPACE - the folder where jenkins checked out the source - XBMC_HOME so to say +$Configuration - its either Debug, Release or Default and should be taken into account if possible (Defaults select platform default from /startbuild) +$SDK_VERSION - the requested SDK_VERSION to be used for building. If "Default" is passed it uses the platform default from /startbuild +$BUILDTHREADS - number of threads which can be used when building (e.x. use it for make -j$BUILDTHREADS) +$XBMC_DEPENDS_ROOT - root for installing the xbmc build depends and toolchain helpers. If "Default" is passed it uses the platform default from /startbuild + +Additional ENV variables might be specified by the buildnodes. For android buildslaves these are: + +TOOLCHAIN - the used toolchain dir +NDK_PATH - the path to the android native ndk +SDK_PATH - the path to the android sdk \ No newline at end of file diff --git a/tools/buildsteps/android/configure-depends b/tools/buildsteps/android/configure-depends new file mode 100644 index 0000000000000..13ab6cdd53446 --- /dev/null +++ b/tools/buildsteps/android/configure-depends @@ -0,0 +1,15 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=android +. $WORKSPACE/tools/buildsteps/defaultenv + +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] +then + cd $WORKSPACE/tools/depends;./configure \ + --with-tarballs=/opt/xbmc-tarballs \ + --host=arm-linux-androideabi \ + --with-sdk-path=$SDK_PATH \ + --with-ndk=$NDK_PATH \ + --with-sdk=android-$SDK_VERSION \ + --with-toolchain=$TOOLCHAIN \ + --prefix=$XBMC_DEPENDS_ROOT +fi diff --git a/tools/buildsteps/android/configure-xbmc b/tools/buildsteps/android/configure-xbmc new file mode 100644 index 0000000000000..afdd82a1d9404 --- /dev/null +++ b/tools/buildsteps/android/configure-xbmc @@ -0,0 +1,5 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=android +. $WORKSPACE/tools/buildsteps/defaultenv + +make -C $WORKSPACE/tools/depends/target/xbmc diff --git a/tools/buildsteps/android/make-depends b/tools/buildsteps/android/make-depends new file mode 100644 index 0000000000000..2deb44a7cbbb7 --- /dev/null +++ b/tools/buildsteps/android/make-depends @@ -0,0 +1,9 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=android +. $WORKSPACE/tools/buildsteps/defaultenv + +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] +then + cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS && tagSuccessFulBuild . +fi + diff --git a/tools/buildsteps/android/make-xbmc b/tools/buildsteps/android/make-xbmc new file mode 100644 index 0000000000000..738656fddbdf1 --- /dev/null +++ b/tools/buildsteps/android/make-xbmc @@ -0,0 +1,5 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=android +. $WORKSPACE/tools/buildsteps/defaultenv + +cd $WORKSPACE;make -j$BUILDTHREADS diff --git a/tools/buildsteps/android/package b/tools/buildsteps/android/package new file mode 100644 index 0000000000000..4708d969bb7ed --- /dev/null +++ b/tools/buildsteps/android/package @@ -0,0 +1,10 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=android +. $WORKSPACE/tools/buildsteps/defaultenv + +cd $WORKSPACE;make apk + +#rename for upload +#e.x. xbmc-20130314-8c2fb31-Frodo-armeabi-v7a.apk +UPLOAD_FILENAME="xbmc-$(getBuildRevDateStr)-armeabi-v7a.apk" +mv xbmcapp-armeabi-*.apk $UPLOAD_FILENAME diff --git a/tools/buildsteps/android/prepare-depends b/tools/buildsteps/android/prepare-depends new file mode 100644 index 0000000000000..8aabe48b7c5e1 --- /dev/null +++ b/tools/buildsteps/android/prepare-depends @@ -0,0 +1,13 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=android +. $WORKSPACE/tools/buildsteps/defaultenv + +#clean without depends for skipping depends build if possible +cd $WORKSPACE;git clean -xfd -e "tools/depends" + +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] +then + #clean up the rest too + cd $WORKSPACE;git clean -xfd + cd $WORKSPACE/tools/depends/;./bootstrap +fi diff --git a/tools/buildsteps/android/prepare-xbmc b/tools/buildsteps/android/prepare-xbmc new file mode 100644 index 0000000000000..020bc03022259 --- /dev/null +++ b/tools/buildsteps/android/prepare-xbmc @@ -0,0 +1,5 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=android +. $WORKSPACE/tools/buildsteps/defaultenv + +#nothing on android diff --git a/tools/buildsteps/atv2/configure-depends b/tools/buildsteps/atv2/configure-depends new file mode 100755 index 0000000000000..f7b998b3971da --- /dev/null +++ b/tools/buildsteps/atv2/configure-depends @@ -0,0 +1,13 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=atv2 +. $WORKSPACE/tools/buildsteps/defaultenv + +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] +then + cd $WORKSPACE/tools/depends;./configure \ + --with-tarballs=/Users/Shared/xbmc-depends/tarballs \ + --host=arm-apple-darwin \ + --with-sdk=$SDK_VERSION \ + --prefix=$XBMC_DEPENDS_ROOT +fi + diff --git a/tools/buildsteps/atv2/configure-xbmc b/tools/buildsteps/atv2/configure-xbmc new file mode 100755 index 0000000000000..04acb68955429 --- /dev/null +++ b/tools/buildsteps/atv2/configure-xbmc @@ -0,0 +1,5 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=atv2 +. $WORKSPACE/tools/buildsteps/defaultenv + +make -C $WORKSPACE/tools/depends/target/xbmc diff --git a/tools/buildsteps/atv2/make-depends b/tools/buildsteps/atv2/make-depends new file mode 100755 index 0000000000000..a633bb621ae78 --- /dev/null +++ b/tools/buildsteps/atv2/make-depends @@ -0,0 +1,9 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=atv2 +. $WORKSPACE/tools/buildsteps/defaultenv + +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] +then + cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS && tagSuccessFulBuild . +fi + diff --git a/tools/buildsteps/atv2/make-xbmc b/tools/buildsteps/atv2/make-xbmc new file mode 100755 index 0000000000000..743db59d11c15 --- /dev/null +++ b/tools/buildsteps/atv2/make-xbmc @@ -0,0 +1,8 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=atv2 +. $WORKSPACE/tools/buildsteps/defaultenv + +cd $WORKSPACE;make -j$BUILDTHREADS xcode_depends +cd $WORKSPACE;xcodebuild -project XBMC-ATV2.xcodeproj -target XBMC -configuration $Configuration build \ + ONLY_ACTIVE_ARCH=YES ARCHS=armv7 VALID_ARCHS=armv7 IPHONEOS_DEPLOYMENT_TARGET=4.1 \ + SDKROOT=iphoneos$SDK_VERSION XBMC_DEPENDS_ROOT=$XBMC_DEPENDS_ROOT diff --git a/tools/buildsteps/atv2/package b/tools/buildsteps/atv2/package new file mode 100755 index 0000000000000..d357e36b0cc86 --- /dev/null +++ b/tools/buildsteps/atv2/package @@ -0,0 +1,13 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=atv2 +. $WORKSPACE/tools/buildsteps/defaultenv + +#ensure that dpkg tools are used from our toolchain +export PATH=$XBMC_DEPENDS_ROOT/buildtools-native/bin/:$PATH + +cd $WORKSPACE/tools/darwin/packaging/xbmc-atv2/;./mkdeb-xbmc-atv2.sh $Configuration + +#rename for upload +#e.x. xbmc-20130314-8c2fb31-Frodo-atv2.deb +UPLOAD_FILENAME="xbmc-$(getBuildRevDateStr)-atv2.deb" +mv *.deb $UPLOAD_FILENAME diff --git a/tools/buildsteps/atv2/prepare-depends b/tools/buildsteps/atv2/prepare-depends new file mode 100755 index 0000000000000..dad9176ea2555 --- /dev/null +++ b/tools/buildsteps/atv2/prepare-depends @@ -0,0 +1,14 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=atv2 +. $WORKSPACE/tools/buildsteps/defaultenv + +#clean without depends for skipping depends build if possible +cd $WORKSPACE;git clean -xfd -e "tools/depends" + +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] +then + #clean up the rest too + cd $WORKSPACE;git clean -xfd + cd $WORKSPACE/tools/depends/;./bootstrap +fi + diff --git a/tools/buildsteps/atv2/prepare-xbmc b/tools/buildsteps/atv2/prepare-xbmc new file mode 100755 index 0000000000000..c3738f9e7ae04 --- /dev/null +++ b/tools/buildsteps/atv2/prepare-xbmc @@ -0,0 +1,6 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=atv2 +. $WORKSPACE/tools/buildsteps/defaultenv + +#nothing on ios + diff --git a/tools/buildsteps/defaultenv b/tools/buildsteps/defaultenv new file mode 100644 index 0000000000000..4754b97831170 --- /dev/null +++ b/tools/buildsteps/defaultenv @@ -0,0 +1,112 @@ +BUILDTHREADS=${BUILDTHREADS:-1} +SDK_VERSION=${SDK_VERSION:-"Default"} +Configuration=${Configuration:-"Default"} +XBMC_DEPENDS_ROOT=${XBMC_DEPENDS_ROOT:-"Default"} +PATH_CHANGE_REV_FILENAME=".last_success_revision" + +#set platform defaults +#$XBMC_PLATFORM_DIR matches the platform subdirs! +case $XBMC_PLATFORM_DIR in + atv2) + DEFAULT_SDK_VERSION=4.2 + DEFAULT_XBMC_DEPENDS_ROOT=$WORKSPACE/tools/depends/xbmc-depends + DEFAULT_CONFIGURATION="Debug" + ;; + + ios) + DEFAULT_SDK_VERSION=4.2 + DEFAULT_XBMC_DEPENDS_ROOT=$WORKSPACE/tools/depends/xbmc-depends + DEFAULT_CONFIGURATION="Debug" + ;; + + osx32) + DEFAULT_SDK_VERSION=10.8 + DEFAULT_XBMC_DEPENDS_ROOT=$WORKSPACE/tools/depends/xbmc-depends + DEFAULT_CONFIGURATION="Debug" + ;; + + osx64) + DEFAULT_SDK_VERSION=10.8 + DEFAULT_XBMC_DEPENDS_ROOT=$WORKSPACE/tools/depends/xbmc-depends + DEFAULT_CONFIGURATION="Debug" + ;; + android) + DEFAULT_SDK_VERSION=10 + DEFAULT_XBMC_DEPENDS_ROOT=$WORKSPACE/tools/depends/xbmc-depends + DEFAULT_CONFIGURATION="Debug" +esac + +if [ $SDK_VERSION == "Default" ] +then + SDK_VERSION=$DEFAULT_SDK_VERSION +fi + +if [ $XBMC_DEPENDS_ROOT == "Default" ] +then + XBMC_DEPENDS_ROOT=$DEFAULT_XBMC_DEPENDS_ROOT +fi + +if [ $Configuration == "Default" ] +then + Configuration=$DEFAULT_CONFIGURATION +fi + +#clamp release builds to 1 thread only +if [ $Configuration == "Release" ] +then + BUILDTHREADS=1 +fi + +#helper functions + +#hash a dir based on the git revision, SDK_PATH, NDK_PATH, SDK_VERSION, TOOLCHAIN and XBMC_DEPENDS_ROOT +function getBuildHash () +{ + local checkPath + checkPath="$1" + local hashStr + hashStr="$(git rev-list HEAD --max-count=1 -- $checkPath)" + hashStr="$hashStr $SDK_PATH $NDK_PATH $SDK_VERSION $TOOLCHAIN $XBMC_DEPENDS_ROOT" + echo $hashStr +} + +function pathChanged () +{ + local ret + local checkPath + ret="0" + #no optims in release builds! + if [ $Configuration == "Release" ] + then + echo "1" + return + fi + + checkPath="$1" + if [ -e $checkPath/$PATH_CHANGE_REV_FILENAME ] + then + if [ "$(cat $checkPath/$PATH_CHANGE_REV_FILENAME)" != "$(getBuildHash $WORKSPACE/tools/depends)" ] + then + ret="1" + fi + else + ret="1" + fi + + echo $ret +} + +function tagSuccessFulBuild () +{ + local checkPath + checkPath="$1" + echo "$(getBuildHash $checkPath)" > $checkPath/$PATH_CHANGE_REV_FILENAME +} + +function getBuildRevDateStr () +{ + git --no-pager log --abbrev=7 -n 1 --pretty=format:"%h %ci" HEAD | awk '{gsub("-", "");print $2"-"$1}' 2>/dev/null + if [ "$?" != "0" ]; then + echo "Unknown" + fi +} diff --git a/tools/buildsteps/ios/configure-depends b/tools/buildsteps/ios/configure-depends new file mode 100755 index 0000000000000..d09f0cb2699a1 --- /dev/null +++ b/tools/buildsteps/ios/configure-depends @@ -0,0 +1,12 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=ios +. $WORKSPACE/tools/buildsteps/defaultenv + +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] +then + cd $WORKSPACE/tools/depends;./configure \ + --with-tarballs=/Users/Shared/xbmc-depends/tarballs \ + --host=arm-apple-darwin \ + --with-sdk=$SDK_VERSION \ + --prefix=$XBMC_DEPENDS_ROOT +fi diff --git a/tools/buildsteps/ios/configure-xbmc b/tools/buildsteps/ios/configure-xbmc new file mode 100755 index 0000000000000..0ce4bf5e7addc --- /dev/null +++ b/tools/buildsteps/ios/configure-xbmc @@ -0,0 +1,5 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=ios +. $WORKSPACE/tools/buildsteps/defaultenv + +make -C $WORKSPACE/tools/depends/target/xbmc diff --git a/tools/buildsteps/ios/make-depends b/tools/buildsteps/ios/make-depends new file mode 100755 index 0000000000000..d1e52dd43fadc --- /dev/null +++ b/tools/buildsteps/ios/make-depends @@ -0,0 +1,9 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=ios +. $WORKSPACE/tools/buildsteps/defaultenv + +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] +then + cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS && tagSuccessFulBuild . +fi + diff --git a/tools/buildsteps/ios/make-xbmc b/tools/buildsteps/ios/make-xbmc new file mode 100755 index 0000000000000..7693d21472f98 --- /dev/null +++ b/tools/buildsteps/ios/make-xbmc @@ -0,0 +1,9 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=ios +. $WORKSPACE/tools/buildsteps/defaultenv + +cd $WORKSPACE;make -j$BUILDTHREADS xcode_depends +cd $WORKSPACE;xcodebuild -project XBMC-IOS.xcodeproj -target XBMC -configuration $Configuration build \ + ONLY_ACTIVE_ARCH=YES ARCHS=armv7 VALID_ARCHS=armv7 IPHONEOS_DEPLOYMENT_TARGET=4.1 \ + SDKROOT=iphoneos$SDK_VERSION XBMC_DEPENDS_ROOT=$XBMC_DEPENDS_ROOT + diff --git a/tools/buildsteps/ios/package b/tools/buildsteps/ios/package new file mode 100755 index 0000000000000..0b4830d139dc8 --- /dev/null +++ b/tools/buildsteps/ios/package @@ -0,0 +1,13 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=ios +. $WORKSPACE/tools/buildsteps/defaultenv + +#ensure that dpkg tools are used from our toolchain +export PATH=$XBMC_DEPENDS_ROOT/buildtools-native/bin/:$PATH + +cd $WORKSPACE/tools/darwin/packaging/xbmc-ios/;./mkdeb-xbmc-ios.sh $Configuration + +#rename for upload +#e.x. xbmc-20130314-8c2fb31-Frodo-ios.deb +UPLOAD_FILENAME="xbmc-$(getBuildRevDateStr)-ios.deb" +mv *.deb $UPLOAD_FILENAME diff --git a/tools/buildsteps/ios/prepare-depends b/tools/buildsteps/ios/prepare-depends new file mode 100755 index 0000000000000..04c1cb111999a --- /dev/null +++ b/tools/buildsteps/ios/prepare-depends @@ -0,0 +1,13 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=ios +. $WORKSPACE/tools/buildsteps/defaultenv + +#clean without depends for skipping depends build if possible +cd $WORKSPACE;git clean -xfd -e "tools/depends" + +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] +then + #clean up the rest too + cd $WORKSPACE;git clean -xfd + cd $WORKSPACE/tools/depends/;./bootstrap +fi diff --git a/tools/buildsteps/ios/prepare-xbmc b/tools/buildsteps/ios/prepare-xbmc new file mode 100755 index 0000000000000..4b75e9158a57f --- /dev/null +++ b/tools/buildsteps/ios/prepare-xbmc @@ -0,0 +1,6 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=ios +. $WORKSPACE/tools/buildsteps/defaultenv + +#nothing on ios + diff --git a/tools/buildsteps/osx32/configure-depends b/tools/buildsteps/osx32/configure-depends new file mode 100755 index 0000000000000..3ccfc3553c80b --- /dev/null +++ b/tools/buildsteps/osx32/configure-depends @@ -0,0 +1,12 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=osx32 +. $WORKSPACE/tools/buildsteps/defaultenv + +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] +then + cd $WORKSPACE/tools/depends;./configure \ + --with-tarballs=/Users/Shared/xbmc-depends/tarballs \ + --host=i386-apple-darwin \ + --with-sdk=$SDK_VERSION \ + --prefix=$XBMC_DEPENDS_ROOT +fi diff --git a/tools/buildsteps/osx32/configure-xbmc b/tools/buildsteps/osx32/configure-xbmc new file mode 100755 index 0000000000000..b7456ca4fd6cf --- /dev/null +++ b/tools/buildsteps/osx32/configure-xbmc @@ -0,0 +1,5 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=osx32 +. $WORKSPACE/tools/buildsteps/defaultenv + +make -C $WORKSPACE/tools/depends/target/xbmc diff --git a/tools/buildsteps/osx32/make-depends b/tools/buildsteps/osx32/make-depends new file mode 100755 index 0000000000000..e4d4d3030d361 --- /dev/null +++ b/tools/buildsteps/osx32/make-depends @@ -0,0 +1,9 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=osx32 +. $WORKSPACE/tools/buildsteps/defaultenv + +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] +then + cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS && tagSuccessFulBuild . +fi + diff --git a/tools/buildsteps/osx32/make-xbmc b/tools/buildsteps/osx32/make-xbmc new file mode 100755 index 0000000000000..f93348ba7cf2b --- /dev/null +++ b/tools/buildsteps/osx32/make-xbmc @@ -0,0 +1,8 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=osx32 +. $WORKSPACE/tools/buildsteps/defaultenv + +cd $WORKSPACE;make -j$BUILDTHREADS xcode_depends + +cd $WORKSPACE;xcodebuild -sdk macosx$SDK_VERSION -project XBMC.xcodeproj -target XBMC.app ONLY_ACTIVE_ARCH=YES \ + ARCHS=i386 VALID_ARCHS=i386 XBMC_DEPENDS_ROOT=$XBMC_DEPENDS_ROOT -configuration $Configuration build diff --git a/tools/buildsteps/osx32/package b/tools/buildsteps/osx32/package new file mode 100755 index 0000000000000..5bce61925ae72 --- /dev/null +++ b/tools/buildsteps/osx32/package @@ -0,0 +1,10 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=osx32 +. $WORKSPACE/tools/buildsteps/defaultenv + +cd $WORKSPACE/tools/darwin/packaging/xbmc-osx/;./mkdmg-xbmc-osx.sh $Configuration + +#rename for upload +#e.x. xbmc-20130314-8c2fb31-Frodo-i386.dmg +UPLOAD_FILENAME="xbmc-$(getBuildRevDateStr)-i386.dmg" +mv *.dmg $UPLOAD_FILENAME diff --git a/tools/buildsteps/osx32/prepare-depends b/tools/buildsteps/osx32/prepare-depends new file mode 100755 index 0000000000000..94afa213bd7f4 --- /dev/null +++ b/tools/buildsteps/osx32/prepare-depends @@ -0,0 +1,13 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=osx32 +. $WORKSPACE/tools/buildsteps/defaultenv + +#clean without depends for skipping depends build if possible +cd $WORKSPACE;git clean -xfd -e "tools/depends" + +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] +then + #clean up the rest too + cd $WORKSPACE;git clean -xfd + cd $WORKSPACE/tools/depends/;./bootstrap +fi diff --git a/tools/buildsteps/osx32/prepare-xbmc b/tools/buildsteps/osx32/prepare-xbmc new file mode 100755 index 0000000000000..01f97dac74d8d --- /dev/null +++ b/tools/buildsteps/osx32/prepare-xbmc @@ -0,0 +1,5 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=osx32 +. $WORKSPACE/tools/buildsteps/defaultenv + +#nothing on osx diff --git a/tools/buildsteps/osx64/configure-depends b/tools/buildsteps/osx64/configure-depends new file mode 100755 index 0000000000000..62f97700b331d --- /dev/null +++ b/tools/buildsteps/osx64/configure-depends @@ -0,0 +1,12 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=osx64 +. $WORKSPACE/tools/buildsteps/defaultenv + +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] +then + cd $WORKSPACE/tools/depends;./configure \ + --with-tarballs=/Users/Shared/xbmc-depends/tarballs \ + --host=x86_64-apple-darwin \ + --with-sdk=$SDK_VERSION \ + --prefix=$XBMC_DEPENDS_ROOT +fi diff --git a/tools/buildsteps/osx64/configure-xbmc b/tools/buildsteps/osx64/configure-xbmc new file mode 100755 index 0000000000000..92e13e24e665e --- /dev/null +++ b/tools/buildsteps/osx64/configure-xbmc @@ -0,0 +1,5 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=osx64 +. $WORKSPACE/tools/buildsteps/defaultenv + +make -C $WORKSPACE/tools/depends/target/xbmc diff --git a/tools/buildsteps/osx64/make-depends b/tools/buildsteps/osx64/make-depends new file mode 100755 index 0000000000000..11a62bf4704a3 --- /dev/null +++ b/tools/buildsteps/osx64/make-depends @@ -0,0 +1,9 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=osx64 +. $WORKSPACE/tools/buildsteps/defaultenv + +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] +then + cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS && tagSuccessFulBuild . +fi + diff --git a/tools/buildsteps/osx64/make-xbmc b/tools/buildsteps/osx64/make-xbmc new file mode 100755 index 0000000000000..421613e5e3fe3 --- /dev/null +++ b/tools/buildsteps/osx64/make-xbmc @@ -0,0 +1,8 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=osx64 +. $WORKSPACE/tools/buildsteps/defaultenv + +cd $WORKSPACE;make -j$BUILDTHREADS xcode_depends + +cd $WORKSPACE;xcodebuild -sdk macosx$SDK_VERSION -project XBMC.xcodeproj -target XBMC.app ONLY_ACTIVE_ARCH=YES \ + ARCHS=x86_64 VALID_ARCHS=x86_64 XBMC_DEPENDS_ROOT=$XBMC_DEPENDS_ROOT -configuration $Configuration build diff --git a/tools/buildsteps/osx64/package b/tools/buildsteps/osx64/package new file mode 100755 index 0000000000000..ac5019532542b --- /dev/null +++ b/tools/buildsteps/osx64/package @@ -0,0 +1,10 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=osx64 +. $WORKSPACE/tools/buildsteps/defaultenv + +cd $WORKSPACE/tools/darwin/packaging/xbmc-osx/;./mkdmg-xbmc-osx.sh $Configuration + +#rename for upload +#e.x. xbmc-20130314-8c2fb31-Frodo-x86_64.dmg +UPLOAD_FILENAME="xbmc-$(getBuildRevDateStr)-x86_64.dmg" +mv *.dmg $UPLOAD_FILENAME diff --git a/tools/buildsteps/osx64/prepare-depends b/tools/buildsteps/osx64/prepare-depends new file mode 100755 index 0000000000000..8fed8fd084acb --- /dev/null +++ b/tools/buildsteps/osx64/prepare-depends @@ -0,0 +1,13 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=osx64 +. $WORKSPACE/tools/buildsteps/defaultenv + +#clean without depends for skipping depends build if possible +cd $WORKSPACE;git clean -xfd -e "tools/depends" + +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] +then + #clean up the rest too + cd $WORKSPACE;git clean -xfd + cd $WORKSPACE/tools/depends/;./bootstrap +fi diff --git a/tools/buildsteps/osx64/prepare-xbmc b/tools/buildsteps/osx64/prepare-xbmc new file mode 100755 index 0000000000000..6eea638e97537 --- /dev/null +++ b/tools/buildsteps/osx64/prepare-xbmc @@ -0,0 +1,5 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=osx64 +. $WORKSPACE/tools/buildsteps/defaultenv + +#nothing on osx