From f44ecaa4f27e7538ddcad66d40e543bffa2d2d86 Mon Sep 17 00:00:00 2001 From: manuel Date: Sun, 4 Jun 2017 16:57:49 +0200 Subject: sync with upstream --- project/cmake/README.md | 299 ------------------------------------------------ 1 file changed, 299 deletions(-) delete mode 100644 project/cmake/README.md (limited to 'project/cmake/README.md') diff --git a/project/cmake/README.md b/project/cmake/README.md deleted file mode 100644 index f3d727e..0000000 --- a/project/cmake/README.md +++ /dev/null @@ -1,299 +0,0 @@ -# Kodi CMake based buildsystem - -This files describes Kodi's CMake based buildsystem. CMake is a cross-platform -tool for generating makefiles as well as project files used by IDEs. - -The current version of the buildsystem is capable of building and packaging -Kodi for the following platforms: - -- Linux (GNU Makefiles, Ninja) -- Windows (NMake Makefiles, Visual Studio 14 (2015), Ninja) -- macOS and iOS (GNU Makefiles, Xcode, Ninja) -- Android (GNU Makefiles) -- FreeBSD (GNU Makefiles) - -Before building Kodi with CMake, please ensure that you have the platform -specific dependencies installed. - -While the legacy build systems typically used in-source builds it's recommended -to use out-of-source builds with CMake. The necessary runtime dependencies such -as dlls, skins and configuration files are copied over to the build directory -automatically. - -## Dependency installation - -### Linux - -The dependencies required to build on Linux can be found in -[docs/README.xxx](https://github.com/xbmc/xbmc/tree/master/docs). - -### Raspberry Pi - -The cross compilation environment for the Raspberry Pi as well as the -dependencies have to be installed as explained in -[docs/README.raspberrypi](https://github.com/xbmc/xbmc/tree/master/docs/README.raspberrypi). - -### Windows - -For Windows the dependencies can be found in the -[Wiki](http://kodi.wiki/view/HOW-TO:Compile_Kodi_for_Windows) (Step 1-4). If not already available on your pc, you should -install the [Windows Software Development Kit (SDK)](https://dev.windows.com/en-us/downloads/sdk-archive) for your Windows version. This is required for HLSL shader offline compiling with the [Effect-Compiler Tool](https://msdn.microsoft.com/de-de/library/windows/desktop/bb232919(v=vs.85).aspx) (fxc.exe). - -On Windows, the CMake based buildsystem requires that the binary dependencies -are downloaded using `DownloadBuildDeps.bat` and `DownloadMingwBuildEnv.bat` -and that the mingw libs (ffmpeg, libdvd and others) are built using -`make-mingwlibs.bat`. - -### macOS - -For macOS the required dependencies can be found in -[docs/README.osx](https://github.com/xbmc/xbmc/tree/master/docs/README.osx). - -On macOS it is necessary to build the dependencies in `tools/depends` using -`./bootstrap && ./configure --host= && make`. The other steps such -as `make -C tools/depends/target/xbmc` and `make xcode_depends` are not needed -as these steps are covered already by the CMake project. - -### Android - -The dependencies needed to compile for Android can be found in -[docs/README.android](https://github.com/xbmc/xbmc/tree/master/docs/README.android) -. All described steps have to be executed (except 5.2 which is replaced by the -respective CMake command below). - -## Building Kodi - -This section lists the necessary commands for building Kodi with CMake. -CMake supports different generators that can be classified into two categories: -single- and multiconfiguration generators. - -A single configuration generator (GNU/NMake Makefiles) generates project files -for a single build type (e.g. Debug, Release) specified at configure time. -Multi configuration generators (Visual Studio, Xcode) allow to specify the -build type at compile time. - -All examples below are for out-of-source builds with Kodi checked out to -``: - -``` -mkdir kodi-build && cd kodi-build -``` - -### Linux with GNU Makefiles - -``` -cmake /project/cmake/ -cmake --build . -- VERBOSE=1 -j$(nproc) # or: make VERBOSE=1 -j$(nproc) -./kodi.bin -``` - -`CMAKE_BUILD_TYPE` defaults to `Release`. - -#### Debian package generation -The buildsystem is capable of generating Debian packages using CPack. To generate them, `CPACK_GENERATOR` has to be set to *DEB*, i.e. executing CMake's configure step with `-DCPACK_GENERATOR=DEB`. -You should use CMake/CPack 3.6.0 or higher. Lower versions can generate the packages but package names will be mangled. - -The following optional variables (which can be passed to buildsystem when executing cmake with the -D`=` format) can be used to manipulate package type, name and version: - -- `DEBIAN_PACKAGE_TYPE` controls the name and version of generated packages. Accepted values are `stable`, `unstable` and `nightly` (default is `nightly`). -- `DEBIAN_PACKAGE_EPOCH` controls package epoch (default is `2`) -- `DEBIAN_PACKAGE_VERSION` controls package version (default is `0`) -- `DEBIAN_PACKAGE_REVISION` controls package revision (no default is set) - -Packages metadata can be changed simply by editing files present in the `cpack/deb` folder -A lot more variables are available (see cpack/CPackDebian.cmake file) but you shouldn't mess with them unless you know what you're doing. - -Generated packages can be found in /packages. - -### Raspberry Pi with GNU Makefiles - -``` -cmake -DCMAKE_TOOLCHAIN_FILE=/tools/depends/target/Toolchain.cmake /project/cmake/ -cmake --build . -- VERBOSE=1 -j$(nproc) # or: make VERBOSE=1 -j$(nproc) -``` - -### Windows with Visual Studio project files - -``` -cmake -G "Visual Studio 14" /project/cmake/ -cmake --build . --config "Debug" # or: Build solution with Visual Studio -Debug\kodi.exe -``` - -#### Windows installer generation - -The script [project/Win32BuildSetup](https://github.com/xbmc/xbmc/blob/master/project/Win32BuildSetup/BuildSetup.bat) -builds an installable package for Windows. - -### Windows with NMake Makefiles - -``` -cmake -G "NMake Makefiles" -DCMAKE_BUILD_TYPE=Release /project/cmake/ -cmake --build . # or: nmake -kodi.exe -``` - -### macOS with GNU Makefiles - -``` -cmake -DCMAKE_TOOLCHAIN_FILE=/tools/depends/target/Toolchain.cmake /project/cmake/ -cmake --build . -- VERBOSE=1 -j$(sysctl -n hw.ncpu) # or: make VERBOSE=1 -j$(sysctl -n hw.ncpu) -./kodi.bin -``` - -### macOS with Xcode project files - -``` -cmake -DCMAKE_TOOLCHAIN_FILE=/tools/depends/target/Toolchain.cmake -G "Xcode" /project/cmake/ -cmake --build . --config "Release" -- -verbose -jobs $(sysctl -n hw.ncpu) # or: Build solution with Xcode -./Release/kodi.bin -``` - -#### macOS installer generation - -Afterwards an installable DMG for macOS can be built with the following command: - -``` -cmake --build . --config "Release" --target "dmg" # or: make dmg -``` - -#### iOS package generation - -Consequently an installable DEB for iOS can be built with the following command: - -``` -make deb -``` - -### Android with GNU Makefiles - -``` -cmake -DCMAKE_TOOLCHAIN_FILE=/tools/depends/target/Toolchain.cmake /project/cmake/ -cmake --build . -- VERBOSE=1 -j$(nproc) # or: make VERBOSE=1 -j$(nproc) -``` - -#### Android package generation - -An installable APK for Android can be built with the following command: - -``` -make apk -``` - -## Options - -Kodi supports a number of build options that can enable or disable certain -functionality.i These options must be set when running CMake with -`-DENABLE_