diff options
Diffstat (limited to 'tools/buildsteps')
58 files changed, 394 insertions, 76 deletions
diff --git a/tools/buildsteps/android/configure-depends b/tools/buildsteps/android/configure-depends index 344750c04e..746c11f73d 100644 --- a/tools/buildsteps/android/configure-depends +++ b/tools/buildsteps/android/configure-depends @@ -7,7 +7,7 @@ NDK_ARCH="arm" CURRENT_NDK_PATH=$ANDROID_DEV_ROOT/android-ndk-r$NDK_VERSION CURRENT_TOOLCHAIN=$ANDROID_DEV_ROOT/android-toolchain-$NDK_ARCH-$SDK_VERSION-r$NDK_VERSION -if [ "$(rebuildDepends)" == "1" ] +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then cd $WORKSPACE/tools/depends;./configure \ --with-tarballs=$TARBALLS \ diff --git a/tools/buildsteps/android/make-binary-addons b/tools/buildsteps/android/make-binary-addons new file mode 100644 index 0000000000..0ded6d3273 --- /dev/null +++ b/tools/buildsteps/android/make-binary-addons @@ -0,0 +1,24 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=android +. $WORKSPACE/tools/buildsteps/defaultenv + +. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-native-depends + +for addon in $BINARY_ADDONS +do + ALL_BINARY_ADDONS_BUILT="1" + #only build binary addons if something in the addons metadata changed + if [ "$(pathChanged $WORKSPACE/project/cmake)" == "1" ] + then + echo "building $addon" + git clean -xffd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon + cd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon;make -j $BUILDTHREADS || ALL_BINARY_ADDONS_BUILT="0" + fi +done +if [ "$ALL_BINARY_ADDONS_BUILT" == "1" ] +then + tagSuccessFulBuild $WORKSPACE/project/cmake +else + #make jenkins fail + exit 1 +fi diff --git a/tools/buildsteps/android/make-depends b/tools/buildsteps/android/make-depends index 2d5509e7ac..c5869b26e2 100644 --- a/tools/buildsteps/android/make-depends +++ b/tools/buildsteps/android/make-depends @@ -2,8 +2,8 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=android . $WORKSPACE/tools/buildsteps/defaultenv -if [ "$(rebuildDepends)" == "1" ] +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then - cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS && tagSuccessFulDependsBuild + cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends fi diff --git a/tools/buildsteps/android/make-native-depends b/tools/buildsteps/android/make-native-depends new file mode 100644 index 0000000000..f67ced0eef --- /dev/null +++ b/tools/buildsteps/android/make-native-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 + git clean -xffd $WORKSPACE/tools/depends/native + cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends +fi diff --git a/tools/buildsteps/android/prepare-depends b/tools/buildsteps/android/prepare-depends index babe7e4d63..933ea4592e 100644 --- a/tools/buildsteps/android/prepare-depends +++ b/tools/buildsteps/android/prepare-depends @@ -3,9 +3,11 @@ XBMC_PLATFORM_DIR=android . $WORKSPACE/tools/buildsteps/defaultenv #clean without depends for skipping depends build if possible -cd $WORKSPACE;git clean -xfd -e "project/cmake/.last_success_revision" -e "tools/depends" +#also skip binary addons (pvr, audioencoder) as long as they are deployed in tree +cd $WORKSPACE;git clean -xfd -e "project/cmake/.last_success_revision" -e "tools/depends" ${DEPLOYED_BINARY_ADDONS} -if [ "$(rebuildDepends)" == "1" ] +# if depends path has changed - cleanout everything and do a full rebuild +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then #clean up the rest too cd $WORKSPACE;git clean -xffd diff --git a/tools/buildsteps/android/prepare-xbmc b/tools/buildsteps/android/prepare-xbmc index 3a82e5c600..b6402ee3c9 100644 --- a/tools/buildsteps/android/prepare-xbmc +++ b/tools/buildsteps/android/prepare-xbmc @@ -9,3 +9,6 @@ then rm -r $WORKSPACE/addons/skin.re-touched fi git submodule update --init $WORKSPACE/addons/skin.re-touched + +#build binary addons before building xbmc... +. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons diff --git a/tools/buildsteps/androidx86/configure-depends b/tools/buildsteps/androidx86/configure-depends index 89fd36f34b..5c35987fad 100644 --- a/tools/buildsteps/androidx86/configure-depends +++ b/tools/buildsteps/androidx86/configure-depends @@ -7,7 +7,7 @@ NDK_ARCH=x86 CURRENT_NDK_PATH=$ANDROID_DEV_ROOT/android-ndk-r$NDK_VERSION CURRENT_TOOLCHAIN=$ANDROID_DEV_ROOT/android-toolchain-$NDK_ARCH-$SDK_VERSION-r$NDK_VERSION -if [ "$(rebuildDepends)" == "1" ] +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then cd $WORKSPACE/tools/depends;./configure \ --with-tarballs=$TARBALLS \ diff --git a/tools/buildsteps/androidx86/make-binary-addons b/tools/buildsteps/androidx86/make-binary-addons new file mode 100644 index 0000000000..f14a84062d --- /dev/null +++ b/tools/buildsteps/androidx86/make-binary-addons @@ -0,0 +1,24 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=android +. $WORKSPACE/tools/buildsteps/defaultenv + +. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-native-depends + +for addon in $BINARY_ADDONS +do + ALL_BINARY_ADDONS_BUILT="1" + #only build binary addons if something in the addons metadata changed + if [ "$(pathChanged $WORKSPACE/project/cmake)" == "1" ] + then + echo "building $addon" + git clean -xffd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon + cd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon;make -j $BUILDTHREADS || ALL_BINARY_ADDONS_BUILT="0" + fi +done +if [ "$ALL_BINARY_ADDONS_BUILT" == "1" ] +then + tagSuccessFulBuild $WORKSPACE/project/cmake +else + #make jenkins fail + exit 1 +fi diff --git a/tools/buildsteps/androidx86/make-depends b/tools/buildsteps/androidx86/make-depends index 2d5509e7ac..c5869b26e2 100644 --- a/tools/buildsteps/androidx86/make-depends +++ b/tools/buildsteps/androidx86/make-depends @@ -2,8 +2,8 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=android . $WORKSPACE/tools/buildsteps/defaultenv -if [ "$(rebuildDepends)" == "1" ] +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then - cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS && tagSuccessFulDependsBuild + cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends fi diff --git a/tools/buildsteps/androidx86/make-native-depends b/tools/buildsteps/androidx86/make-native-depends new file mode 100644 index 0000000000..549ad2becb --- /dev/null +++ b/tools/buildsteps/androidx86/make-native-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 + git clean -xffd $WORKSPACE/tools/depends/native + cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends +fi
\ No newline at end of file diff --git a/tools/buildsteps/androidx86/prepare-depends b/tools/buildsteps/androidx86/prepare-depends index babe7e4d63..933ea4592e 100644 --- a/tools/buildsteps/androidx86/prepare-depends +++ b/tools/buildsteps/androidx86/prepare-depends @@ -3,9 +3,11 @@ XBMC_PLATFORM_DIR=android . $WORKSPACE/tools/buildsteps/defaultenv #clean without depends for skipping depends build if possible -cd $WORKSPACE;git clean -xfd -e "project/cmake/.last_success_revision" -e "tools/depends" +#also skip binary addons (pvr, audioencoder) as long as they are deployed in tree +cd $WORKSPACE;git clean -xfd -e "project/cmake/.last_success_revision" -e "tools/depends" ${DEPLOYED_BINARY_ADDONS} -if [ "$(rebuildDepends)" == "1" ] +# if depends path has changed - cleanout everything and do a full rebuild +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then #clean up the rest too cd $WORKSPACE;git clean -xffd diff --git a/tools/buildsteps/androidx86/prepare-xbmc b/tools/buildsteps/androidx86/prepare-xbmc index 3a82e5c600..b6402ee3c9 100644 --- a/tools/buildsteps/androidx86/prepare-xbmc +++ b/tools/buildsteps/androidx86/prepare-xbmc @@ -9,3 +9,6 @@ then rm -r $WORKSPACE/addons/skin.re-touched fi git submodule update --init $WORKSPACE/addons/skin.re-touched + +#build binary addons before building xbmc... +. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons diff --git a/tools/buildsteps/atv2/configure-depends b/tools/buildsteps/atv2/configure-depends index 2c9aa26b4e..e12bc54f97 100755 --- a/tools/buildsteps/atv2/configure-depends +++ b/tools/buildsteps/atv2/configure-depends @@ -2,7 +2,7 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=atv2 . $WORKSPACE/tools/buildsteps/defaultenv -if [ "$(rebuildDepends)" == "1" ] +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then cd $WORKSPACE/tools/depends;./configure \ --with-tarballs=/Users/Shared/xbmc-depends/tarballs \ @@ -10,4 +10,3 @@ then --with-sdk=$SDK_VERSION \ --prefix=$XBMC_DEPENDS_ROOT fi - diff --git a/tools/buildsteps/atv2/make-binary-addons b/tools/buildsteps/atv2/make-binary-addons new file mode 100755 index 0000000000..fd95a8729c --- /dev/null +++ b/tools/buildsteps/atv2/make-binary-addons @@ -0,0 +1,24 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=atv2 +. $WORKSPACE/tools/buildsteps/defaultenv + +. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-native-depends + +for addon in $BINARY_ADDONS +do + ALL_BINARY_ADDONS_BUILT="1" + #only build binary addons if something in the addons metadata changed + if [ "$(pathChanged $WORKSPACE/project/cmake)" == "1" ] + then + echo "building $addon" + git clean -xffd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon + cd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon;make -j $BUILDTHREADS || ALL_BINARY_ADDONS_BUILT="0" + fi +done +if [ "$ALL_BINARY_ADDONS_BUILT" == "1" ] +then + tagSuccessFulBuild $WORKSPACE/project/cmake +else + #make jenkins fail + exit 1 +fi diff --git a/tools/buildsteps/atv2/make-native-depends b/tools/buildsteps/atv2/make-native-depends new file mode 100755 index 0000000000..416c14f3cb --- /dev/null +++ b/tools/buildsteps/atv2/make-native-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 + git clean -xffd $WORKSPACE/tools/depends/native + cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends +fi
\ No newline at end of file diff --git a/tools/buildsteps/atv2/make-xbmc b/tools/buildsteps/atv2/make-xbmc index 2368622cc3..4f03e615c1 100755 --- a/tools/buildsteps/atv2/make-xbmc +++ b/tools/buildsteps/atv2/make-xbmc @@ -6,3 +6,4 @@ cd $WORKSPACE;make -j$BUILDTHREADS xcode_depends cd $WORKSPACE;xcodebuild -project Kodi.xcodeproj -target Kodi-ATV2 -configuration $Configuration build \ ONLY_ACTIVE_ARCH=YES ARCHS=armv7 VALID_ARCHS=armv7 \ SDKROOT=iphoneos$SDK_VERSION XBMC_DEPENDS_ROOT=$XBMC_DEPENDS_ROOT CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO + diff --git a/tools/buildsteps/atv2/prepare-depends b/tools/buildsteps/atv2/prepare-depends index 3224fcf5ad..c390d3bb76 100755 --- a/tools/buildsteps/atv2/prepare-depends +++ b/tools/buildsteps/atv2/prepare-depends @@ -4,12 +4,12 @@ XBMC_PLATFORM_DIR=atv2 #clean without depends for skipping depends build if possible #also skip binary addons (pvr, audioencoder) as long as they are deployed in tree -cd $WORKSPACE;git clean -xfd -e "project/cmake/.last_success_revision" -e "tools/depends" -e "addons/pvr.*" -e "addons/audioencoder.*" +cd $WORKSPACE;git clean -xfd -e "project/cmake/.last_success_revision" -e "tools/depends" ${DEPLOYED_BINARY_ADDONS} -if [ "$(rebuildDepends)" == "1" ] +# if depends path has changed - cleanout everything and do a full rebuild +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then #clean up the rest too cd $WORKSPACE;git clean -xffd cd $WORKSPACE/tools/depends/;./bootstrap fi - diff --git a/tools/buildsteps/atv2/prepare-xbmc b/tools/buildsteps/atv2/prepare-xbmc index c3738f9e7a..b24df067fd 100755 --- a/tools/buildsteps/atv2/prepare-xbmc +++ b/tools/buildsteps/atv2/prepare-xbmc @@ -2,5 +2,6 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=atv2 . $WORKSPACE/tools/buildsteps/defaultenv -#nothing on ios +#build binary addons before building xbmc... +. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons diff --git a/tools/buildsteps/defaultenv b/tools/buildsteps/defaultenv index 6b9f29d583..b6db1b08f7 100644 --- a/tools/buildsteps/defaultenv +++ b/tools/buildsteps/defaultenv @@ -7,6 +7,10 @@ PATH_CHANGE_REV_FILENAME=".last_success_revision" #TARBALLS ENV-VAR is only used by android scripts atm TARBALLS=${TARBALLS:-"/opt/xbmc-tarballs"} +BINARY_ADDONS_ROOT=tools/depends/target +BINARY_ADDONS="xbmc-audioencoder-addons xbmc-pvr-addons" +DEPLOYED_BINARY_ADDONS="-e addons" + #set platform defaults #$XBMC_PLATFORM_DIR matches the platform subdirs! case $XBMC_PLATFORM_DIR in @@ -76,6 +80,7 @@ fi #helper functions #hash a dir based on the git revision, SDK_PATH, NDK_PATH, NDK_VERSION, SDK_VERSION, TOOLCHAIN TOOLCHAIN_X86 (for droidx86) and XBMC_DEPENDS_ROOT +#param1 path to be hashed function getBuildHash () { local checkPath @@ -86,6 +91,7 @@ function getBuildHash () echo $hashStr } +#param1 path to be checked for changes function pathChanged () { local ret @@ -112,26 +118,14 @@ function pathChanged () echo $ret } -function rebuildDepends () -{ - local ret - ret="0" - # check if depends need to be rebuilt - this is done by checking last - # successfull build revision of depends and cmake dir - if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] || [ "$(pathChanged $WORKSPACE/project/cmake)" == "1" ] - then - ret="1" - fi - - echo $ret -} - -function tagSuccessFulDependsBuild () +#param1 path to be tagged with hash +function tagSuccessFulBuild () { - # tag last successful build of depends by marking the revisions of depends and cmake dir - # needs to match the checks in function rebuildDepends - echo "$(getBuildHash $WORKSPACE/tools/depends)" > $WORKSPACE/tools/depends/$PATH_CHANGE_REV_FILENAME - echo "$(getBuildHash $WORKSPACE/project/cmake)" > $WORKSPACE/project/cmake/$PATH_CHANGE_REV_FILENAME + local pathToTag + pathToTag="$1" + # tag last successful build with revisions of the given dir + # needs to match the checks in function getBuildHash + echo "$(getBuildHash $pathToTag)" > $pathToTag/$PATH_CHANGE_REV_FILENAME } function getBranchName () diff --git a/tools/buildsteps/ios/configure-depends b/tools/buildsteps/ios/configure-depends index 998f80a354..d09f0cb269 100755 --- a/tools/buildsteps/ios/configure-depends +++ b/tools/buildsteps/ios/configure-depends @@ -2,7 +2,7 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=ios . $WORKSPACE/tools/buildsteps/defaultenv -if [ "$(rebuildDepends)" == "1" ] +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then cd $WORKSPACE/tools/depends;./configure \ --with-tarballs=/Users/Shared/xbmc-depends/tarballs \ diff --git a/tools/buildsteps/ios/make-binary-addons b/tools/buildsteps/ios/make-binary-addons new file mode 100755 index 0000000000..b811b6d311 --- /dev/null +++ b/tools/buildsteps/ios/make-binary-addons @@ -0,0 +1,24 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=ios +. $WORKSPACE/tools/buildsteps/defaultenv + +. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-native-depends + +for addon in $BINARY_ADDONS +do + ALL_BINARY_ADDONS_BUILT="1" + #only build binary addons if something in the addons metadata changed + if [ "$(pathChanged $WORKSPACE/project/cmake)" == "1" ] + then + echo "building $addon" + git clean -xffd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon + cd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon;make -j $BUILDTHREADS || ALL_BINARY_ADDONS_BUILT="0" + fi +done +if [ "$ALL_BINARY_ADDONS_BUILT" == "1" ] +then + tagSuccessFulBuild $WORKSPACE/project/cmake +else + #make jenkins fail + exit 1 +fi diff --git a/tools/buildsteps/ios/make-depends b/tools/buildsteps/ios/make-depends index ce3bdf6bc3..eb36ee2a16 100755 --- a/tools/buildsteps/ios/make-depends +++ b/tools/buildsteps/ios/make-depends @@ -2,8 +2,8 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=ios . $WORKSPACE/tools/buildsteps/defaultenv -if [ "$(rebuildDepends)" == "1" ] +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then - cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS && tagSuccessFulDependsBuild + cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends fi diff --git a/tools/buildsteps/ios/make-native-depends b/tools/buildsteps/ios/make-native-depends new file mode 100755 index 0000000000..36ebea8bb3 --- /dev/null +++ b/tools/buildsteps/ios/make-native-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 + git clean -xffd $WORKSPACE/tools/depends/native + cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends +fi
\ No newline at end of file diff --git a/tools/buildsteps/ios/prepare-depends b/tools/buildsteps/ios/prepare-depends index ff83e1213d..01aa9ed766 100755 --- a/tools/buildsteps/ios/prepare-depends +++ b/tools/buildsteps/ios/prepare-depends @@ -4,9 +4,10 @@ XBMC_PLATFORM_DIR=ios #clean without depends for skipping depends build if possible #also skip binary addons (pvr, audioencoder) as long as they are deployed in tree -cd $WORKSPACE;git clean -xfd -e "project/cmake/.last_success_revision" -e "tools/depends" -e "addons/pvr.*" -e "addons/audioencoder.*" +cd $WORKSPACE;git clean -xfd -e "project/cmake/.last_success_revision" -e "tools/depends" ${DEPLOYED_BINARY_ADDONS} -if [ "$(rebuildDepends)" == "1" ] +# if depends path has changed - cleanout everything and do a full rebuild +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then #clean up the rest too cd $WORKSPACE;git clean -xffd diff --git a/tools/buildsteps/ios/prepare-xbmc b/tools/buildsteps/ios/prepare-xbmc index 1b93c2bdb7..9497ceab6b 100755 --- a/tools/buildsteps/ios/prepare-xbmc +++ b/tools/buildsteps/ios/prepare-xbmc @@ -9,3 +9,6 @@ then rm -r $WORKSPACE/addons/skin.re-touched fi git submodule update --init $WORKSPACE/addons/skin.re-touched + +#build binary addons before building xbmc... +. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons diff --git a/tools/buildsteps/linux32/configure-depends b/tools/buildsteps/linux32/configure-depends index 9382b9514e..4e143d6992 100755 --- a/tools/buildsteps/linux32/configure-depends +++ b/tools/buildsteps/linux32/configure-depends @@ -2,7 +2,7 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=linux32 . $WORKSPACE/tools/buildsteps/defaultenv -if [ "$(rebuildDepends)" == "1" ] +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then cd $WORKSPACE/tools/depends;./configure \ --with-toolchain=/usr --prefix=$XBMC_DEPENDS_ROOT --host=i686-linux-gnu --with-tarballs=$TARBALLS diff --git a/tools/buildsteps/linux32/configure-xbmc b/tools/buildsteps/linux32/configure-xbmc index 5e532760bf..de0247a9cf 100755 --- a/tools/buildsteps/linux32/configure-xbmc +++ b/tools/buildsteps/linux32/configure-xbmc @@ -2,4 +2,4 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=linux32 . $WORKSPACE/tools/buildsteps/defaultenv -cd $WORKSPACE/;./configure +make -C $WORKSPACE/tools/depends/target/xbmc diff --git a/tools/buildsteps/linux32/make-binary-addons b/tools/buildsteps/linux32/make-binary-addons new file mode 100755 index 0000000000..f45ca3f9d3 --- /dev/null +++ b/tools/buildsteps/linux32/make-binary-addons @@ -0,0 +1,24 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=linux32 +. $WORKSPACE/tools/buildsteps/defaultenv + +. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-native-depends + +for addon in $BINARY_ADDONS +do + ALL_BINARY_ADDONS_BUILT="1" + #only build binary addons if something in the addons metadata changed + if [ "$(pathChanged $WORKSPACE/project/cmake)" == "1" ] + then + echo "building $addon" + git clean -xffd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon + cd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon;make -j $BUILDTHREADS || ALL_BINARY_ADDONS_BUILT="0" + fi +done +if [ "$ALL_BINARY_ADDONS_BUILT" == "1" ] +then + tagSuccessFulBuild $WORKSPACE/project/cmake +else + #make jenkins fail + exit 1 +fi diff --git a/tools/buildsteps/linux32/make-depends b/tools/buildsteps/linux32/make-depends index b7f1320260..d5371e837d 100755 --- a/tools/buildsteps/linux32/make-depends +++ b/tools/buildsteps/linux32/make-depends @@ -2,8 +2,8 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=linux32 . $WORKSPACE/tools/buildsteps/defaultenv -if [ "$(rebuildDepends)" == "1" ] +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then - cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS && tagSuccessFulDependsBuild + cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS || make && tagSuccessFulBuild $WORKSPACE/tools/depends fi diff --git a/tools/buildsteps/linux32/make-native-depends b/tools/buildsteps/linux32/make-native-depends new file mode 100755 index 0000000000..1f21d53375 --- /dev/null +++ b/tools/buildsteps/linux32/make-native-depends @@ -0,0 +1,9 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=linux32 +. $WORKSPACE/tools/buildsteps/defaultenv + +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] +then + git clean -xffd $WORKSPACE/tools/depends/native + cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends +fi
\ No newline at end of file diff --git a/tools/buildsteps/linux32/make-xbmc b/tools/buildsteps/linux32/make-xbmc index a2bc0a7afc..79f07e2dc4 100755 --- a/tools/buildsteps/linux32/make-xbmc +++ b/tools/buildsteps/linux32/make-xbmc @@ -2,4 +2,4 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=linux32 . $WORKSPACE/tools/buildsteps/defaultenv -cd $WORKSPACE;make -j$BUILDTHREADS +cd $WORKSPACE;make -j$BUILDTHREADS || make diff --git a/tools/buildsteps/linux32/package b/tools/buildsteps/linux32/package index 45dc4c34cf..b073061176 100755 --- a/tools/buildsteps/linux32/package +++ b/tools/buildsteps/linux32/package @@ -3,8 +3,3 @@ XBMC_PLATFORM_DIR=linux32 . $WORKSPACE/tools/buildsteps/defaultenv #nothing for linux atm - -#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/linux32/prepare-depends b/tools/buildsteps/linux32/prepare-depends index 13df413142..525d78b325 100755 --- a/tools/buildsteps/linux32/prepare-depends +++ b/tools/buildsteps/linux32/prepare-depends @@ -3,9 +3,11 @@ XBMC_PLATFORM_DIR=linux32 . $WORKSPACE/tools/buildsteps/defaultenv #clean without depends for skipping depends build if possible -cd $WORKSPACE;git clean -xfd -e "project/cmake/.last_success_revision" -e "tools/depends" +#also skip binary addons (pvr, audioencoder) as long as they are deployed in tree +cd $WORKSPACE;git clean -xfd -e "project/cmake/.last_success_revision" -e "tools/depends" ${DEPLOYED_BINARY_ADDONS} -if [ "$(rebuildDepends)" == "1" ] +# if depends path has changed - cleanout everything and do a full rebuild +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then #clean up the rest too cd $WORKSPACE;git clean -xffd diff --git a/tools/buildsteps/linux32/prepare-xbmc b/tools/buildsteps/linux32/prepare-xbmc index ca3a3d2774..0fbd21ee35 100755 --- a/tools/buildsteps/linux32/prepare-xbmc +++ b/tools/buildsteps/linux32/prepare-xbmc @@ -2,4 +2,5 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=linux32 . $WORKSPACE/tools/buildsteps/defaultenv -#nothing on linux +#build binary addons before building xbmc... +. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons diff --git a/tools/buildsteps/linux64/configure-depends b/tools/buildsteps/linux64/configure-depends index 80e990b427..44edac1431 100755 --- a/tools/buildsteps/linux64/configure-depends +++ b/tools/buildsteps/linux64/configure-depends @@ -2,7 +2,7 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=linux64 . $WORKSPACE/tools/buildsteps/defaultenv -if [ "$(rebuildDepends)" == "1" ] +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then cd $WORKSPACE/tools/depends;./configure \ --with-toolchain=/usr --prefix=$XBMC_DEPENDS_ROOT --host=x86_64-linux-gnu --with-tarballs=$TARBALLS diff --git a/tools/buildsteps/linux64/make-binary-addons b/tools/buildsteps/linux64/make-binary-addons new file mode 100755 index 0000000000..7f1cc6d14e --- /dev/null +++ b/tools/buildsteps/linux64/make-binary-addons @@ -0,0 +1,24 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=linux64 +. $WORKSPACE/tools/buildsteps/defaultenv + +. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-native-depends + +for addon in $BINARY_ADDONS +do + ALL_BINARY_ADDONS_BUILT="1" + #only build binary addons if something in the addons metadata changed + if [ "$(pathChanged $WORKSPACE/project/cmake)" == "1" ] + then + echo "building $addon" + git clean -xffd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon + cd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon;make -j $BUILDTHREADS || ALL_BINARY_ADDONS_BUILT="0" + fi +done +if [ "$ALL_BINARY_ADDONS_BUILT" == "1" ] +then + tagSuccessFulBuild $WORKSPACE/project/cmake +else + #make jenkins fail + exit 1 +fi diff --git a/tools/buildsteps/linux64/make-depends b/tools/buildsteps/linux64/make-depends index ef58af723f..1730a618c7 100755 --- a/tools/buildsteps/linux64/make-depends +++ b/tools/buildsteps/linux64/make-depends @@ -2,8 +2,8 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=linux64 . $WORKSPACE/tools/buildsteps/defaultenv -if [ "$(rebuildDepends)" == "1" ] +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then - cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS || make && tagSuccessFulDependsBuild + cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS || make && tagSuccessFulBuild $WORKSPACE/tools/depends fi diff --git a/tools/buildsteps/linux64/make-native-depends b/tools/buildsteps/linux64/make-native-depends new file mode 100755 index 0000000000..c05850f7f3 --- /dev/null +++ b/tools/buildsteps/linux64/make-native-depends @@ -0,0 +1,9 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=linux64 +. $WORKSPACE/tools/buildsteps/defaultenv + +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] +then + git clean -xffd $WORKSPACE/tools/depends/native + cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends +fi
\ No newline at end of file diff --git a/tools/buildsteps/linux64/prepare-depends b/tools/buildsteps/linux64/prepare-depends index 31fde7a0f5..ae0a027a06 100755 --- a/tools/buildsteps/linux64/prepare-depends +++ b/tools/buildsteps/linux64/prepare-depends @@ -3,9 +3,11 @@ XBMC_PLATFORM_DIR=linux64 . $WORKSPACE/tools/buildsteps/defaultenv #clean without depends for skipping depends build if possible -cd $WORKSPACE;git clean -xfd -e "project/cmake/.last_success_revision" -e "tools/depends" +#also skip binary addons (pvr, audioencoder) as long as they are deployed in tree +cd $WORKSPACE;git clean -xfd -e "project/cmake/.last_success_revision" -e "tools/depends" ${DEPLOYED_BINARY_ADDONS} -if [ "$(rebuildDepends)" == "1" ] +# if depends path has changed - cleanout everything and do a full rebuild +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then #clean up the rest too cd $WORKSPACE;git clean -xffd diff --git a/tools/buildsteps/linux64/prepare-xbmc b/tools/buildsteps/linux64/prepare-xbmc index f71fcf6fef..6d6db0fcb2 100755 --- a/tools/buildsteps/linux64/prepare-xbmc +++ b/tools/buildsteps/linux64/prepare-xbmc @@ -2,4 +2,5 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=linux64 . $WORKSPACE/tools/buildsteps/defaultenv -#nothing on linux +#build binary addons before building xbmc... +. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons diff --git a/tools/buildsteps/osx32/configure-depends b/tools/buildsteps/osx32/configure-depends index b475a1db8a..3ccfc3553c 100755 --- a/tools/buildsteps/osx32/configure-depends +++ b/tools/buildsteps/osx32/configure-depends @@ -2,7 +2,7 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=osx32 . $WORKSPACE/tools/buildsteps/defaultenv -if [ "$(rebuildDepends)" == "1" ] +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then cd $WORKSPACE/tools/depends;./configure \ --with-tarballs=/Users/Shared/xbmc-depends/tarballs \ diff --git a/tools/buildsteps/osx32/make-binary-addons b/tools/buildsteps/osx32/make-binary-addons new file mode 100755 index 0000000000..2db0850b57 --- /dev/null +++ b/tools/buildsteps/osx32/make-binary-addons @@ -0,0 +1,24 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=osx32 +. $WORKSPACE/tools/buildsteps/defaultenv + +. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-native-depends + +for addon in $BINARY_ADDONS +do + ALL_BINARY_ADDONS_BUILT="1" + #only build binary addons if something in the addons metadata changed + if [ "$(pathChanged $WORKSPACE/project/cmake)" == "1" ] + then + echo "building $addon" + git clean -xffd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon + cd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon;make -j $BUILDTHREADS || ALL_BINARY_ADDONS_BUILT="0" + fi +done +if [ "$ALL_BINARY_ADDONS_BUILT" == "1" ] +then + tagSuccessFulBuild $WORKSPACE/project/cmake +else + #make jenkins fail + exit 1 +fi diff --git a/tools/buildsteps/osx32/make-depends b/tools/buildsteps/osx32/make-depends index ecddc6dcde..ac149d74c3 100755 --- a/tools/buildsteps/osx32/make-depends +++ b/tools/buildsteps/osx32/make-depends @@ -2,8 +2,8 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=osx32 . $WORKSPACE/tools/buildsteps/defaultenv -if [ "$(rebuildDepends)" == "1" ] +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then - cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS && tagSuccessFulDependsBuild + cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends fi diff --git a/tools/buildsteps/osx32/make-native-depends b/tools/buildsteps/osx32/make-native-depends new file mode 100755 index 0000000000..6bdbc6665e --- /dev/null +++ b/tools/buildsteps/osx32/make-native-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 + git clean -xffd $WORKSPACE/tools/depends/native + cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends +fi
\ No newline at end of file diff --git a/tools/buildsteps/osx32/prepare-depends b/tools/buildsteps/osx32/prepare-depends index 2e356226f0..3feb117e4a 100755 --- a/tools/buildsteps/osx32/prepare-depends +++ b/tools/buildsteps/osx32/prepare-depends @@ -4,9 +4,10 @@ XBMC_PLATFORM_DIR=osx32 #clean without depends for skipping depends build if possible #also skip binary addons (pvr, audioencoder) as long as they are deployed in tree -cd $WORKSPACE;git clean -xfd -e "project/cmake/.last_success_revision" -e "tools/depends" -e "addons/pvr.*" -e "addons/audioencoder.*" +cd $WORKSPACE;git clean -xfd -e "project/cmake/.last_success_revision" -e "tools/depends" ${DEPLOYED_BINARY_ADDONS} -if [ "$(rebuildDepends)" == "1" ] +# if depends path has changed - cleanout everything and do a full rebuild +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then #clean up the rest too cd $WORKSPACE;git clean -xffd diff --git a/tools/buildsteps/osx32/prepare-xbmc b/tools/buildsteps/osx32/prepare-xbmc index 01f97dac74..59431ddb17 100755 --- a/tools/buildsteps/osx32/prepare-xbmc +++ b/tools/buildsteps/osx32/prepare-xbmc @@ -2,4 +2,5 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=osx32 . $WORKSPACE/tools/buildsteps/defaultenv -#nothing on osx +#build binary addons before building xbmc... +. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons diff --git a/tools/buildsteps/osx64/configure-depends b/tools/buildsteps/osx64/configure-depends index 840643c33f..62f97700b3 100755 --- a/tools/buildsteps/osx64/configure-depends +++ b/tools/buildsteps/osx64/configure-depends @@ -2,7 +2,7 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=osx64 . $WORKSPACE/tools/buildsteps/defaultenv -if [ "$(rebuildDepends)" == "1" ] +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then cd $WORKSPACE/tools/depends;./configure \ --with-tarballs=/Users/Shared/xbmc-depends/tarballs \ diff --git a/tools/buildsteps/osx64/make-binary-addons b/tools/buildsteps/osx64/make-binary-addons new file mode 100755 index 0000000000..c7fd4b7cf4 --- /dev/null +++ b/tools/buildsteps/osx64/make-binary-addons @@ -0,0 +1,24 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=osx64 +. $WORKSPACE/tools/buildsteps/defaultenv + +. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-native-depends + +for addon in $BINARY_ADDONS +do + ALL_BINARY_ADDONS_BUILT="1" + #only build binary addons if something in the addons metadata changed + if [ "$(pathChanged $WORKSPACE/project/cmake)" == "1" ] + then + echo "building $addon" + git clean -xffd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon + cd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon;make -j $BUILDTHREADS || ALL_BINARY_ADDONS_BUILT="0" + fi +done +if [ "$ALL_BINARY_ADDONS_BUILT" == "1" ] +then + tagSuccessFulBuild $WORKSPACE/project/cmake +else + #make jenkins fail + exit 1 +fi diff --git a/tools/buildsteps/osx64/make-depends b/tools/buildsteps/osx64/make-depends index 6749356afc..5a325e16e9 100755 --- a/tools/buildsteps/osx64/make-depends +++ b/tools/buildsteps/osx64/make-depends @@ -2,8 +2,8 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=osx64 . $WORKSPACE/tools/buildsteps/defaultenv -if [ "$(rebuildDepends)" == "1" ] +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then - cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS && tagSuccessFulDependsBuild + cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends fi diff --git a/tools/buildsteps/osx64/make-native-depends b/tools/buildsteps/osx64/make-native-depends new file mode 100755 index 0000000000..d74c80ee26 --- /dev/null +++ b/tools/buildsteps/osx64/make-native-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 + git clean -xffd $WORKSPACE/tools/depends/native + cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends +fi
\ No newline at end of file diff --git a/tools/buildsteps/osx64/prepare-depends b/tools/buildsteps/osx64/prepare-depends index 03b10ea823..60df95379d 100755 --- a/tools/buildsteps/osx64/prepare-depends +++ b/tools/buildsteps/osx64/prepare-depends @@ -4,9 +4,10 @@ XBMC_PLATFORM_DIR=osx64 #clean without depends for skipping depends build if possible #also skip binary addons (pvr, audioencoder) as long as they are deployed in tree -cd $WORKSPACE;git clean -xfd -e "project/cmake/.last_success_revision" -e "tools/depends" -e "addons/pvr.*" -e "addons/audioencoder.*" +cd $WORKSPACE;git clean -xfd -e "project/cmake/.last_success_revision" -e "tools/depends" ${DEPLOYED_BINARY_ADDONS} -if [ "$(rebuildDepends)" == "1" ] +# if depends path has changed - cleanout everything and do a full rebuild +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then #clean up the rest too cd $WORKSPACE;git clean -xffd diff --git a/tools/buildsteps/osx64/prepare-xbmc b/tools/buildsteps/osx64/prepare-xbmc index 6eea638e97..2c30e4924c 100755 --- a/tools/buildsteps/osx64/prepare-xbmc +++ b/tools/buildsteps/osx64/prepare-xbmc @@ -2,4 +2,5 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=osx64 . $WORKSPACE/tools/buildsteps/defaultenv -#nothing on osx +#build binary addons before building xbmc... +. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons diff --git a/tools/buildsteps/rbpi/configure-depends b/tools/buildsteps/rbpi/configure-depends index 96c75e1f9e..556469f359 100755 --- a/tools/buildsteps/rbpi/configure-depends +++ b/tools/buildsteps/rbpi/configure-depends @@ -2,7 +2,7 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=rbpi . $WORKSPACE/tools/buildsteps/defaultenv -if [ "$(rebuildDepends)" == "1" ] +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then cd $WORKSPACE/tools/depends; diff --git a/tools/buildsteps/rbpi/make-binary-addons b/tools/buildsteps/rbpi/make-binary-addons new file mode 100755 index 0000000000..0e42bda5e4 --- /dev/null +++ b/tools/buildsteps/rbpi/make-binary-addons @@ -0,0 +1,24 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=rbpi +. $WORKSPACE/tools/buildsteps/defaultenv + +. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-native-depends + +for addon in $BINARY_ADDONS +do + ALL_BINARY_ADDONS_BUILT="1" + #only build binary addons if something in the addons metadata changed + if [ "$(pathChanged $WORKSPACE/project/cmake)" == "1" ] + then + echo "building $addon" + git clean -xffd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon + cd $WORKSPACE/$BINARY_ADDONS_ROOT/$addon;make -j $BUILDTHREADS || ALL_BINARY_ADDONS_BUILT="0" + fi +done +if [ "$ALL_BINARY_ADDONS_BUILT" == "1" ] +then + tagSuccessFulBuild $WORKSPACE/project/cmake +else + #make jenkins fail + exit 1 +fi diff --git a/tools/buildsteps/rbpi/make-depends b/tools/buildsteps/rbpi/make-depends index 4eb47575b7..ceeee09234 100755 --- a/tools/buildsteps/rbpi/make-depends +++ b/tools/buildsteps/rbpi/make-depends @@ -2,8 +2,8 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=rbpi . $WORKSPACE/tools/buildsteps/defaultenv -if [ "$(rebuildDepends)" == "1" ] +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then - cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS || make && tagSuccessFulDependsBuild + cd $WORKSPACE/tools/depends;make -j $BUILDTHREADS || make && tagSuccessFulBuild $WORKSPACE/tools/depends fi diff --git a/tools/buildsteps/rbpi/make-native-depends b/tools/buildsteps/rbpi/make-native-depends new file mode 100755 index 0000000000..5f6d64c452 --- /dev/null +++ b/tools/buildsteps/rbpi/make-native-depends @@ -0,0 +1,9 @@ +WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} +XBMC_PLATFORM_DIR=rbpi +. $WORKSPACE/tools/buildsteps/defaultenv + +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] +then + git clean -xffd $WORKSPACE/tools/depends/native + cd $WORKSPACE/tools/depends/native;make -j $BUILDTHREADS && tagSuccessFulBuild $WORKSPACE/tools/depends +fi
\ No newline at end of file diff --git a/tools/buildsteps/rbpi/prepare-depends b/tools/buildsteps/rbpi/prepare-depends index c084909dfa..8205432d65 100755 --- a/tools/buildsteps/rbpi/prepare-depends +++ b/tools/buildsteps/rbpi/prepare-depends @@ -3,7 +3,8 @@ XBMC_PLATFORM_DIR=rbpi . $WORKSPACE/tools/buildsteps/defaultenv #clean without depends for skipping depends build if possible -cd $WORKSPACE;git clean -xfd -e "project/cmake/.last_success_revision" -e "tools/depends" +#also skip binary addons (pvr, audioencoder) as long as they are deployed in tree +cd $WORKSPACE;git clean -xfd -e "project/cmake/.last_success_revision" -e "tools/depends" ${DEPLOYED_BINARY_ADDONS} if [ -d $JENKINS_RBPI_DEVENV/firmware ] then @@ -12,7 +13,10 @@ else cd $JENKINS_RBPI_DEVENV;git clone git://github.com/raspberrypi/firmware.git --depth=1 -b master fi -if [ "$(rebuildDepends)" == "1" ] +cd $WORKSPACE + +# if depends path has changed - cleanout everything and do a full rebuild +if [ "$(pathChanged $WORKSPACE/tools/depends)" == "1" ] then #clean up the rest too cd $WORKSPACE;git clean -xffd diff --git a/tools/buildsteps/rbpi/prepare-xbmc b/tools/buildsteps/rbpi/prepare-xbmc index c47ee7dd9d..468c7ed5cb 100755 --- a/tools/buildsteps/rbpi/prepare-xbmc +++ b/tools/buildsteps/rbpi/prepare-xbmc @@ -4,3 +4,6 @@ XBMC_PLATFORM_DIR=rbpi cd $WORKSPACE JSON_BUILDER=$XBMC_DEPENDS_ROOT/i686-linux-gnu-native/bin/JsonSchemaBuilder ./bootstrap + +#build binary addons before building xbmc... +. $WORKSPACE/tools/buildsteps/$XBMC_PLATFORM_DIR/make-binary-addons |