Age | Commit message (Collapse) | Author |
|
Move win32 files to their own platform folder
|
|
|
|
|
|
|
|
creation. Just put it in description.
|
|
|
|
Before this change shared libraries were built by creating a static
library using core_add_library and then linking that into a
shared/module one using core_link_libraries. This has a few drawbacks:
- Meanwhile most libraries don't use wrapping (for VFS support)
anymore, and we can use CMake mechanisms to create those libraries.
- The approach doesn't work with MSVC as there is no "whole-archive"
option. On windows these symbols would need different exporting.
- The main usage of core_add_library is to generate small libraries
for the Kodi main application. Let's use it only for that.
This is in preparation to disable building of per folder static
libraries because they don't work well with VS and Xcode.
This commit introduces the following changes:
- Shared/Module libraries are now created with core_add_shared_library,
addon callback libraries are now created with core_add_addon_library.
- Fix dependencies: make kodi now builds everything needed to run kodi
including all dl-loaded libraries.
- Only use wrapping for libraries where it's also done with Autotools
- WRAP_FILES and wrap-libraries are renamed to LIBRARY_FILES and
kodi-libraries.
- Library wrapping and generation now works in all subdirectories.
Previously core_link_libraries had to be called in the main
CMakeLists.txt because file dependencies in add_custom_command only
work in the same directory. This also made it necessary to create
wrap_* targets.
- Generator expressions in core_link_libraries make the function
less error prone.
|
|
Adds a target that allows to build the binary addons:
make binary-addons ADDONS="visualization.spectrum"
This can be used if local addons should be built for packaging (for
example on osx or android).
|
|
The two dependencies libcpluff and ffmpeg are widely required
throughout the whole project. Adding a project wide dependency ensures
that they are built before all libraries added with core_add_library.
This removes the need to specify them per directory which was error
prone in the past (and up to now only fully worked by chance).
|
|
|
|
ExternalProject.cmake sets a default BUILD_COMMAND to 'make'. Not
overriding it has the advantage that it figures out the best option
itself (including passing down parallel build parameters).
This fixes the Ninja build on Linux due to a problem introduced in
810895469a621c2eb25dbb2ef4aba75ecf067c8b where ninja would be used to
build ffmpeg and cpluff (which doesn't work).
|
|
|
|
|
|
[cmake/cpack] Debian packages generation
|
|
|
|
|
|
|
|
|
|
|
|
[depends][xbmc][fix] Get rid of wdk requirement
|
|
headers we need from wdk as a package to simplify setup
|
|
[cmake/linux] Code coverage
|
|
|
|
|
|
UWP(project centennial) does not allow AddDllDirectory which
we don't really need anyway but it's use made the folder structure
pretty. Since we run perfectly fine without it both native and
as UWP I decided to drop it completely.
To make the build, installer and debugging experience easier this
led to plenty of changes to packages and build scripts to output
all dlls into /system/ instead of different folders.
While moving stuff around some dependencies got updated, it's possible
that we can use java menus in bluray movies now, not tested.
EasyHook just got repackaged to fit the new folder structure.
The rebuilding of dependencies led to us being able to drop old
vcredist files which also simplifies installer and packaging, especially
for UWP.
Some minor cleanup along the way as well
|
|
|
|
|
|
refresh rate issue in FSE mode.
|
|
|
|
This change can be reverted once there is no need to support
lcov < 1.10 anymore (i.g. on Ubuntu 12.04).
|
|
Adds a FindCoverage.cmake script that generates code coverages reports
using LCOV. As coverage requires to compile with different options,
a 'Coverage' build type has been introduced.
Usage:
cmake -DCMAKE_BUILD_TYPE=Coverage <KODI_SRC>/project/cmake \
&& make -j$(nproc) coverage
Known issues: Doesn't work with wrapped libraries (i.g. libcpluff).
Therefore these are compiled unwrapped and the output behaves
differently compared to Debug or Release build!
|
|
Freebsd cmake
|
|
|
|
It's the linux file + xbmc/freebsd
|
|
On FreeBSD the binary are: swig2.0 or swig3.0
so try to find version 3.0 if the 2.0 is not there
|
|
use CMAKE_MAKE_PROGRAM variable to fix FreeBSD build
|
|
After the removal of RTMP in https://github.com/xbmc/xbmc/pull/10017,
the library fails to get packaged for android because it is no more
populated in the dyload-libs variables.
As the library is still needed (https://github.com/xbmc/xbmc/pull/10079)
we manually add it to the files that we're going to package.
Fixes:
cp: cannot stat 'kodi-build-android/install/lib/librtmp.so': No such file or directory
Makefile:121: recipe for target 'libs' failed
|
|
Increase the link performance with GCC by
- defaulting to GNU Gold Linker if available
- defaulting to Debug Fission if available (https://gcc.gnu.org/wiki/DebugFission)
Some measurements on Ubuntu Xenial (GNU GCC 5.3.1, Binutils 2.26)
with incremental linking (touch xbmc/FileItem.cpp) of a debug build:
- GNU ld: 16.5s
- GNU gold: 6.5s
|
|
In-source builds were broken due to a mistake in the export-files
logic. Even though this commit resolves the problem, it is recommended
building out-of-source.
|
|
For example on Darwin platforms this can indicate a missing toolchain
file.
|
|
|
|
CMake 3.5.1 suffers from a crash at configure time that happens on some
Systems: http://cmake.org/Bug/view.php?id=16044
This is fixed in 3.5.2.
Darwin requires CMake at least 3.4 or the usage of the patched version
in depends.
|
|
|
|
|
|
The Ninja generator needs to know which libs are built by which
targets. This can be done with ExternalProject_Add's BUILD_BYPRODUCTS.
This is supported since CMake 3.2. Older versions will trigger this
error:
ninja: error: 'build/libdvd/lib/libdvdnav.a', needed by 'kodi.bin',
missing and no known rule to make it
|
|
|
|
[depends][win32] bump libmicrohttpd to 0.9.50
|
|
Using TagLib for opus file tags.
|
|
|
|
[cmake] Don't link against libpng
|