aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfuzzard <bmurphy@bcmcs.net>2019-06-28 14:39:15 +1000
committerfuzzard <bmurphy@bcmcs.net>2019-10-03 13:33:12 +1000
commit1cf5d5e47f33baba6e6344a0c9f39a3689d18cc4 (patch)
tree22a7e1404caf7f6f22eff7fcf13d83b12f8cf0ca
parent66aa582de978d50f74f31fe99ba6ca1e0fdd678d (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.
-rw-r--r--cmake/scripts/darwin_embedded/ArchSetup.cmake3
-rw-r--r--cmake/scripts/darwin_embedded/Install.cmake19
-rw-r--r--cmake/scripts/osx/Macros.cmake2
-rw-r--r--docs/README.iOS.md69
-rw-r--r--docs/README.macOS.md23
-rw-r--r--docs/README.tvOS.md72
-rwxr-xr-xtools/buildsteps/ios/make-xbmc2
-rwxr-xr-xtools/buildsteps/ios/package2
-rwxr-xr-xtools/darwin/Support/Codesign.command10
-rwxr-xr-xtools/darwin/Support/CopyRootFiles-darwin_embedded.command55
-rwxr-xr-xtools/darwin/Support/copyframeworks-darwin_embedded.command21
-rw-r--r--tools/depends/target/cmakebuildsys/Makefile10
12 files changed, 134 insertions, 154 deletions
diff --git a/cmake/scripts/darwin_embedded/ArchSetup.cmake b/cmake/scripts/darwin_embedded/ArchSetup.cmake
index 2e8b056f7a..58f595ca87 100644
--- a/cmake/scripts/darwin_embedded/ArchSetup.cmake
+++ b/cmake/scripts/darwin_embedded/ArchSetup.cmake
@@ -54,9 +54,6 @@ enable_arc()
set(CMAKE_XCODE_ATTRIBUTE_DEAD_CODE_STRIPPING OFF)
# Unify output directories for iOS packaging scripts
-if(NOT CMAKE_GENERATOR MATCHES Xcode)
- set(CORE_BUILD_CONFIG "${CORE_BUILD_CONFIG}-iphoneos")
-endif()
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CORE_BUILD_DIR}/${CORE_BUILD_CONFIG})
foreach(OUTPUTCONFIG ${CMAKE_CONFIGURATION_TYPES})
string(TOUPPER ${OUTPUTCONFIG} OUTPUTCONFIG)
diff --git a/cmake/scripts/darwin_embedded/Install.cmake b/cmake/scripts/darwin_embedded/Install.cmake
index 0e300035bd..a87376bd1e 100644
--- a/cmake/scripts/darwin_embedded/Install.cmake
+++ b/cmake/scripts/darwin_embedded/Install.cmake
@@ -59,30 +59,11 @@ add_custom_command(TARGET ${APP_NAME_LC} POST_BUILD
COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/DllPaths_generated.h
${CMAKE_BINARY_DIR}/xbmc/DllPaths_generated.h
COMMAND "ACTION=build"
- "TARGET_BUILD_DIR=$<TARGET_FILE_DIR:${APP_NAME_LC}>/.."
- "TARGET_NAME=${APP_NAME}.app"
- "APP_NAME=${APP_NAME}"
- "PRODUCT_NAME=${APP_NAME}"
- "WRAPPER_EXTENSION=app"
- "SRCROOT=${CMAKE_BINARY_DIR}"
${CMAKE_SOURCE_DIR}/tools/darwin/Support/CopyRootFiles-darwin_embedded.command
COMMAND "XBMC_DEPENDS=${DEPENDS_PATH}"
- "TARGET_BUILD_DIR=$<TARGET_FILE_DIR:${APP_NAME_LC}>/.."
- "TARGET_NAME=${APP_NAME}.app"
- "APP_NAME=${APP_NAME}"
- "PRODUCT_NAME=${APP_NAME}"
- "FULL_PRODUCT_NAME=${APP_NAME}.app"
- "WRAPPER_EXTENSION=app"
- "SRCROOT=${CMAKE_BINARY_DIR}"
${CMAKE_SOURCE_DIR}/tools/darwin/Support/copyframeworks-darwin_embedded.command
COMMAND "XBMC_DEPENDS=${DEPENDS_PATH}"
"NATIVEPREFIX=${NATIVEPREFIX}"
- "PLATFORM_NAME=${PLATFORM}"
- "CODESIGNING_FOLDER_PATH=$<TARGET_FILE_DIR:${APP_NAME_LC}>"
- "BUILT_PRODUCTS_DIR=$<TARGET_FILE_DIR:${APP_NAME_LC}>/.."
- "WRAPPER_NAME=${APP_NAME}.app"
- "APP_NAME=${APP_NAME}"
- "CURRENT_ARCH=${ARCH}"
${CMAKE_SOURCE_DIR}/tools/darwin/Support/Codesign.command
)
diff --git a/cmake/scripts/osx/Macros.cmake b/cmake/scripts/osx/Macros.cmake
index 5ff88ce0d3..251cc79ff6 100644
--- a/cmake/scripts/osx/Macros.cmake
+++ b/cmake/scripts/osx/Macros.cmake
@@ -20,7 +20,7 @@ function(core_link_library lib wraplib)
# iOS: EFFECTIVE_PLATFORM_NAME is not resolved
# http://public.kitware.com/pipermail/cmake/2016-March/063049.html
- if(CORE_SYSTEM_NAME STREQUAL darwin_embedded AND CMAKE_GENERATOR STREQUAL Xcode)
+ if(CORE_SYSTEM_NAME STREQUAL darwin_embedded)
get_target_property(dir ${lib} BINARY_DIR)
set(link_lib ${dir}/${CORE_BUILD_CONFIG}/${CMAKE_STATIC_LIBRARY_PREFIX}${lib}${CMAKE_STATIC_LIBRARY_SUFFIX})
endif()
diff --git a/docs/README.iOS.md b/docs/README.iOS.md
index 84d584e40f..f6e235d8fa 100644
--- a/docs/README.iOS.md
+++ b/docs/README.iOS.md
@@ -10,9 +10,8 @@ This guide has been tested with macOS 10.13.4()17E199 High Sierra and Xcode 9.3(
4. **[Configure and build tools and dependencies](#4-configure-and-build-tools-and-dependencies)**
5. **[Build binary add-ons](#5-build-binary-add-ons)**
6. **[Build Kodi](#6-build-kodi)**
- 6.1. **[Build with Xcode](#61-build-with-xcode)**
- 6.2. **[Build with xcodebuild](#62-build-with-xcodebuild)**
- 6.3. **[Build with make](#63-build-with-make)**
+ 6.1. **[Generate Project Files](#61-Generate-Project-Files)**
+ 6.2. **[Build with Xcode](#62-build)**
7. **[Package](#7-package)**
8. **[Install](#8-install)**
9. **[Gesture Handling](#9-gesture-handling)**
@@ -140,27 +139,36 @@ make -j$(getconf _NPROCESSORS_ONLN) -C tools/depends/target/binary-addons ADDONS
**[back to top](#table-of-contents)**
## 6. Build Kodi
+
+## 6.1. Generate Project Files
+
Before you can use Xcode to build Kodi, the Xcode project has to be generated with CMake. CMake is built as part of the dependencies and doesn't have to be installed separately. A toolchain file is also generated and is used to configure CMake.
-### 6.1. Build with Xcode
Create an out-of-source build directory:
```
mkdir $HOME/kodi-build
```
-
-Change to build directory:
+Generate Xcode project as per configure command in **[Configure and build tools and dependencies](#4-configure-and-build-tools-and-dependencies)**:
```
-cd $HOME/kodi-build
+make -C tools/depends/target/cmakebuildsys BUILD_DIR=$HOME/kodi-build
```
+**TIP:** BUILD_DIR can be omitted, and project will be created in $HOME/kodi/build
+Change all relevant paths onwards if omitted.
+
+Additional cmake arguments can be supplied via the CMAKE_EXTRA_ARGUMENTS command line variable
+
+Alternatively:
+`
Generate Xcode project for ARM 64bit (**recommended**):
```
-/Users/Shared/xbmc-depends/x86_64-darwin17.5.0-native/bin/cmake -G Xcode -DCMAKE_TOOLCHAIN_FILE=/Users/Shared/xbmc-depends/iphoneos11.3_arm64-target-debug/share/Toolchain.cmake ../kodi
+cd $HOME/kodi-build
+/Users/Shared/xbmc-depends/x86_64-darwin17.5.0-native/bin/cmake -G Xcode -DCMAKE_TOOLCHAIN_FILE=/Users/Shared/xbmc-depends/iphoneos11.3_arm64-target-debug/share/Toolchain.cmake $HOME/kodi
```
Or generate Xcode project for ARM 32bit:
```
-/Users/Shared/xbmc-depends/x86_64-darwin15.6.0-native/bin/cmake -G Xcode -DCMAKE_TOOLCHAIN_FILE=/Users/Shared/xbmc-depends/iphoneos9.3_armv7-target/share/Toolchain.cmake ../kodi
+/Users/Shared/xbmc-depends/x86_64-darwin15.6.0-native/bin/cmake -G Xcode -DCMAKE_TOOLCHAIN_FILE=/Users/Shared/xbmc-depends/iphoneos9.3_armv7-target/share/Toolchain.cmake $HOME/kodi
```
**WARNING:** The toolchain file location differs depending on your iOS and SDK version. You have to replace `x86_64-darwin15.6.0-native` and `iphoneos11.3_arm64-target-debug` or `iphoneos9.3_armv7-target` in the paths above with the correct ones on your system.
@@ -169,43 +177,21 @@ You can check `Users/Shared/xbmc-depends` directory content with:
```
ls -l /Users/Shared/xbmc-depends
```
+## 6.2 Build
**Start Xcode, open the Kodi project file** (`kodi.xcodeproj`) located in `$HOME/kodi-build` and hit `Build`.
**WARNING:** If you have selected a specific iOS SDK Version in step 4 then you might need to adapt the active target to use the same iOS SDK version, otherwise build will fail. Be sure to select a device configuration. Building for simulator is not supported.
-### 6.2. Build with xcodebuild
-Alternatively, you can also build via Xcode from the command-line with `xcodebuild`, triggered by CMake:
-
-Change to build directory:
-```
-cd $HOME/kodi-build
-```
+**Alternatively**, you can also build via Xcode from the command-line with `xcodebuild`:
Build Kodi:
```
-/Users/Shared/xbmc-depends/x86_64-darwin17.5.0-native/bin/cmake --build . --config "Debug" -- -verbose -jobs $(getconf _NPROCESSORS_ONLN)
-```
-
-**TIP:** You can specify `Release` instead of `Debug` as `--config` parameter.
-
-### 6.3. Build with make
-CMake is also able to generate makefiles that can be used to build with make.
-
-Change to Kodi's source code directory:
-```
-cd $HOME/kodi
+cd $HOME/kodi-build
+xcodebuild -config "Debug" -jobs $(getconf _NPROCESSORS_ONLN)
```
-Generate makefiles:
-```
-make -C tools/depends/target/cmakebuildsys
-```
-
-Build Kodi:
-```
-make -j$(getconf _NPROCESSORS_ONLN) -C build
-```
+**TIP:** You can specify Release instead of Debug as -config parameter.
**[back to top](#table-of-contents)** | **[back to section top](#6-build-kodi)**
@@ -213,14 +199,15 @@ make -j$(getconf _NPROCESSORS_ONLN) -C build
CMake generates a target called `deb` which will package Kodi ready for distribution. After Kodi has been built, the target can be triggered by selecting it in Xcode active scheme or manually running
```
-cd $HOME/kodi-build/build
-/Users/Shared/xbmc-depends/x86_64-darwin17.5.0-native/bin/cmake --build . --target "deb" --config "Debug"
+cd $HOME/kodi-build
+xcodebuild -target deb
```
-Alternatively, if you built using makefiles issue:
+**Alternatively**
+
```
-cd $HOME/kodi/build
-make deb
+cd $HOME/kodi-build
+/Users/Shared/xbmc-depends/x86_64-darwin17.5.0-native/bin/cmake --build . --target "deb" --config "Debug"
```
**[back to top](#table-of-contents)**
diff --git a/docs/README.macOS.md b/docs/README.macOS.md
index 02d4ef33fb..b32dd404b1 100644
--- a/docs/README.macOS.md
+++ b/docs/README.macOS.md
@@ -151,6 +151,17 @@ Create an out-of-source build directory:
```
mkdir $HOME/kodi-build
```
+Generate Xcode project as per configure command in **[Configure and build tools and dependencies](#4-configure-and-build-tools-and-dependencies)**:
+```
+make -C tools/depends/target/cmakebuildsys BUILD_DIR=$HOME/kodi-build GEN=Xcode
+```
+
+**TIP:** BUILD_DIR can be omitted, and project will be created in $HOME/kodi/build
+Change all relevant paths onwards if omitted.
+
+Additional cmake arguments can be supplied via the CMAKE_EXTRA_ARGUMENTS command line variable
+
+**Alternatively**
Change to build directory:
```
@@ -181,11 +192,16 @@ ls -l /Users/Shared/xbmc-depends
### 6.2. Build with xcodebuild
Alternatively, you can also build via Xcode from the command-line with `xcodebuild`, triggered by CMake:
-Change to build directory:
+Build Kodi:
```
cd $HOME/kodi-build
+xcodebuild -config "Debug" -jobs $(getconf _NPROCESSORS_ONLN)
```
+**TIP:** You can specify Release instead of Debug as -config parameter.
+
+**Alternatively**
+
Build Kodi:
```
/Users/Shared/xbmc-depends/x86_64-darwin17.5.0-native/bin/cmake --build . --config "Debug" -- -verbose -jobs $(getconf _NPROCESSORS_ONLN)
@@ -245,6 +261,11 @@ $HOME/kodi/build/kodi.bin
CMake generates a target called `dmg` which will package Kodi ready for distribution. After Kodi has been built, the target can be triggered by selecting it in Xcode active scheme or manually running
```
+cd $HOME/kodi-build
+xcodebuild -target dmg
+````
+**OR**
+```
cd $HOME/kodi-build/build
/Users/Shared/xbmc-depends/x86_64-darwin17.5.0-native/bin/cmake --build . --target "dmg" --config "Debug"
```
diff --git a/docs/README.tvOS.md b/docs/README.tvOS.md
index 0b053cf42e..109ade2bec 100644
--- a/docs/README.tvOS.md
+++ b/docs/README.tvOS.md
@@ -10,9 +10,8 @@ This guide has been tested with macOS 10.13.4(17E199) High Sierra and 10.14.4(18
4. **[Configure and build tools and dependencies](#4-configure-and-build-tools-and-dependencies)**
5. **[Build binary add-ons](#5-build-binary-add-ons)**
6. **[Build Kodi](#6-build-kodi)**
- 6.1. **[Build with Xcode](#61-build-with-xcode)**
- 6.2. **[Build with xcodebuild](#62-build-with-xcodebuild)**
- 6.3. **[Build with make](#63-build-with-make)**
+ 6.1. **[Generate Project Files](#61-Generate-Project-Files)**
+ 6.2. **[Build with Xcode](#62-build)**
7. **[Package](#7-package)**
8. **[Install](#8-install)**
9. **[Gesture Handling](#9-gesture-handling)**
@@ -107,6 +106,9 @@ make -j$(getconf _NPROCESSORS_ONLN)
**[back to top](#table-of-contents)** | **[back to section top](#4-configure-and-build-tools-and-dependencies)**
## 5. Build binary add-ons
+
+**NOTE:** The below is not currently possible in Kodi master repo
+
You can find a complete list of available binary add-ons **[here](https://github.com/xbmc/repo-binary-addons)**.
Change to Kodi's source code directory:
@@ -132,22 +134,33 @@ make -j$(getconf _NPROCESSORS_ONLN) -C tools/depends/target/binary-addons ADDONS
**[back to top](#table-of-contents)**
## 6. Build Kodi
+
+**NOTE:** The below is not currently possible in Kodi master repo
+
+## 6.1. Generate Project Files
+
Before you can use Xcode to build Kodi, the Xcode project has to be generated with CMake. CMake is built as part of the dependencies and doesn't have to be installed separately. A toolchain file is also generated and is used to configure CMake.
-### 6.1. Build with Xcode
Create an out-of-source build directory:
```
mkdir $HOME/kodi-build
```
-Change to build directory:
+Generate Xcode project as per configure command in **[Configure and build tools and dependencies](#4-configure-and-build-tools-and-dependencies)**:
```
-cd $HOME/kodi-build
+make -C tools/depends/target/cmakebuildsys BUILD_DIR=$HOME/kodi-build
```
+**TIP:** BUILD_DIR can be omitted, and project will be created in $HOME/kodi/build
+Change all relevant paths onwards if omitted.
+
+Additional cmake arguments can be supplied via the CMAKE_EXTRA_ARGUMENTS command line variable
+
+Alternatively:
+`
Generate Xcode project for ARM 64bit (**recommended**):
```
-/Users/Shared/xbmc-depends/x86_64-darwin18.5.0-native/bin/cmake -G Xcode -DCMAKE_TOOLCHAIN_FILE=/Users/Shared/xbmc-depends/appletvos12.2_arm64-target-debug/share/Toolchain.cmake ../kodi
+/Users/Shared/xbmc-depends/x86_64-darwin18.5.0-native/bin/cmake -G Xcode -DCMAKE_TOOLCHAIN_FILE=/Users/Shared/xbmc-depends/appletvos12.2_arm64-target-debug/share/Toolchain.cmake $HOME/kodi
```
**WARNING:** The toolchain file location differs depending on your tvOS and SDK version. You have to replace `x86_64-darwin18.5.0-native` and `appletvos12.2_arm64-target-debug` in the paths above with the correct ones on your system.
@@ -156,43 +169,21 @@ You can check `Users/Shared/xbmc-depends` directory content with:
```
ls -l /Users/Shared/xbmc-depends
```
+## 6.2 Build
-**Start Xcode, open the Kodi project file** (`kodi.xcodeproj`) located in `$HOME/kodi-build`, select `Generic TvOs Device` (or your actual connected device if you have it connected) and hit `Build`.
+**Start Xcode, open the Kodi project file** (`kodi.xcodeproj`) located in `$HOME/kodi-build` and hit `Build`.
**WARNING:** If you have selected a specific tvOS SDK Version in step 4 then you might need to adapt the active target to use the same tvOS SDK version, otherwise build will fail. Be sure to select a device configuration. Building for simulator is not supported.
-### 6.2. Build with xcodebuild
-Alternatively, you can also build via Xcode from the command-line with `xcodebuild`, triggered by CMake:
-
-Change to build directory:
-```
-cd $HOME/kodi-build
-```
+**Alternatively**, you can also build via Xcode from the command-line with `xcodebuild`:
Build Kodi:
```
-/Users/Shared/xbmc-depends/x86_64-darwin18.5.0-native/bin/cmake --build . --config "Debug" -- -verbose -jobs $(getconf _NPROCESSORS_ONLN)
-```
-
-**TIP:** You can specify `Release` instead of `Debug` as `--config` parameter.
-
-### 6.3. Build with make
-CMake is also able to generate makefiles that can be used to build with make.
-
-Change to Kodi's source code directory:
-```
-cd $HOME/kodi
-```
-
-Generate makefiles:
-```
-make -C tools/depends/target/cmakebuildsys
+cd $HOME/kodi-build
+xcodebuild -config "Debug" -jobs $(getconf _NPROCESSORS_ONLN)
```
-Build Kodi:
-```
-make -j$(getconf _NPROCESSORS_ONLN) -C build
-```
+**TIP:** You can specify Release instead of Debug as -config parameter.
**[back to top](#table-of-contents)** | **[back to section top](#6-build-kodi)**
@@ -201,17 +192,18 @@ CMake generates a target called `deb` which will package Kodi ready for distribu
```
cd $HOME/kodi-build
-/Users/Shared/xbmc-depends/x86_64-darwin18.5.0-native/bin/cmake --build . --target "deb" --config "Debug"
+xcodebuild -target deb
```
-The generated package will be located at $HOME/kodi-build/tools/darwin/packaging/tvos.
+**Alternatively**
-Alternatively, if you built using makefiles issue:
```
-cd $HOME/kodi/build
-make deb
+cd $HOME/kodi-build
+/Users/Shared/xbmc-depends/x86_64-darwin18.5.0-native/bin/cmake --build . --target "deb" --config "Debug"
```
+The generated package will be located at $HOME/kodi-build/tools/darwin/packaging/tvos.
+
**[back to top](#table-of-contents)**
## 8. Install
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)