Build kodi: Difference between revisions
Jump to navigation
Jump to search
(33 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
=Building Kodi on Linux= | =Building Kodi on Android= | ||
== | ==Create Linux Directories== | ||
export | ===Create Linux ROOT Directory (KODI_LINUX_ROOT)=== | ||
cd $ | <syntaxhighlight lang="bash"> | ||
export KODI_LINUX_ROOT=$HOME/dev/KODI_LINUX_ROOT | |||
mkdir -p KODI_LINUX_ROOT | |||
cd $KODI_LINUX_ROOT | |||
</syntaxhighlight> | |||
===Create Linux Build Directory (KODI_LINUX_BUILD)=== | |||
<syntaxhighlight lang="bash"> | |||
export KODI_LINUX_BUILD=$KODI_LINUX_ROOT/KODI_LINUX_BUILD | |||
mkdir $KODI_LINUX_BUILD | |||
cd $KODI_LINUX_BUILD | |||
</syntaxhighlight> | |||
===Create Linux Source Directory (KODI_LINUX_SOURCE)=== | |||
<syntaxhighlight lang="bash"> | |||
export KODI_LINUX_SOURCE=$KODI_LINUX_ROOT/kodi | |||
// mkdir -p KODI_LINUX_ROOT | |||
</syntaxhighlight> | |||
==Get Source== | ==Get Source== | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
git clone https://github.com/xbmc/xbmc kodi | cd $KODI_LINUX_ROOT | ||
sudo add-apt-repository -s ppa:team-xbmc/xbmc-nightly | git clone https://github.com/bibble235/xbmc kodi | ||
// Get the source and add Kodi's nightly PPA to grab dependencies<br> | |||
// git clone https://github.com/xbmc/xbmc kodi | |||
// sudo add-apt-repository -s ppa:team-xbmc/xbmc-nightly | |||
</syntaxhighlight> | </syntaxhighlight> | ||
==Prepare to Build== | ==Build Linux Kodi== | ||
===Prepare to Build=== | |||
<syntaxhighlight lang="bash"> | |||
sudo apt build-dep kodi | sudo apt build-dep kodi | ||
sudo apt install ccache | sudo apt install ccache | ||
</syntaxhighlight> | |||
===Configure Linux Kodi=== | |||
==Configure | <syntaxhighlight lang="bash"> | ||
cd $KODI_LINUX_BUILD | |||
cmake ../kodi -DCMAKE_INSTALL_PREFIX=/usr/local | cmake ../kodi -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr/local -DAPP_RENDER_SYSTEM=gl | ||
cmake --build . | cmake --build . -j$(getconf _NPROCESSORS_ONLN) | ||
==Build Kodi Addons== | </syntaxhighlight> | ||
cd $ | |||
make -j$(getconf _NPROCESSORS_ONLN) -C tools/depends/target/binary-addons PREFIX=/usr/local/kodi | ===Build Linux Kodi Addons=== | ||
<syntaxhighlight lang="bash"> | |||
cd $KODI_LINUX_SOURCE | |||
make -j$(getconf _NPROCESSORS_ONLN) -C tools/depends/target/binary-addons PREFIX=/usr/local | |||
</syntaxhighlight> | |||
==VS Code== | |||
===Setting=== | |||
<syntaxhighlight lang="json"> | |||
{ | |||
"cmake.sourceDirectory": "${env:KODI_LINUX_SOURCE}", | |||
"cmake.buildDirectory": "${env:KODI_LINUX_BUILD}", | |||
"cmake.generator": "Unix Makefiles", | |||
"cmake.configureArgs": [ | |||
"-DCMAKE_BUILD_TYPE=Debug", | |||
"-DCMAKE_INSTALL_PREFIX=/usr/local", | |||
"-DAPP_RENDER_SYSTEM=gl" | |||
], | |||
"cmake.buildArgs": [ | |||
"." | |||
] | |||
} | |||
</syntaxhighlight> | |||
===Launch Settings=== | |||
<syntaxhighlight lang="json"> | |||
{ | |||
// Use IntelliSense to learn about possible attributes. | |||
// Hover to view descriptions of existing attributes. | |||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 | |||
"version": "0.2.0", | |||
"configurations": [ | |||
{ | |||
"name": "(gdb) Launch", | |||
"type": "cppdbg", | |||
"request": "launch", | |||
"program": "${env:KODI_LINUX_BUILD}/kodi.bin", | |||
"args": [], | |||
"stopAtEntry": false, | |||
"cwd": "${workspaceFolder}", | |||
"environment": [], | |||
"externalConsole": false, | |||
"MIMode": "gdb", | |||
"setupCommands": [ | |||
{ | |||
"description": "Enable pretty-printing for gdb", | |||
"text": "-enable-pretty-printing", | |||
"ignoreFailures": true | |||
} | |||
] | |||
} | |||
] | |||
} | |||
</syntaxhighlight> | |||
=Building Kodi on Android= | =Building Kodi on Android= | ||
Line 99: | Line 171: | ||
==Get Source== | ==Get Source== | ||
<syntaxhighlight lang="bash"> | <syntaxhighlight lang="bash"> | ||
cd $ | cd $KODI_LINUX_ROOT | ||
git clone https://github.com/xbmc/xbmc kodi | git clone https://github.com/bibble235/xbmc kodi | ||
// Get the source and add Kodi's nightly PPA to grab dependencies<br> | |||
// git clone https://github.com/xbmc/xbmc kodi | |||
// sudo add-apt-repository -s ppa:team-xbmc/xbmc-nightly | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Line 107: | Line 182: | ||
cd $KODI_ANDROID_SOURCE/tools/depends | cd $KODI_ANDROID_SOURCE/tools/depends | ||
./bootstrap | ./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 | ./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 | ||
</syntaxhighlight> | </syntaxhighlight> | ||
Latest revision as of 11:15, 27 March 2021
Building Kodi on Android
Create Linux Directories
Create Linux ROOT Directory (KODI_LINUX_ROOT)
export KODI_LINUX_ROOT=$HOME/dev/KODI_LINUX_ROOT
mkdir -p KODI_LINUX_ROOT
cd $KODI_LINUX_ROOT
Create Linux Build Directory (KODI_LINUX_BUILD)
export KODI_LINUX_BUILD=$KODI_LINUX_ROOT/KODI_LINUX_BUILD
mkdir $KODI_LINUX_BUILD
cd $KODI_LINUX_BUILD
Create Linux Source Directory (KODI_LINUX_SOURCE)
export KODI_LINUX_SOURCE=$KODI_LINUX_ROOT/kodi
// mkdir -p KODI_LINUX_ROOT
Get Source
cd $KODI_LINUX_ROOT
git clone https://github.com/bibble235/xbmc kodi
// Get the source and add Kodi's nightly PPA to grab dependencies<br>
// git clone https://github.com/xbmc/xbmc kodi
// sudo add-apt-repository -s ppa:team-xbmc/xbmc-nightly
Build Linux Kodi
Prepare to Build
sudo apt build-dep kodi
sudo apt install ccache
Configure Linux Kodi
cd $KODI_LINUX_BUILD
cmake ../kodi -DCMAKE_BUILD_TYPE=Debug -DCMAKE_INSTALL_PREFIX=/usr/local -DAPP_RENDER_SYSTEM=gl
cmake --build . -j$(getconf _NPROCESSORS_ONLN)
Build Linux Kodi Addons
cd $KODI_LINUX_SOURCE
make -j$(getconf _NPROCESSORS_ONLN) -C tools/depends/target/binary-addons PREFIX=/usr/local
VS Code
Setting
{
"cmake.sourceDirectory": "${env:KODI_LINUX_SOURCE}",
"cmake.buildDirectory": "${env:KODI_LINUX_BUILD}",
"cmake.generator": "Unix Makefiles",
"cmake.configureArgs": [
"-DCMAKE_BUILD_TYPE=Debug",
"-DCMAKE_INSTALL_PREFIX=/usr/local",
"-DAPP_RENDER_SYSTEM=gl"
],
"cmake.buildArgs": [
"."
]
}
Launch Settings
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "(gdb) Launch",
"type": "cppdbg",
"request": "launch",
"program": "${env:KODI_LINUX_BUILD}/kodi.bin",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": false,
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
]
}
]
}
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_LINUX_ROOT
git clone https://github.com/bibble235/xbmc kodi
// Get the source and add Kodi's nightly PPA to grab dependencies<br>
// git clone https://github.com/xbmc/xbmc kodi
// sudo add-apt-repository -s ppa:team-xbmc/xbmc-nightly
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