Skip to content

Latest commit

 

History

History
264 lines (200 loc) · 8.85 KB

README.FreeBSD.md

File metadata and controls

264 lines (200 loc) · 8.85 KB

Kodi Logo

FreeBSD build guide

This guide has been tested with FreeBSD 14.1 x86_64. Please read it in full before you proceed to familiarize yourself with the build procedure.

Several other distributions have specific build guides and a general Linux build guide is also available.

Table of Contents

  1. Document conventions
  2. Get the source code
  3. Install the required packages
    3.1. Build missing dependencies
  4. Build Kodi
    4.1. Configure build
    4.2. Build
  5. Build binary add-ons
  6. Run Kodi
  7. Uninstall Kodi
  8. Test suite

1. Document conventions

This guide assumes you are using terminal, also known as console, command-line or simply cli. Commands need to be run at the terminal, one at a time and in the provided order.

This is a comment that provides context:

this is a command
this is another command
and yet another one

Example: Clone Kodi's current master branch:

git clone https://github.com/xbmc/xbmc kodi

Commands that contain strings enclosed in angle brackets denote something you need to change to suit your needs.

git clone -b <branch-name> https://github.com/xbmc/xbmc kodi

Example: Clone Kodi's current Omega branch:

git clone -b Omega https://github.com/xbmc/xbmc kodi

Several different strategies are used to draw your attention to certain pieces of information. In order of how critical the information is, these items are marked as a note, tip, or warning. For example:

Note

Linux is user friendly... It's just very particular about who its friends are.

Tip

Algorithm is what developers call code they do not want to explain.

Warning

Developers don't change light bulbs. It's a hardware problem.

back to top | back to section top

2. Get the source code

Make sure git is installed:

sudo pkg install git

Change to your home directory:

cd $HOME

Clone Kodi's current master branch:

git clone https://github.com/xbmc/xbmc kodi

back to top

3. Install the required packages

If you get a package not found type of message with the below command, remove the offending package(s) from the install list and reissue the command. Take a note of the missing dependencies and, after a successful step completion, build the missing dependencies manually.

Note

Kodi requires a compiler with C++17 support, i.e. gcc >= 7 or clang >= 5

Install build dependencies:

sudo pkg install autoconf automake avahi-app binutils cmake curl dbus doxygen e2fsprogs-libuuid enca encodings evdev-proto exiv2 ffmpeg flac flatbuffers font-util fontconfig freetype2 fribidi fstrcmp gawk gettext-tools giflib git glew gmake gmp gnutls googletest gperf gstreamer1-vaapi jpeg-turbo libaacs libass libbdplus libbluray libcapn libcdio libcec libdisplay-info libedit libfmt libgcrypt libgpg-error libidn libinotify libinput libmicrohttpd libnfs libogg libplist librtmp libtool libudev-devd libva libvdpau libvorbis libxkbcommon libxslt lirc lzo2 m4 mariadb-connector-c-3.3.8_1 mesa-libs nasm openjdk21 p8-platform pcre2 pkgconf python3 rapidjson shairplay sndio spdlog sqlite3 swig taglib tiff tinyxml tinyxml2 wayland-protocols waylandpp xf86-input-keyboard xf86-input-mouse xorg-server xrandr zip

Warning

Make sure you copy paste the entire line or you might receive an error or miss a few dependencies.

Note

For developers and anyone else who builds frequently it is recommended to install ccache to expedite subsequent builds of Kodi.

You can install it with:

sudo pkg install ccache

Tip

If you have multiple computers at home, distcc will distribute build workloads of C and C++ code across several machines on a network. Team Kodi may not be willing to give support if problems arise using such a build configuration.

You can install it with:

sudo pkg install distcc

3.1. Build missing dependencies

See the general Linux build guide for reference.

back to top | back to section top

4. Build Kodi

4.1. Configure build

If you get a Could NOT find... error message during CMake configuration step, take a note of the missing dependencies and either install them from repositories (if available) or build the missing dependencies manually.

Create an out-of-source build directory:

mkdir $HOME/kodi-build

Change to build directory:

cd $HOME/kodi-build

Configure build:

cmake ../kodi -DCMAKE_INSTALL_PREFIX=/usr/local -DAPP_RENDER_SYSTEM="gl"

Note

You can use gles instead of gl if you want to build with GLES.

4.2. Build

cmake --build . -- VERBOSE=1 -j$(sysctl hw.ncpu | awk '{print $2}')

Tip

By adding -j<number> to the make command, you can choose how many concurrent jobs will be used and expedite the build process. It is recommended to use -j$(sysctl hw.ncpu | awk '{print $2}') to compile on all available processor cores.

After the build process completes successfully you can test your shiny new Kodi build while in the build directory:

./kodi.bin

If everything was OK during your test you can now install the binaries to their place, in this example /usr/local.

sudo gmake install

Note

gmake stands for GNU Make. BSD's own make does not work here.

This will install Kodi in the prefix provided in section 4.1.

Tip

To override Kodi's install location, use DESTDIR=<path>. For example:

sudo gmake install DESTDIR=$HOME/kodi

back to top | back to section top

5. Build binary add-ons

You can find a complete list of available binary add-ons here.

Change to Kodi's source code directory:

cd $HOME/kodi

Build all add-ons:

sudo gmake -j$(sysctl hw.ncpu | awk '{print $2}') -C tools/depends/target/binary-addons PREFIX=/usr/local

Build specific add-ons:

sudo gmake -j$(sysctl hw.ncpu | awk '{print $2}') -C tools/depends/target/binary-addons PREFIX=/usr/local ADDONS="audioencoder.flac pvr.vdr.vnsi audiodecoder.snesapu"

Build a specific group of add-ons:

sudo gmake -j$(sysctl hw.ncpu | awk '{print $2}') -C tools/depends/target/binary-addons PREFIX=/usr/local ADDONS="pvr.*"

Clean-up binary add-ons:

sudo gmake -C tools/depends/target/binary-addons clean

For additional information on regular expression usage for ADDONS_TO_BUILD, view ADDONS_TO_BUILD section located at Kodi add-ons CMake based buildsystem

Note

PREFIX=/usr/local should match Kodi's -DCMAKE_INSTALL_PREFIX= prefix used in section 4.1.

back to top

6. Run Kodi

If you chose to install Kodi using /usr or /usr/local as the -DCMAKE_INSTALL_PREFIX=, you can just issue kodi in a terminal session.

If you changed -DCMAKE_INSTALL_PREFIX= to install Kodi into some non-standard location, you will have to run Kodi directly:

<CMAKE_INSTALL_PREFIX>/bin/kodi

To run Kodi in portable mode (useful for testing):

<CMAKE_INSTALL_PREFIX>/bin/kodi -p

back to top

7. Uninstall Kodi

sudo gmake uninstall

Warning

If you reran CMakes' configure step with a different -DCMAKE_INSTALL_PREFIX=, you will need to rerun configure with the correct path for this step to work correctly.

If you would like to also remove any settings and third-party addons (skins, scripts, etc.) and Kodi configuration files, you should also run:

rm -rf ~/.kodi

back to top

8. Test suite

Kodi has a test suite which uses the Google C++ Testing Framework. This framework is provided directly in Kodi's source tree.

Build and run Kodi's test suite:

gmake check

Build Kodi's test suite without running it:

gmake kodi-test

Run Kodi's test suite manually:

./kodi-test

Show Kodi's test suite help notes:

./kodi-test --gtest_help

Useful options:

--gtest_list_tests
  List the names of all tests instead of running them.
  The name of TEST(Foo, Bar) is "Foo.Bar".

--gtest_filter=POSITIVE_PATTERNS[-NEGATIVE_PATTERNS]
  Run only the tests whose name matches one of the positive patterns but
  none of the negative patterns. '?' matches any single character; '*'
  matches any substring; ':' separates two patterns.

back to top