Age | Commit message (Collapse) | Author |
|
|
|
|
|
|
|
|
|
XBMC_LIB_DIR is not used but four addons still use XBMC_INCLUDE_DIR:
- vis fountain and starbust
- screensaver crystalmorph and planestate
|
|
|
|
This drops the VS2010Express directory and modifies
BuildSetup.bat to only use cmake.
No more horrible xml merge conflicts :)
|
|
[droid] fix build and cleanup after Breakpad removal
|
|
[cmake] Don't repeat optional dependencies
|
|
|
|
Commit fe50635fb7a09d1576890a5d548429d55af00221 changed the behavior
of optional dependencies. ON now makes them a required dependency,
AUTO an optional one and OFF disables it. Options that were not listed
before were implicitly disabled (and supposed to be overridden in
platform specific files).
This change removes explicit options for optional dependencies from
CMakeLists.txt because they were now incorrectly made required
dependencies. In addition it adds options that default to off, because
they are now optional dependencies.
|
|
|
|
|
|
[cmake] handle optional dependencies as "auto" by default
|
|
AE: add atempo filter
|
|
[cmake/win32] Mirror system/python/* into the build-tree
|
|
[addons] fix event handling
|
|
|
|
|
|
|
|
this aligns handling of optional dependecies with autotools:
ENABLE_FOO == AUTO:
if dep is not found it will be disabled with a warning
ENABLE_FOO == ON:
if dep is not found config will fail as fatal
|
|
|
|
|
|
|
|
While shared libraries have to be built into the system folder on most
platforms, on Windows they have to go directly into the root build folder.
|
|
|
|
The function copy_file_to_buildtree is used to mirror files to the
build directory, so that Kodi can be launched from there.
The previous implementation of that function only allowed to mirror
files to the same tree structure. With this change files can be
mirrored also into different directories as this is needed for some
use cases (DLLs on Windows, certificates on IOS/OSX).
This changes the following parts:
- Patterns specified in installdata now support an optional
second parameter that specifies where the files should be mirrored to.
This parameter is optional. If specified it points to the destination
directory (relative to CMAKE_BINARY_DIR) otherwise the files are
mirrored in the same tree structure under CMAKE_BINARY_DIR.
- Mirror files for in-source-builds where necessary.
- Remove the relative parameter from copy_file_to_buildtree.
Its API was confusing and it's not necessary because the files are
always relative to CORE_SOURCE_DIR.
- Remove Windows specific hook to mirror additional files and
use the newly introduced mechanism instead.
|
|
Add an option ENABLE_STATIC_LIBS that defines if the buildsystem
creates one static library per subdirectory in xbmc/ or compiles
everything into one big library.
The option defaults to true, except for Visual Studio and Xcode,
because these generators work much better with a single big library.
The project structure in Visual Studio and Xcode is closer to the
filesystem, which cannot be realized otherwise, because they show
separate projects for each subdirectory.
Several related changes are introduced in this commit:
- dependency management had to be adapted to work in both cases
- include directories are propagated through
target_include_directories(... INTERFACE ...)
- dvdnav and crossguid are made a project wide dependency, because they
are widely used within the project.
|
|
Move setting the LANGUAGE source file properties into a function.
This is in preparation to optionally build static libraries.
This property can only be specified in the CMakeLists.txt that
generates the target. Later in the non static lib case, it will be
called in the main executable/library.
|
|
|
|
When we use the option to not build static libs per subdir, we cannot
enable assembler only in a subfolder.
Change is non intrusive it just verifies compiler support for asm
earlier in the chain.
|
|
PA was bumped to at least 2.0 in be64a578961398229ec44879afa252c9648a2f59.
|
|
Added shairplay.dll as a delay loaded lib to VS solution as well.
This does not require cmake changes to match currently
|
|
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
|
|
|
|
|
|
|