mirror of https://github.com/xbmc/xbmc
236 lines
9.4 KiB
Plaintext
236 lines
9.4 KiB
Plaintext
TOC
|
|
1. Introduction
|
|
2. Getting the source code
|
|
3. Install required libs
|
|
3.1. Install Xcode
|
|
3.2. Install Kodi build depends
|
|
4. How to compile and run
|
|
4.1 Using XCode
|
|
4.2 Using Command line
|
|
5. Packaging
|
|
|
|
-----------------------------------------------------------------------------
|
|
1. Introduction
|
|
-----------------------------------------------------------------------------
|
|
|
|
This is a platform port of Kodi for the Apple OSX operating system. 10.6, 10.7
|
|
10.8, 10.9 and 10.10 Intel development platforms are supported. Xcode 3.2.6 and 4.3 and newer
|
|
are the recommended versions.
|
|
There are 3 ways to build Kodi for Mac, from command-line with make, from command-line
|
|
using xcodebuild or from Xcode.
|
|
|
|
Generally, Xcode is the easiest as it presents the build system in a GUI environment.
|
|
The command-line build is still under development.
|
|
|
|
Kodi for Mac is composed of a main binary with numerous dynamic libraries and
|
|
codecs that support a multitude of music and video formats.
|
|
|
|
On Snow Leopard (OSX 10.6.x) we recommend using Xcode 3.2.6.
|
|
On Lion (OSX 10.7.x) we recommend using Xcode 4.3.x.
|
|
On Mountain Lion (OSX 10.8.1) we recommend using Xcode 4.4.
|
|
On Mavericks (OSX 10.9.3) we recommend using Xcode 5.1.1 or 6.0.1.
|
|
On Yosemite (OSX 10.10) we recommend using Xcode 6.1.
|
|
|
|
NOTE TO NEW OS X USERS: All lines that are prefixed with the '$' character are
|
|
commands that need to be typed into a Terminal window. Note that the '$'
|
|
character itself should NOT be typed as part of the command.
|
|
|
|
ATTENTION: When using Mountain Lion (OSX 10.8.x), Mavericks (10.9.x) or Yosemite (10.10.x) you
|
|
need to download and install XQuartz from https://xquartz.macosforge.org/landing/ since its not part of OSX
|
|
anymore.
|
|
|
|
-----------------------------------------------------------------------------
|
|
2. Getting the source code
|
|
-----------------------------------------------------------------------------
|
|
|
|
$ cd $HOME
|
|
$ git clone git://github.com/xbmc/xbmc.git Kodi
|
|
|
|
-----------------------------------------------------------------------------
|
|
3.0 Install XCODE
|
|
-----------------------------------------------------------------------------
|
|
See point 3.0a below for an updated list of supported/tested Xcode/osx constellations!!!
|
|
|
|
Install latest Xcode (6.1.0 or 3.2.6 as of the writing). You can download it from
|
|
|
|
1. Apple's site after registration at http://developer.apple.com/tools/download (Xcode 3.2.6)
|
|
2. In the MacOSX AppStore (Xcode 4.3.x and later).
|
|
|
|
If you are using XCode 4.3.x or later you also need to install the "Command Line Tools". To do so
|
|
after installing Xcode you have to go to "Xcode->Preferences->Downloads" and install the
|
|
package "Command Line Tools". This is not needed anymore in Xcode 5.x. Command Line Tools are installed
|
|
automagically on first invoke.
|
|
|
|
Xcode 3.2.6 only runs on 10.6.x (Snow Leopard).
|
|
Xcode 4.3.x only runs on 10.7.x (Lion).
|
|
Xcode 4.4 only runs on 10.8.x (Mountain Lion).
|
|
Xcode 5.1.1 runs on 10.8.x and 10.9.x (Mavericks).
|
|
Xcode 6.0.1 runs on 10.9.4 and later (Mavericks).
|
|
Xcode 6.1 runs on 10.9.5 and later (Mavericks).
|
|
|
|
-----------------------------------------------------------------------------
|
|
3.0a Supported Xcode and OSX constellations
|
|
-----------------------------------------------------------------------------
|
|
As far as we know the compilation for mac osx should work with the following
|
|
constellations of Xcode and osx versions (to be updated once we know more):
|
|
|
|
1. XCode 3.2.6 against OSX SDK 10.6 on 10.6.x (Snow Leopard)
|
|
2. XCode 4.3.x against OSX SDK 10.6 and 10.7 on 10.7.x (Lion)
|
|
3. XCode 4.6 against OSX SDK 10.6, 10.7 and 10.8 on 10.7.x (Lion) and 10.8.x (ML)
|
|
4. XCode 5.1.1 against OSX SDK 10.8 (ML) and 10.9 (M)
|
|
5. XCode 6.0.1 against OSX SDK 10.9 (M)
|
|
6. XCode 6.1.0 against OSX SDK 10.10 (Y)
|
|
|
|
-----------------------------------------------------------------------------
|
|
3.1 Install Kodi build depends
|
|
-----------------------------------------------------------------------------
|
|
The following commands will build using the latest OSX SDK found on your
|
|
system.
|
|
|
|
3.1.1 Compiling as 32 Bit binary
|
|
$ cd $HOME/Kodi
|
|
$ cd tools/depends
|
|
$ ./bootstrap
|
|
$ ./configure --host=i386-apple-darwin
|
|
$ make
|
|
|
|
3.1.2 Compiling as 64 Bit binary
|
|
$ cd $HOME/Kodi
|
|
$ cd tools/depends
|
|
$ ./bootstrap
|
|
$ ./configure --host=x86_64-apple-darwin
|
|
$ make
|
|
|
|
NOTE: You can speedup compilation on multicore systems by doing
|
|
"make -j<number of cores>" instead of "make". For a dualcore this would read:
|
|
"make -j2"
|
|
|
|
ADVANCED developers only! If you want to specify an OSX SDK version (if
|
|
multiple versions are installed) - then append it to the configure line
|
|
above (example below would use OSX SDK 10.7 and build for 64bit):
|
|
|
|
$ ./configure --host=x86_64-apple-darwin --with-sdk=10.7
|
|
|
|
Ensure that you also adapt the xcode project to use this SDK version.
|
|
|
|
-----------------------------------------------------------------------------
|
|
4. How to compile
|
|
-----------------------------------------------------------------------------
|
|
Both Xcode and Terminal compilation require that build environment be setup
|
|
first. This is a simple step and involves the following:
|
|
|
|
4.a Compilation by using command-line building via xcodebuild or
|
|
by compiling via Xcode GUI
|
|
|
|
$ cd $HOME/Kodi
|
|
$ make -C tools/depends/target/xbmc
|
|
$ make clean
|
|
$ make xcode_depends
|
|
|
|
4.b Compilation by using command-line building via make (experimental)
|
|
|
|
$ cd $HOME/Kodi
|
|
$ make -C tools/depends/target/xbmc
|
|
$ make clean
|
|
|
|
The configure operation will setup the build environment for codecs and
|
|
internal libraries that are used by Kodi. This step is required for both Xcode
|
|
and command-line building. The "make clean" ensures that there are no stale
|
|
binaries from git that might cause problems.
|
|
|
|
-----------------------------------------------------------------------------
|
|
4.1 Using Xcode
|
|
-----------------------------------------------------------------------------
|
|
Start XCode and open the Kodi project (Kodi.xcodeproj) located in $HOME/Kodi.
|
|
For development, Kodi is run from the $HOME/Kodi directory and needs to have
|
|
the KODI_HOME environment variable set to know where that directory is located.
|
|
To set KODI_HOME environment variable:
|
|
|
|
Xcode 3.2.6
|
|
Menu -> Project -> Edit Active Executable "Kodi", click "Arguments" tab and
|
|
add "KODI_HOME" as an enviroment variable. Set the value to the path to the
|
|
Kodi root folder. For example, "/Users/bigdog/Documents/Kodi"
|
|
|
|
Xcode 4.3.x and later
|
|
Menu -> Product -> Edit Sheme -> "Run Kodi"/"Debug" -> Add KODI_HOME into
|
|
the List of "Environment Variables". Set the value to the path to the Kodi
|
|
root folder. For example, "/Users/bigdog/Documents/Kodi"
|
|
|
|
There are two build targets "Kodi" and "Kodi.app" (each in 32Bit and 64Bit flavour)
|
|
with debug and release settings. The "Kodi" target is used for rapid build and
|
|
debug cycles while the "Kodi.app" target is used to build a self contained
|
|
OSX application.
|
|
|
|
Set the build target to "Kodi" or "Kodi.app" and be sure to select the same
|
|
architecture as selected in step 3.1 (either i386 for 32Bit or x86_64 for 64Bit),
|
|
then build.
|
|
|
|
If you have selected a specific OSX SDK Version in step 3.1 then you might need
|
|
to adapt the active target to use the same OSX SDK version. Else build will fail
|
|
(you will see alot of errors with at least non-found boost/shared_ptr.hpp).
|
|
|
|
The build process will take a long time when building the first time.
|
|
You can see the progress in "Build Results". There are a large number of static
|
|
and dynamic libaries that will need to be built. Once these are built,
|
|
subsequent builds will be faster.
|
|
|
|
After the build, you can ether run Kodi for Mac from Xcode or run it from
|
|
the command-line. If you run it from the command-line, make sure your set
|
|
the KODI_HOME environment variable (export KODI_HOME=$HOME/Kodi). Then, to
|
|
run the debug version:
|
|
|
|
$ ./build/Debug/Kodi
|
|
|
|
Or the release version:
|
|
|
|
$ ./build/Release/Kodi
|
|
|
|
You can also build via Xcode from the command-line using the following:
|
|
|
|
$ xcodebuild -configuration Release ONLY_ACTIVE_ARCH=YES ARCHS=i386 VALID_ARCHS=i386 \
|
|
-target "Kodi.app" -project Kodi.xcodeproj
|
|
|
|
You can specify "Release" instead of "Debug" as a configuration. Be sure to set *_ARCHS
|
|
variables to the same architecture as selected in step 3.1 (either i386 for 32Bit or x86_64
|
|
for 64Bit).
|
|
|
|
-----------------------------------------------------------------------------
|
|
4.2 Using Terminal (command-line) (this is a work in progress and might fail)
|
|
-----------------------------------------------------------------------------
|
|
There are two methods, a) make/Xcode and b) make (which might fail as it's under
|
|
construction).
|
|
|
|
If you want to build a cross-compiled version that can run under 10.6/10.7,
|
|
you could try xcodebuild from the command-line (normally unneeded - for advanced
|
|
developers).
|
|
|
|
a)
|
|
$ cd $HOME/Kodi
|
|
$ export KODI_HOME=`pwd`
|
|
$ make xcode_depends
|
|
$ xcodebuild -sdk macosx10.7 -project Kodi.xcodeproj -target Kodi.app ONLY_ACTIVE_ARCH=YES \
|
|
ARCHS=x86_64 VALID_ARCHS=x86_64 -configuration Release build
|
|
|
|
b) building via make
|
|
$ cd $HOME/Kodi
|
|
$ export KODI_HOME=`pwd`
|
|
$ make
|
|
$ ./Kodi.bin
|
|
|
|
-----------------------------------------------------------------------------
|
|
5. Packaging
|
|
-----------------------------------------------------------------------------
|
|
This section describes how to package Kodi in a disk image for
|
|
distribution.
|
|
|
|
1. build Kodi.app from XCode so that the application bundle is correctly updated.
|
|
|
|
2. $ cd tools/darwin/packaging/osx
|
|
|
|
3. $ ./mkdmg-osx.sh release
|
|
|
|
4. Use release or debug - you have to be sure that you build the corresponding
|
|
version before.
|
|
|
|
6. Find the corresponding dmg in the packaging dir.
|