diff options
author | fuzzard <bmurphy@bcmcs.net> | 2019-06-28 14:39:15 +1000 |
---|---|---|
committer | fuzzard <bmurphy@bcmcs.net> | 2019-10-03 13:33:12 +1000 |
commit | 1cf5d5e47f33baba6e6344a0c9f39a3689d18cc4 (patch) | |
tree | 22a7e1404caf7f6f22eff7fcf13d83b12f8cf0ca /tools | |
parent | 66aa582de978d50f74f31fe99ba6ca1e0fdd678d (diff) |
[cmakebuildsys\ios] generator option (GEN) + docs
Xcode is now the only supported cmake generator for ios. make build no longer available
for ios, removed from docs
updated jenkins buildsteps for ios to use xcodebuild
macos/tvos docs for cmakebuildsys updated for use with xcodebuild
Cleanup of cmake and darwin/support scripts to use existing default variables from xcode
project instead of defining additional.
Diffstat (limited to 'tools')
-rwxr-xr-x | tools/buildsteps/ios/make-xbmc | 2 | ||||
-rwxr-xr-x | tools/buildsteps/ios/package | 2 | ||||
-rwxr-xr-x | tools/darwin/Support/Codesign.command | 10 | ||||
-rwxr-xr-x | tools/darwin/Support/CopyRootFiles-darwin_embedded.command | 55 | ||||
-rwxr-xr-x | tools/darwin/Support/copyframeworks-darwin_embedded.command | 21 | ||||
-rw-r--r-- | tools/depends/target/cmakebuildsys/Makefile | 10 |
6 files changed, 51 insertions, 49 deletions
diff --git a/tools/buildsteps/ios/make-xbmc b/tools/buildsteps/ios/make-xbmc index b70e3eee91..752cb23257 100755 --- a/tools/buildsteps/ios/make-xbmc +++ b/tools/buildsteps/ios/make-xbmc @@ -2,4 +2,4 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=ios . $WORKSPACE/tools/buildsteps/defaultenv -cd $WORKSPACE/build;make -j$BUILDTHREADS || make +cd $WORKSPACE/build;xcodebuild -configuration $Configuration build -jobs $BUILDTHREADS diff --git a/tools/buildsteps/ios/package b/tools/buildsteps/ios/package index 81f9030677..4f549fe974 100755 --- a/tools/buildsteps/ios/package +++ b/tools/buildsteps/ios/package @@ -2,7 +2,7 @@ WORKSPACE=${WORKSPACE:-$( cd $(dirname $0)/../../.. ; pwd -P )} XBMC_PLATFORM_DIR=ios . $WORKSPACE/tools/buildsteps/defaultenv -cd $WORKSPACE/build;make -j$BUILDTHREADS deb +cd $WORKSPACE/build;xcodebuild -target deb -jobs $BUILDTHREADS cd $WORKSPACE/build/tools/darwin/packaging/darwin_embedded/ #rename for upload diff --git a/tools/darwin/Support/Codesign.command b/tools/darwin/Support/Codesign.command index 1265000f8e..6d2b5f474a 100755 --- a/tools/darwin/Support/Codesign.command +++ b/tools/darwin/Support/Codesign.command @@ -33,9 +33,9 @@ if [ "${PLATFORM_NAME}" == "iphoneos" ] || [ "${PLATFORM_NAME}" == "appletvos" ] #do fake sign - needed for jailbroken ios5.1 devices for some reason if [ -f ${LDID} ]; then - find ${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/ -name "*.dylib" | xargs ${LDID} -S${IOS11_ENTITLEMENTS} - find ${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/ -name "*.so" | xargs ${LDID} -S${IOS11_ENTITLEMENTS} - ${LDID} -S${IOS11_ENTITLEMENTS} ${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${APP_NAME} + find ${BUILT_PRODUCTS_DIR}/${EXECUTABLE_FOLDER_PATH}/ -name "*.dylib" | xargs ${LDID} -S${IOS11_ENTITLEMENTS} + find ${BUILT_PRODUCTS_DIR}/${EXECUTABLE_FOLDER_PATH}/ -name "*.so" | xargs ${LDID} -S${IOS11_ENTITLEMENTS} + ${LDID} -S${IOS11_ENTITLEMENTS} ${BUILT_PRODUCTS_DIR}/${EXECUTABLE_FOLDER_PATH}/${EXECUTABLE_NAME} #repackage python eggs EGGS=`find ${CODESIGNING_FOLDER_PATH} -name "*.egg" -type f` @@ -67,8 +67,8 @@ if [ "${PLATFORM_NAME}" == "iphoneos" ] || [ "${PLATFORM_NAME}" == "appletvos" ] fi echo "${CODE_SIGN_IDENTITY_FOR_ITEMS}" - ${GEN_ENTITLEMENTS} "${BUNDLEID}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent"; - codesign -v -f -s "${CODE_SIGN_IDENTITY_FOR_ITEMS}" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/" + ${GEN_ENTITLEMENTS} "${BUNDLEID}" "${BUILT_PRODUCTS_DIR}/${EXECUTABLE_FOLDER_PATH}/${EXECUTABLE_NAME}.xcent"; + codesign -v -f -s "${CODE_SIGN_IDENTITY_FOR_ITEMS}" --entitlements "${BUILT_PRODUCTS_DIR}/${EXECUTABLE_FOLDER_PATH}/${EXECUTABLE_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${EXECUTABLE_FOLDER_PATH}/" #if user has set a code_sign_identity different from iPhone Developer we do a real codesign (for deployment on non-jailbroken devices) if ! [ -z "${CODE_SIGN_IDENTITY}" ] && [ "${CODE_SIGN_IDENTITY}" == "iPhone Developer" ] && [ "${CODE_SIGN_IDENTITY}" != "Don't Code Sign" ]; then diff --git a/tools/darwin/Support/CopyRootFiles-darwin_embedded.command b/tools/darwin/Support/CopyRootFiles-darwin_embedded.command index 9bca3a8017..dea36f7021 100755 --- a/tools/darwin/Support/CopyRootFiles-darwin_embedded.command +++ b/tools/darwin/Support/CopyRootFiles-darwin_embedded.command @@ -6,11 +6,6 @@ echo "copy root files" if [ "$ACTION" = build ] ; then -# for external testing -TARGET_NAME=$PRODUCT_NAME.$WRAPPER_EXTENSION -#SRCROOT=/Users/Shared/xbmc_svn/$APP_NAME -#TARGET_BUILD_DIR=/Users/Shared/xbmc_svn/$APP_NAME/build/Debug - # rsync command with exclusions for items we don't want in the app package SYNC="rsync -aq --exclude .git* --exclude .DS_Store* --exclude *.dll --exclude *.DLL --exclude *linux.* --exclude *x86-osx.so --exclude *.zlib --exclude *.a" @@ -22,41 +17,41 @@ SKINSYNC="rsync -aq --exclude .git* --exclude CVS* --exclude .svn* --exclude .cv ADDONSYNC="rsync -aq --no-links --exclude .git* --exclude CVS* --exclude .svn* --exclude .cvsignore* --exclude .cvspass* --exclude .DS_Store* --exclude addons/skin.estuary --exclude addons/skin.estouchy" # binary name is Kodi but we build Kodi.bin so to get a clean binary each time -mv $TARGET_BUILD_DIR/$TARGET_NAME/$APP_NAME.bin $TARGET_BUILD_DIR/$TARGET_NAME/$APP_NAME - -mkdir -p "$TARGET_BUILD_DIR/$TARGET_NAME/AppData/AppHome" -mkdir -p "$TARGET_BUILD_DIR/$TARGET_NAME/AppData/AppHome/addons" -mkdir -p "$TARGET_BUILD_DIR/$TARGET_NAME/AppData/AppHome/media" -mkdir -p "$TARGET_BUILD_DIR/$TARGET_NAME/AppData/AppHome/system" -mkdir -p "$TARGET_BUILD_DIR/$TARGET_NAME/AppData/AppHome/userdata" -mkdir -p "$TARGET_BUILD_DIR/$TARGET_NAME/AppData/AppHome/media" -mkdir -p "$TARGET_BUILD_DIR/$TARGET_NAME/AppData/AppHome/tools/darwin/runtime" - -${SYNC} "$SRCROOT/LICENSE.md" "$TARGET_BUILD_DIR/$TARGET_NAME/AppData/" -${SYNC} "$SRCROOT/privacy-policy.txt" "$TARGET_BUILD_DIR/$TARGET_NAME/AppData/AppHome" -${SYNC} "$SRCROOT/xbmc/platform/darwin/Credits.html" "$TARGET_BUILD_DIR/$TARGET_NAME/AppData/" -${ADDONSYNC} "$SRCROOT/addons" "$TARGET_BUILD_DIR/$TARGET_NAME/AppData/AppHome" -${SYNC} "$SRCROOT/media" "$TARGET_BUILD_DIR/$TARGET_NAME/AppData/AppHome" +mv $TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/$EXECUTABLE_NAME.bin $TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/$EXECUTABLE_NAME + +mkdir -p "$TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/AppData/AppHome" +mkdir -p "$TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/AppData/AppHome/addons" +mkdir -p "$TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/AppData/AppHome/media" +mkdir -p "$TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/AppData/AppHome/system" +mkdir -p "$TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/AppData/AppHome/userdata" +mkdir -p "$TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/AppData/AppHome/media" +mkdir -p "$TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/AppData/AppHome/tools/darwin/runtime" + +${SYNC} "$BUILD_ROOT/LICENSE.md" "$TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/AppData/" +${SYNC} "$BUILD_ROOT/privacy-policy.txt" "$TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/AppData/AppHome" +${SYNC} "$BUILD_ROOT/xbmc/platform/darwin/Credits.html" "$TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/AppData/" +${ADDONSYNC} "$BUILD_ROOT/addons" "$TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/AppData/AppHome" +${SYNC} "$BUILD_ROOT/media" "$TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/AppData/AppHome" # sync skin.estouchy SYNCSKIN_A=${SKINSYNC} -if [ -f "$SRCROOT/addons/skin.estouchy/media/Textures.xbt" ]; then +if [ -f "$BUILD_ROOT/addons/skin.estouchy/media/Textures.xbt" ]; then SYNCSKIN_A="${SKINSYNC} --exclude *.png --exclude *.jpg" fi -${SYNCSKIN_A} "$SRCROOT/addons/skin.estouchy" "$TARGET_BUILD_DIR/$TARGET_NAME/AppData/AppHome/addons" -${SYNC} "$SRCROOT/addons/skin.estouchy/background" "$TARGET_BUILD_DIR/$TARGET_NAME/AppData/AppHome/addons/skin.estouchy" -${SYNC} "$SRCROOT/addons/skin.estouchy/resources" "$TARGET_BUILD_DIR/$TARGET_NAME/AppData/AppHome/addons/skin.estouchy" +${SYNCSKIN_A} "$BUILD_ROOT/addons/skin.estouchy" "$TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/AppData/AppHome/addons" +${SYNC} "$BUILD_ROOT/addons/skin.estouchy/background" "$TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/AppData/AppHome/addons/skin.estouchy" +${SYNC} "$BUILD_ROOT/addons/skin.estouchy/resources" "$TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/AppData/AppHome/addons/skin.estouchy" # sync skin.estuary SYNCSKIN_B=${SKINSYNC} -if [ -f "$SRCROOT/addons/skin.estuary/media/Textures.xbt" ]; then +if [ -f "$BUILD_ROOT/addons/skin.estuary/media/Textures.xbt" ]; then SYNCSKIN_B="${SKINSYNC} --exclude *.png --exclude *.jpg" fi -${SYNCSKIN_B} "$SRCROOT/addons/skin.estuary" "$TARGET_BUILD_DIR/$TARGET_NAME/AppData/AppHome/addons" -${SYNC} "$SRCROOT/addons/skin.estuary/extras" "$TARGET_BUILD_DIR/$TARGET_NAME/AppData/AppHome/addons/skin.estuary" -${SYNC} "$SRCROOT/addons/skin.estuary/resources" "$TARGET_BUILD_DIR/$TARGET_NAME/AppData/AppHome/addons/skin.estuary" +${SYNCSKIN_B} "$BUILD_ROOT/addons/skin.estuary" "$TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/AppData/AppHome/addons" +${SYNC} "$BUILD_ROOT/addons/skin.estuary/extras" "$TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/AppData/AppHome/addons/skin.estuary" +${SYNC} "$BUILD_ROOT/addons/skin.estuary/resources" "$TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/AppData/AppHome/addons/skin.estuary" -${SYNC} "$SRCROOT/system" "$TARGET_BUILD_DIR/$TARGET_NAME/AppData/AppHome" -${SYNC} "$SRCROOT/userdata" "$TARGET_BUILD_DIR/$TARGET_NAME/AppData/AppHome" +${SYNC} "$BUILD_ROOT/system" "$TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/AppData/AppHome" +${SYNC} "$BUILD_ROOT/userdata" "$TARGET_BUILD_DIR/$EXECUTABLE_FOLDER_PATH/AppData/AppHome" fi diff --git a/tools/darwin/Support/copyframeworks-darwin_embedded.command b/tools/darwin/Support/copyframeworks-darwin_embedded.command index d52033ebf9..f6b308391f 100755 --- a/tools/darwin/Support/copyframeworks-darwin_embedded.command +++ b/tools/darwin/Support/copyframeworks-darwin_embedded.command @@ -49,24 +49,23 @@ function check_xbmc_dylib_depends EXTERNAL_LIBS=$XBMC_DEPENDS -TARGET_NAME=$PRODUCT_NAME.$WRAPPER_EXTENSION -TARGET_CONTENTS=$TARGET_BUILD_DIR/$TARGET_NAME +TARGET_BINARY=$TARGET_BUILD_DIR/$EXECUTABLE_PATH +TARGET_CONTENTS=$TARGET_BUILD_DIR/$FULL_PRODUCT_NAME +TARGET_FRAMEWORKS=$TARGET_BUILD_DIR/$FRAMEWORKS_FOLDER_PATH -TARGET_BINARY=$TARGET_CONTENTS/$APP_NAME -TARGET_FRAMEWORKS=$TARGET_CONTENTS/Frameworks DYLIB_NAMEPATH=@executable_path/Frameworks XBMC_HOME=$TARGET_CONTENTS/AppData/AppHome mkdir -p "$TARGET_CONTENTS" mkdir -p "$TARGET_CONTENTS/AppData/AppHome" # start clean so we don't keep old dylibs -rm -rf "$TARGET_CONTENTS/Frameworks" -mkdir -p "$TARGET_CONTENTS/Frameworks" +rm -rf "$TARGET_FRAMEWORKS" +mkdir -p "$TARGET_FRAMEWORKS" -echo "Package $TARGET_NAME" +echo "Package $FULL_PRODUCT_NAME" # Copy all of XBMC's dylib dependencies and rename their locations to inside the Framework -echo "Checking $TARGET_NAME for dylib dependencies" +echo "Checking $FULL_PRODUCT_NAME for dylib dependencies" for a in $(otool -L "$TARGET_BINARY" | grep "$EXTERNAL_LIBS\|$DYLIB_NAMEPATH" | awk ' { print $1 } ') ; do echo " Packaging $a" cp -f "$EXTERNAL_LIBS/lib/$(basename $a)" "$TARGET_FRAMEWORKS/" @@ -75,7 +74,7 @@ for a in $(otool -L "$TARGET_BINARY" | grep "$EXTERNAL_LIBS\|$DYLIB_NAMEPATH" | done echo "Package $EXTERNAL_LIBS/lib/python2.7" -mkdir -p "$TARGET_CONTENTS/Frameworks/lib" +mkdir -p "$TARGET_FRAMEWORKS/lib" PYTHONSYNC="rsync -aq --exclude .DS_Store --exclude *.a --exclude *.exe --exclude test --exclude tests" ${PYTHONSYNC} "$EXTERNAL_LIBS/lib/python2.7" "$TARGET_FRAMEWORKS/lib/" rm -rf "$TARGET_FRAMEWORKS/lib/python2.7/config" @@ -90,11 +89,11 @@ echo "Checking addons *.so for dylib dependencies" check_xbmc_dylib_depends "$XBMC_HOME"/addons "*.so" echo "Checking xbmc/DllPaths_generated.h for dylib dependencies" -for a in $(grep .dylib "$SRCROOT"/xbmc/DllPaths_generated.h | awk '{print $3}' | sed s/\"//g) ; do +for a in $(grep .dylib "$BUILD_ROOT"/xbmc/DllPaths_generated.h | awk '{print $3}' | sed s/\"//g) ; do check_dyloaded_depends $a done -echo "Checking $TARGET_NAME/Frameworks for missing dylib dependencies" +echo "Checking $TARGET_FRAMEWORKS for missing dylib dependencies" REWIND="1" while [ $REWIND = "1" ] do diff --git a/tools/depends/target/cmakebuildsys/Makefile b/tools/depends/target/cmakebuildsys/Makefile index 893e21caba..67b3292343 100644 --- a/tools/depends/target/cmakebuildsys/Makefile +++ b/tools/depends/target/cmakebuildsys/Makefile @@ -10,13 +10,21 @@ ifeq ($(Configuration),) endif endif +ifeq ($(OS),darwin_embedded) + CMAKE_BUILD_ARGUMENTS = -G Xcode +else ifeq ($(GEN),Xcode) + CMAKE_BUILD_ARGUMENTS = -G Xcode +else + CMAKE_BUILD_ARGUMENTS = -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=$(Configuration) +endif + ifeq ($(BUILD_DIR),) BUILD_DIR=$(CMAKE_SOURCE_DIR)/build endif all: mkdir -p $(BUILD_DIR) - cd $(BUILD_DIR); $(CMAKE) -DCMAKE_BUILD_TYPE=$(Configuration) -DENABLE_INTERNAL_CROSSGUID=OFF -DENABLE_INTERNAL_FFMPEG=OFF $(CMAKE_EXTRA_ARGUMENTS) $(CMAKE_SOURCE_DIR) + cd $(BUILD_DIR); $(CMAKE) $(CMAKE_BUILD_ARGUMENTS) -DENABLE_INTERNAL_CROSSGUID=OFF -DENABLE_INTERNAL_FFMPEG=OFF $(CMAKE_EXTRA_ARGUMENTS) $(CMAKE_SOURCE_DIR) kodi: $(MAKE) -C $(BUILD_DIR) |