Build kodi: Difference between revisions
Jump to navigation
Jump to search
Line 1: | Line 1: | ||
=Building Kodi on Linux= | =Building Kodi on Linux= | ||
==Set Kodi root directory== | ==Set Linux Kodi root directory== | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
export KODI_LINUX_ROOT=$HOME/dev/KODI_LINUX_ROOT | export KODI_LINUX_ROOT=$HOME/dev/KODI_LINUX_ROOT | ||
mkdir -p KODI_LINUX_ROOT | |||
cd $KODI_LINUX_ROOT | cd $KODI_LINUX_ROOT | ||
</syntaxhighlight> | |||
==Set Linux Kodi source directory== | |||
<syntaxhighlight lang="bash"> | |||
export KODI_LINUX_SOURCE=$HOME/dev/KODI_LINUX_ROOT/kodi | |||
// mkdir -p KODI_LINUX_ROOT | |||
cd $KODI_LINUX_SOURCE | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Revision as of 02:16, 26 March 2021
Building Kodi on Linux
Set Linux Kodi root directory
export KODI_LINUX_ROOT=$HOME/dev/KODI_LINUX_ROOT
mkdir -p KODI_LINUX_ROOT
cd $KODI_LINUX_ROOT
Set Linux Kodi source directory
export KODI_LINUX_SOURCE=$HOME/dev/KODI_LINUX_ROOT/kodi
// mkdir -p KODI_LINUX_ROOT
cd $KODI_LINUX_SOURCE
Get Source
Get the source and add Kodi's nightly PPA to grab dependencies
git clone https://github.com/xbmc/xbmc kodi
sudo add-apt-repository -s ppa:team-xbmc/xbmc-nightly
Prepare to Build
sudo apt build-dep kodi sudo apt install ccache
Create an out-of-source build directory
mkdir $KODI_ROOT/kodi-build cd $KODI_ROOT/kodi-build
Configure and Build Kodi
Configure build for App Render System==
cmake ../kodi -DCMAKE_INSTALL_PREFIX=/usr/local/kodi -DAPP_RENDER_SYSTEM=gl cmake --build . -- VERBOSE=1 -j$(getconf _NPROCESSORS_ONLN)
Build Kodi Addons
cd $/KODI_ROOT/kodi make -j$(getconf _NPROCESSORS_ONLN) -C tools/depends/target/binary-addons PREFIX=/usr/local/kodi
Building Kodi on Android
Create Android Directories
Create Android ROOT (KODI_ANDROID_ROOT) Directory
export KODI_ANDROID_ROOT=$HOME/dev/KODI_ANDROID_ROOT
mkdir -p $KODI_ANDROID_ROOT
cd $KODI_ANDROID_ROOT
Create Android Build Directory (KODI_ANDROID_BUILD)
export KODI_BUILD_DIR=$KODI_ANDROID_ROOT/KODI_ANDROID_BUILD
mkdir -p $KODI_BUILD_DIR
Create Android Build Directory (KODI_ANDROID_SOURCE)
We do not need to make this directory as git does this
export KODI_ANDROID_SOURCE=$KODI_ANDROID_ROOT/kodi
#mkdir -p $KODI_ANDROID_SOURCE
Create Android directory (KODI_ANDROID)
export KODI_ANDROID=$HOME/dev/Android_Standalone
mkdir -p $KODI_ANDROID
Create Android SDK directory (KODI_SDK)
export KODI_SDK=$KODI_ANDROID/cmdline-tools
mkdir -p $KODI_SDK
Create Android NDK directory (KODI_NDK)
export KODI_NDK=$KODI_ANDROID/android-ndk-r20b
mkdir -p $KODI_NDK
Prerequisites
Ubunty (20.1)
sudo apt install autoconf build-essential curl default-jdk gawk git gperf lib32stdc++6 lib32z1 lib32z1-dev libcurl4-openssl-dev unzip zlib1g-dev
Get SDK Command Tools and NDK
I used the following
wget https://dl.google.com/android/repository/commandlinetools-linux-6858069_latest.zip
wget https://dl.google.com/android/repository/android-ndk-r20b-linux-x86_64.zip
Extract the zip files
unzip $KODI_ANDROID_ROOT/Downloads/commandlinetools-linux-6858069_latest.zip -d $KODI_ANDROID
unzip $KODI_ANDROID_ROOT/Downloads/android-ndk-r20b-linux-x86_64.zip -d $KODI_ANDROID
Accept Licenses (And Get SDK Bits)
cd $KODI_SDK/bin
./sdkmanager --licenses --sdk_root=$KODI_SDK
./sdkmanager platform-tools --sdk_root=$KODI_SDK
./sdkmanager "platforms;android-28" --sdk_root=$KODI_SDK
./sdkmanager "build-tools;28.0.3" --sdk_root=$KODI_SDK
Create a key to sign
I found this already existed. Hopefully will update if this proves to be a problem
keytool -genkey -keystore ~/.android/debug.keystore -v -alias androiddebugkey -dname "CN=Android Debug,O=Android,C=US" -keypass android -storepass android -keyalg RSA -keysize 2048 -validity 10000
Get Source
cd $KODI_ANDROID_ROOT
git clone https://github.com/xbmc/xbmc kodi
Configure
cd $KODI_ANDROID_SOURCE/tools/depends
./bootstrap
./configure --with-tarballs=$KODI_ANDROID_SOURCE/xbmc-tarballs --host=arm-linux-androideabi --with-sdk-path=$KODI_SDK --with-ndk-path=$KODI_NDK --prefix=$KODI_ANDROID_SOURCE/xbmc-depends
Build Android Kodi
Build tools and dependencies
make -j$(getconf _NPROCESSORS_ONLN) BUILD_DIR=$KODI_BUILD_DIR
Build Android Kodi Binary Addons
cd $KODI_ANDROID_SOURCE
make -C tools/depends/target/cmakebuildsys BUILD_DIR=$KODI_BUILD_DIR
Build Android Kodi
make -C tools/depends/target/cmakebuildsys BUILD_DIR=$KODI_BUILD_DIR
cd $KODI_BUILD_DIR
make -j$(getconf _NPROCESSORS_ONLN) BUILD_DIR=$KODI_BUILD_DIR
Package Android Kodi
This will run gradle and create the Apk
make apk
Stuff to Delete
Change to Android NDK tools directory
cd $KODI_ROOT/android-tools/android-ndk-r18b/build/tools
Set up toolchain
./make-standalone-toolchain.sh --install-dir=$KODI_ROOT/android-tools/arm-linux-androideabi-vanilla/android-21 --platform=android-21 --toolchain=arm-linux-androideabi
Clone Kodi's current master branch
cd $KODI_ROOT git clone https://github.com/xbmc/xbmc kodi
Prepare to configure build
cd $KODI_ROOT/kodi/tools/depends ./bootstrap
Configure build for arm Kodi 17
./configure --with-tarballs=$KODI_ROOT/android-tools/xbmc-tarballs --with-ndk-api=24 --host=arm-linux-androideabi --with-sdk=android-26 --with-sdk-path=$KODI_ROOT/android-tools/android-sdk-linux --with-ndk=$KODI_ROOT/android-tools/android-ndk-r18b --with-toolchain=$KODI_ROOT/android-tools/arm-linux-androideabi-vanilla/android-24 --prefix=$KODI_ROOT/android-tools/xbmc-depends
Configure build for arm Kodi 18
./configure --with-tarballs=$KODI_ROOT/android-tools/xbmc-tarballs --with-ndk-api=24 --host=arm-linux-androideabi --with-sdk-path=$KODI_ROOT/android-tools/android-sdk-linux --with-ndk-path=$KODI_ROOT/android-tools/android-ndk-r18b --with-toolchain=$KODI_ROOT/android-tools/arm-linux-androideabi-vanilla/android-24 --prefix=$KODI_ROOT/android-tools/xbmc-depends
Build tools and dependencies
make -j$(getconf _NPROCESSORS_ONLN)
For Kodi 17 on Bionic code will need to be fixed see Kodi Krypton Fixes
Build all add-ons
cd $KODI_ROOT/kodi
make -j$(getconf _NPROCESSORS_ONLN) -C tools/depends/target/binary-addons
Build Kodi
Configure CMake build:
cd $KODI_ROOT/kodi make -C tools/depends/target/cmakebuildsys
Build Kodi
cd $KODI_ROOT/kodi/build make -j$(getconf _NPROCESSORS_ONLN)
Create package
make apk
Building Amended PVR IPTV Simple Plugin Linux
cd $KODI_ROOT git clone https://github.com/bibble235/pvr.iptvsimple cd pvr.iptvsimple && mkdir build && cd build cmake -DADDONS_TO_BUILD=pvr.iptvsimple -DADDON_SRC_PREFIX=../.. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../../xbmc/addons -DPACKAGE_ZIP=1 ../../xbmc/cmake/addons make
Building Amended PVR IPTV Simple Plugin Android
cd $KODI_ROOT git clone https://github.com/bibble235/pvr.iptvsimple cd pvr.iptvsimple && mkdir build && cd build cmake -DADDONS_TO_BUILD=pvr.iptvsimple -DADDON_SRC_PREFIX=../.. -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=../../kodi/addons -DPACKAGE_ZIP=1 \ -DCMAKE_TOOLCHAIN_FILE=$KODI_ROOT/Android/kodi/tools/depends/target/binary-addons/arm-linux-androideabi-21-debug/build/depends/share/Toolchain_binaddons.cmake \ ../../kodi/cmake/addons make