kodi: use cmake

This commit is contained in:
Lukas Rusak 2016-12-02 11:10:44 -08:00
parent c3203ad7b2
commit 98a96ef1f7
No known key found for this signature in database
GPG Key ID: 8C310C807E7393A3
8 changed files with 419 additions and 211 deletions

View File

@ -23,8 +23,7 @@ PKG_ARCH="any"
PKG_LICENSE="GPL"
PKG_SITE="http://www.kodi.tv"
PKG_URL="$DISTRO_SRC/$PKG_NAME-$PKG_VERSION.tar.xz"
PKG_DEPENDS_TARGET="toolchain kodi:host xmlstarlet:host Python zlib systemd pciutils lzo pcre swig:host libass curl fontconfig fribidi tinyxml libjpeg-turbo freetype libcdio taglib libxml2 libxslt yajl sqlite ffmpeg crossguid giflib libdvdnav libhdhomerun"
PKG_DEPENDS_HOST="lzo:host libpng:host libjpeg-turbo:host giflib:host"
PKG_DEPENDS_TARGET="toolchain JsonSchemaBuilder:host TexturePacker:host xmlstarlet:host Python zlib systemd pciutils lzo pcre swig:host libass curl fontconfig fribidi tinyxml libjpeg-turbo freetype libcdio taglib libxml2 libxslt yajl sqlite ffmpeg crossguid giflib libdvdnav libhdhomerun"
PKG_SECTION="mediacenter"
PKG_SHORTDESC="kodi: Kodi Mediacenter"
PKG_LONGDESC="Kodi Media Center (which was formerly named Xbox Media Center or XBMC) is a free and open source cross-platform media player and home entertainment system software with a 10-foot user interface designed for the living-room TV. Its graphical user interface allows the user to easily manage video, photos, podcasts, and music from a computer, optical disk, local network, and the internet using a remote control."
@ -32,318 +31,221 @@ PKG_LONGDESC="Kodi Media Center (which was formerly named Xbox Media Center or X
PKG_IS_ADDON="no"
PKG_AUTORECONF="no"
# configure GPU drivers and dependencies:
PKG_CMAKE_SCRIPT="$ROOT/$PKG_BUILD/project/cmake/CMakeLists.txt"
get_graphicdrivers
# for dbus support
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET dbus"
if [ "$DISPLAYSERVER" = "x11" ]; then
# for libX11 support
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libX11 libXext libdrm libXrandr"
KODI_XORG="--enable-x11"
KODI_XORG="-DENABLE_X11=ON"
else
KODI_XORG="--disable-x11"
KODI_XORG="-DENABLE_X11=OFF"
fi
if [ ! "$OPENGL" = "no" ]; then
# for OpenGL (GLX) support
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET $OPENGL glu"
KODI_OPENGL="--enable-gl"
KODI_OPENGL="-DENABLE_OPENGL=ON"
else
KODI_OPENGL="--disable-gl"
KODI_OPENGL="-DENABLE_OPENGL=OFF"
fi
if [ "$OPENGLES_SUPPORT" = yes ]; then
# for OpenGL-ES support
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET $OPENGLES"
KODI_OPENGLES="--enable-gles"
KODI_OPENGLES="-DENABLE_OPENGLES=ON"
else
KODI_OPENGLES="--disable-gles"
KODI_OPENGLES="-DENABLE_OPENGLES=OFF"
fi
if [ "$ALSA_SUPPORT" = yes ]; then
# for ALSA support
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET alsa-lib"
KODI_ALSA="--enable-alsa"
KODI_ALSA="-DENABLE_ALSA=ON"
else
KODI_ALSA="--disable-alsa"
KODI_ALSA="-DENABLE_ALSA=OFF"
fi
if [ "$PULSEAUDIO_SUPPORT" = yes ]; then
# for PulseAudio support
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET pulseaudio"
KODI_PULSEAUDIO="--enable-pulse"
KODI_PULSEAUDIO="-DENABLE_PULSEAUDIO=ON"
else
KODI_PULSEAUDIO="--disable-pulse"
KODI_PULSEAUDIO="-DENABLE_PULSEAUDIO=OFF"
fi
if [ "$ESPEAK_SUPPORT" = yes ]; then
# for espeak support
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET espeak"
fi
if [ "$CEC_SUPPORT" = yes ]; then
# for CEC support
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libcec"
KODI_CEC="--enable-libcec"
KODI_CEC="-DENABLE_CEC=ON"
else
KODI_CEC="--disable-libcec"
fi
if [ "$JOYSTICK_SUPPORT" = yes ]; then
# for Joystick support
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET SDL2"
KODI_JOYSTICK="--enable-joystick"
else
KODI_JOYSTICK="--disable-joystick"
KODI_CEC="-DENABLE_CEC=OFF"
fi
if [ "$KODI_OPTICAL_SUPPORT" = yes ]; then
KODI_OPTICAL="--enable-optical-drive"
KODI_OPTICAL="-DENABLE_OPTICAL=ON"
else
KODI_OPTICAL="--disable-optical-drive"
KODI_OPTICAL="-DENABLE_OPTICAL=OFF"
fi
if [ "$KODI_NONFREE_SUPPORT" = yes ]; then
# for non-free support
KODI_NONFREE="--enable-non-free"
KODI_NONFREE="-DENABLE_NONFREE=ON"
else
KODI_NONFREE="--disable-non-free"
KODI_NONFREE="-DENABLE_NONFREE=OFF"
fi
if [ "$KODI_DVDCSS_SUPPORT" = yes ]; then
KODI_DVDCSS="--enable-dvdcss"
KODI_DVDCSS="-DENABLE_DVDCSS=ON"
else
KODI_DVDCSS="--disable-dvdcss"
KODI_DVDCSS="-DENABLE_DVDCSS=OFF"
fi
if [ "$KODI_BLURAY_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libbluray"
KODI_BLURAY="--enable-libbluray"
KODI_BLURAY="-DENABLE_BLURAY=ON"
else
KODI_BLURAY="--disable-libbluray"
KODI_BLURAY="-DENABLE_BLURAY=OFF"
fi
if [ "$AVAHI_DAEMON" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET avahi nss-mdns"
KODI_AVAHI="--enable-avahi"
KODI_AVAHI="-DENABLE_AVAHI=ON"
else
KODI_AVAHI="--disable-avahi"
KODI_AVAHI="-DENABLE_AVAHI=OFF"
fi
if [ "$KODI_MYSQL_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET mysql"
KODI_MYSQL="--enable-mysql"
KODI_MYSQL="-DENABLE_MYSQLCLIENT=ON"
else
KODI_MYSQL="--disable-mysql"
KODI_MYSQL="-DENABLE_MYSQLCLIENT=OFF"
fi
if [ "$KODI_AIRPLAY_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libplist"
KODI_AIRPLAY="--enable-airplay"
KODI_AIRPLAY="-DENABLE_PLIST=ON"
else
KODI_AIRPLAY="--disable-airplay"
KODI_AIRPLAY="-DENABLE_PLIST=OFF"
fi
if [ "$KODI_AIRTUNES_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libshairplay"
KODI_AIRTUNES="--enable-airtunes"
KODI_AIRTUNES="-DENABLE_AIRTUNES=ON"
else
KODI_AIRTUNES="--disable-airtunes"
KODI_AIRTUNES="-DENABLE_AIRTUNES=OFF"
fi
if [ "$KODI_NFS_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libnfs"
KODI_NFS="--enable-nfs"
KODI_NFS="-DENABLE_NFS=ON"
else
KODI_NFS="--disable-nfs"
KODI_NFS="-DENABLE_NFS=OFF"
fi
if [ "$KODI_SAMBA_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET samba"
KODI_SAMBA="--enable-samba"
KODI_SAMBA="-DENABLE_SMBCLIENT=ON"
else
KODI_SAMBA="--disable-samba"
KODI_SAMBA="-DENABLE_SMBCLIENT=OFF"
fi
if [ "$KODI_WEBSERVER_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libmicrohttpd"
KODI_WEBSERVER="--enable-webserver"
else
KODI_WEBSERVER="--disable-webserver"
fi
if [ "$KODI_UPNP_SUPPORT" = yes ]; then
KODI_UPNP="--enable-upnp"
KODI_UPNP="-DENABLE_UPNP=ON"
else
KODI_UPNP="--disable-upnp"
KODI_UPNP="-DENABLE_UPNP=OFF"
fi
if [ "$KODI_SSHLIB_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libssh"
KODI_SSH="--enable-ssh"
KODI_SSH="-DENABLE_SSH=ON"
else
KODI_SSH="--disable-ssh"
fi
if [ ! "$KODIPLAYER_DRIVER" = default ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET $KODIPLAYER_DRIVER"
if [ "$KODIPLAYER_DRIVER" = bcm2835-driver ]; then
KODI_OPENMAX="--enable-openmax"
KODI_PLAYER="--enable-player=omxplayer"
KODI_CODEC="--with-platform=raspberry-pi"
BCM2835_INCLUDES="-I$SYSROOT_PREFIX/usr/include/interface/vcos/pthreads/ \
-I$SYSROOT_PREFIX/usr/include/interface/vmcs_host/linux"
KODI_CFLAGS="$KODI_CFLAGS $BCM2835_INCLUDES"
KODI_CXXFLAGS="$KODI_CXXFLAGS $BCM2835_INCLUDES"
elif [ "$KODIPLAYER_DRIVER" = libfslvpuwrap ]; then
KODI_CODEC="--enable-codec=imxvpu"
elif [ "$KODIPLAYER_DRIVER" = libamcodec ]; then
KODI_CODEC="--enable-codec=amcodec"
else
KODI_OPENMAX="--disable-openmax"
fi
KODI_SSH="-DENABLE_SSH=OFF"
fi
if [ "$VDPAU_SUPPORT" = "yes" -a "$DISPLAYSERVER" = "x11" ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libvdpau"
KODI_VDPAU="--enable-vdpau"
KODI_VDPAU="-DENABLE_VDPAU=ON"
else
KODI_VDPAU="--disable-vdpau"
KODI_VDPAU="-DENABLE_VDPAU=OFF"
fi
if [ "$VAAPI_SUPPORT" = yes ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET libva-intel-driver"
KODI_VAAPI="--enable-vaapi"
KODI_VAAPI="-DENABLE_VAAPI=ON"
else
KODI_VAAPI="--disable-vaapi"
KODI_VAAPI="-DENABLE_VAAPI=OFF"
fi
export CXX_FOR_BUILD="$HOST_CXX"
export CC_FOR_BUILD="$HOST_CC"
export CXXFLAGS_FOR_BUILD="$HOST_CXXFLAGS"
export CFLAGS_FOR_BUILD="$HOST_CFLAGS"
export LDFLAGS_FOR_BUILD="$HOST_LDFLAGS"
if [ "$TARGET_ARCH" = "x86_64" ]; then
KODI_ARCH="-DWITH_CPU=$TARGET_ARCH"
else
KODI_ARCH="-DWITH_ARCH=$TARGET_ARCH"
fi
export PYTHON_VERSION=2.7
export PYTHON_CPPFLAGS="-I$SYSROOT_PREFIX/usr/include/python$PYTHON_VERSION"
export PYTHON_LDFLAGS="-L$SYSROOT_PREFIX/usr/lib/python$PYTHON_VERSION -lpython$PYTHON_VERSION"
export PYTHON_SITE_PKG="$SYSROOT_PREFIX/usr/lib/python$PYTHON_VERSION/site-packages"
if [ ! "$KODIPLAYER_DRIVER" = default ]; then
PKG_DEPENDS_TARGET="$PKG_DEPENDS_TARGET $KODIPLAYER_DRIVER"
if [ "$KODIPLAYER_DRIVER" = bcm2835-driver ]; then
KODI_PLAYER="-DENABLE_MMAL=ON -DCORE_SYSTEM_NAME=rbpi"
elif [ "$KODIPLAYER_DRIVER" = libfslvpuwrap ]; then
KODI_PLAYER="-DENABLE_IMX=ON"
CFLAGS="$CFLAGS -DHAS_IMXVPU -DLINUX -DEGL_API_FB"
CXXFLAGS="$CXXFLAGS -DHAS_IMXVPU -DLINUX -DEGL_API_FB"
elif [ "$KODIPLAYER_DRIVER" = libamcodec ]; then
KODI_PLAYER="-DENABLE_AML=ON"
fi
fi
PKG_CONFIGURE_OPTS_TARGET="gl_cv_func_gettimeofday_clobber=no \
ac_python_version=$PYTHON_VERSION \
--disable-libbluetooth \
--disable-debug \
--disable-optimizations \
$KODI_OPENGL \
$KODI_OPENGLES \
$KODI_OPENMAX \
$KODI_VDPAU \
$KODI_VAAPI \
--disable-vtbdecoder \
--disable-tegra \
--disable-profiling \
$KODI_JOYSTICK \
$KODI_CEC \
--enable-udev \
--disable-libusb \
$KODI_XORG \
--disable-ccache \
$KODI_ALSA \
$KODI_PULSEAUDIO \
$KODI_SAMBA \
$KODI_NFS \
--disable-libcap \
$KODI_DVDCSS \
--disable-mid \
$KODI_AVAHI \
$KODI_UPNP \
$KODI_MYSQL \
$KODI_SSH \
$KODI_AIRPLAY \
$KODI_AIRTUNES \
--enable-gif \
$KODI_NONFREE \
--disable-asap-codec \
$KODI_WEBSERVER \
$KODI_OPTICAL \
$KODI_BLURAY \
--enable-texturepacker \
--with-ffmpeg=shared \
$KODI_CODEC \
$KODI_PLAYER"
pre_configure_host() {
# kodi fails to build in subdirs
rm -rf $ROOT/$PKG_BUILD/.$HOST_NAME
}
configure_host() {
: # not needed
}
make_host() {
mkdir -p $ROOT/$PKG_BUILD/tools/depends/native/JsonSchemaBuilder/bin && cd $_
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
-DCMAKE_INSTALL_PREFIX=/usr \
..
make
mkdir -p $ROOT/$PKG_BUILD/tools/depends/native/TexturePacker/bin && cd $_
cmake -DCMAKE_TOOLCHAIN_FILE=$CMAKE_CONF \
-DCMAKE_INSTALL_PREFIX=/usr \
-DCORE_SOURCE_DIR=$ROOT/$PKG_BUILD \
-DCMAKE_CXX_FLAGS="-std=c++11 -DTARGET_POSIX -DTARGET_LINUX -D_LINUX -I$ROOT/$PKG_BUILD/xbmc/linux" \
..
make
}
makeinstall_host() {
cp -P $ROOT/$PKG_BUILD/tools/depends/native/TexturePacker/bin/TexturePacker $ROOT/$TOOLCHAIN/bin
}
pre_build_target() {
# adding fake Makefile for stripped skin
mkdir -p $ROOT/$PKG_BUILD/addons/skin.estuary/media
touch $ROOT/$PKG_BUILD/addons/skin.estuary/media/Makefile.in
}
PKG_CMAKE_OPTS_TARGET="-DNATIVEPREFIX=$ROOT/$TOOLCHAIN \
-DWITH_TEXTUREPACKER=$ROOT/$TOOLCHAIN/bin/TexturePacker \
-DDEPENDS_PATH=$ROOT/$PKG_BUILD/depends \
-DPYTHON_INCLUDE_DIRS=$SYSROOT_PREFIX/usr/include/python2.7 \
-DGIT_VERSION=$PKG_VERSION \
-DENABLE_INTERNAL_FFMPEG=OFF \
-DFFMPEG_INCLUDE_DIRS=$SYSROOT_PREFIX/usr \
-DENABLE_INTERNAL_CROSSGUID=OFF \
-DENABLE_SDL=OFF \
-DENABLE_OPENSSL=ON \
-DENABLE_UDEV=ON \
-DENABLE_DBUS=ON \
-DENABLE_XSLT=ON \
-DENABLE_CCACHE=ON \
-DENABLE_LIRC=ON \
-DENABLE_EVENTCLIENTS=ON \
-DENABLE_LDGOLD=OFF \
$KODI_ARCH \
$KODI_OPENGL \
$KODI_OPENGLES \
$KODI_OPENMAX \
$KODI_VDPAU \
$KODI_VAAPI \
$KODI_JOYSTICK \
$KODI_CEC \
$KODI_XORG \
$KODI_SAMBA \
$KODI_NFS \
$KODI_DVDCSS \
$KODI_AVAHI \
$KODI_UPNP \
$KODI_MYSQL \
$KODI_SSH \
$KODI_AIRPLAY \
$KODI_AIRTUNES \
$KODI_NONFREE \
$KODI_OPTICAL \
$KODI_BLURAY \
$KODI_PLAYER"
pre_configure_target() {
# kodi fails to build in subdirs
rm -rf $ROOT/$PKG_BUILD/.$TARGET_NAME
# kodi should never be built with lto
strip_lto
strip_gold
export CFLAGS="$CFLAGS $KODI_CFLAGS"
export CXXFLAGS="$CXXFLAGS $KODI_CXXFLAGS"
export LIBS="$LIBS -lz"
export JSON_BUILDER=$ROOT/$TOOLCHAIN/bin/JsonSchemaBuilder
# libdvd
cp -P $PKG_DIR/libdvd/libdvd-makefile.in $ROOT/$PKG_BUILD/lib/libdvd/Makefile.in
export DVD_PREFIX="$SYSROOT_PREFIX"
# autoreconf
BOOTSTRAP_STANDALONE=1 make -f $ROOT/$PKG_BUILD/bootstrap.mk
}
make_target() {
# setup skin dir from default skin
SKIN_DIR="skin.`tolower $SKIN_DEFAULT`"
# setup default skin inside the sources
sed -i -e "s|skin.estuary|$SKIN_DIR|g" $ROOT/$PKG_BUILD/xbmc/system.h
sed -i -e "s|skin.estuary|$SKIN_DIR|g" $ROOT/$PKG_BUILD/system/settings/settings.xml
make externals
make kodi.bin
if [ "$DISPLAYSERVER" = "x11" ]; then
make kodi-xrandr
fi
export LIBS="$LIBS -lz -lterminfo"
}
post_makeinstall_target() {
@ -351,14 +253,17 @@ post_makeinstall_target() {
rm -rf $INSTALL/usr/bin/kodi-standalone
rm -rf $INSTALL/usr/bin/xbmc
rm -rf $INSTALL/usr/bin/xbmc-standalone
rm -rf $INSTALL/usr/lib/kodi/*.cmake
rm -rf $INSTALL/usr/share/kodi/cmake
rm -rf $INSTALL/usr/share/applications
rm -rf $INSTALL/usr/share/icons
rm -rf $INSTALL/usr/share/pixmaps
rm -rf $INSTALL/usr/share/kodi/addons/skin.estouchy
rm -rf $INSTALL/usr/share/kodi/addons/service.xbmc.versioncheck
rm -rf $INSTALL/usr/share/kodi/addons/visualization.vortex
rm -rf $INSTALL/usr/share/xsessions
mv $INSTALL/usr/lib/python2.7/dist-packages $INSTALL/usr/lib/python2.7/site-packages
mkdir -p $INSTALL/usr/lib/kodi
cp $PKG_DIR/scripts/kodi-config $INSTALL/usr/lib/kodi
cp $PKG_DIR/scripts/kodi.sh $INSTALL/usr/lib/kodi
@ -370,11 +275,6 @@ post_makeinstall_target() {
cp $PKG_DIR/scripts/cputemp $INSTALL/usr/bin
ln -sf cputemp $INSTALL/usr/bin/gputemp
cp $PKG_DIR/scripts/setwakeup.sh $INSTALL/usr/bin
cp tools/EventClients/Clients/Kodi\ Send/kodi-send.py $INSTALL/usr/bin/kodi-send
if [ ! "$DISPLAYSERVER" = "x11" ]; then
rm -rf $INSTALL/usr/lib/kodi/kodi-xrandr
fi
mkdir -p $INSTALL/usr/share/kodi/addons
cp -R $PKG_DIR/config/os.openelec.tv $INSTALL/usr/share/kodi/addons
@ -385,9 +285,6 @@ post_makeinstall_target() {
$SED "s|@ADDON_URL@|$ADDON_URL|g" -i $INSTALL/usr/share/kodi/addons/repository.libreelec.tv/addon.xml
cp -R $PKG_DIR/config/repository.kodi.game $INSTALL/usr/share/kodi/addons
mkdir -p $INSTALL/usr/lib/python$PYTHON_VERSION/site-packages/kodi
cp -R tools/EventClients/lib/python/* $INSTALL/usr/lib/python$PYTHON_VERSION/site-packages/kodi
mkdir -p $INSTALL/usr/share/kodi/config
cp $PKG_DIR/config/guisettings.xml $INSTALL/usr/share/kodi/config
cp $PKG_DIR/config/sources.xml $INSTALL/usr/share/kodi/config
@ -434,7 +331,9 @@ post_makeinstall_target() {
xmlstarlet ed -L --subnode "/addons" -t elem -n "addon" -v "service.libreelec.settings" $ADDON_MANIFEST
# more binaddons cross compile badness meh
sed -i -e "s:INCLUDE_DIR /usr/include/kodi:INCLUDE_DIR $SYSROOT_PREFIX/usr/include/kodi:g" $SYSROOT_PREFIX/usr/lib/kodi/KodiConfig.cmake
sed -e "s:INCLUDE_DIR /usr/include/kodi:INCLUDE_DIR $SYSROOT_PREFIX/usr/include/kodi:g" \
-e "s:CMAKE_MODULE_PATH /usr/lib/kodi /usr/share/kodi/cmake:CMAKE_MODULE_PATH $SYSROOT_PREFIX/usr/share/kodi/cmake:g" \
-i $SYSROOT_PREFIX/usr/share/kodi/cmake/KodiConfig.cmake
if [ "$KODI_EXTRA_FONTS" = yes ]; then
mkdir -p $INSTALL/usr/share/kodi/media/Fonts
@ -445,10 +344,10 @@ post_makeinstall_target() {
}
post_install() {
# link default.target to kodi.target
# link default.target to kodi.target
ln -sf kodi.target $INSTALL/usr/lib/systemd/system/default.target
# enable default services
# enable default services
enable_service kodi-autostart.service
enable_service kodi-cleanlogs.service
enable_service kodi-halt.service

View File

@ -0,0 +1,41 @@
diff -Naur a/project/cmake/modules/FindPulseAudio.cmake b/project/cmake/modules/FindPulseAudio.cmake
--- a/project/cmake/modules/FindPulseAudio.cmake 2016-09-17 08:35:33.000000000 -0700
+++ b/project/cmake/modules/FindPulseAudio.cmake 2016-09-22 22:36:22.818788337 -0700
@@ -29,9 +29,6 @@
find_library(PULSEAUDIO_LIBRARY NAMES pulse libpulse
PATHS ${PC_PULSEAUDIO_LIBDIR} ${PC_PULSEAUDIO_LIBRARY_DIRS})
-find_library(PULSEAUDIO_MAINLOOP_LIBRARY NAMES pulse-mainloop pulse-mainloop-glib libpulse-mainloop-glib
- PATHS ${PC_PULSEAUDIO_LIBDIR} ${PC_PULSEAUDIO_LIBRARY_DIRS})
-
if(PC_PULSEAUDIO_VERSION)
set(PULSEAUDIO_VERSION_STRING ${PC_PULSEAUDIO_VERSION})
elseif(PULSEAUDIO_INCLUDE_DIR AND EXISTS "${PULSEAUDIO_INCLUDE_DIR}/pulse/version.h")
@@ -42,19 +39,14 @@
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(PulseAudio
- REQUIRED_VARS PULSEAUDIO_LIBRARY PULSEAUDIO_MAINLOOP_LIBRARY PULSEAUDIO_INCLUDE_DIR
+ REQUIRED_VARS PULSEAUDIO_LIBRARY PULSEAUDIO_INCLUDE_DIR
VERSION_VAR PULSEAUDIO_VERSION_STRING)
if(PULSEAUDIO_FOUND)
set(PULSEAUDIO_INCLUDE_DIRS ${PULSEAUDIO_INCLUDE_DIR})
- set(PULSEAUDIO_LIBRARIES ${PULSEAUDIO_LIBRARY} ${PULSEAUDIO_MAINLOOP_LIBRARY})
+ set(PULSEAUDIO_LIBRARIES ${PULSEAUDIO_LIBRARY})
set(PULSEAUDIO_DEFINITIONS -DHAVE_LIBPULSE=1)
- if(NOT TARGET PulseAudio::PulseAudioMainloop)
- add_library(PulseAudio::PulseAudioMainloop UNKNOWN IMPORTED)
- set_target_properties(PulseAudio::PulseAudioMainloop PROPERTIES
- IMPORTED_LOCATION "${PULSEAUDIO_MAINLOOP_LIBRARY}")
- endif()
if(NOT TARGET PulseAudio::PulseAudio)
add_library(PulseAudio::PulseAudio UNKNOWN IMPORTED)
set_target_properties(PulseAudio::PulseAudio PROPERTIES
@@ -65,4 +57,4 @@
endif()
endif()
-mark_as_advanced(PULSEAUDIO_INCLUDE_DIR PULSEAUDIO_LIBRARY PULSEAUDIO_MAINLOOP_LIBRARY)
+mark_as_advanced(PULSEAUDIO_INCLUDE_DIR PULSEAUDIO_LIBRARY)

View File

@ -0,0 +1,12 @@
diff -Naur a/project/cmake/modules/FindPython.cmake b/project/cmake/modules/FindPython.cmake
--- a/project/cmake/modules/FindPython.cmake 2016-11-30 13:39:56.000000000 -0800
+++ b/project/cmake/modules/FindPython.cmake 2016-11-30 20:55:52.581465246 -0800
@@ -16,8 +16,6 @@
if(CMAKE_CROSSCOMPILING)
find_library(FFI_LIBRARY ffi REQUIRED)
find_library(EXPAT_LIBRARY expat REQUIRED)
- find_library(INTL_LIBRARY intl REQUIRED)
- find_library(GMP_LIBRARY gmp REQUIRED)
if(NOT CORE_SYSTEM_NAME STREQUAL android)
set(PYTHON_DEP_LIBRARIES -lpthread -ldl -lutil)

View File

@ -0,0 +1,23 @@
diff -Naur a/project/cmake/CMakeLists.txt b/project/cmake/CMakeLists.txt
--- a/project/cmake/CMakeLists.txt 2016-11-30 20:56:15.081681608 -0800
+++ b/project/cmake/CMakeLists.txt 2016-11-30 20:57:19.179297961 -0800
@@ -283,10 +283,6 @@
copy_skin_to_buildtree(${dir} ${relative})
endforeach()
-add_custom_target(pack-skins ALL
- DEPENDS TexturePacker::TexturePacker export-files ${XBT_FILES})
-set_target_properties(pack-skins PROPERTIES FOLDER "Build Utilities")
-
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/system/players/VideoPlayer)
set(LIBCEC_SONAME "${CEC_SONAME}")
@@ -330,7 +326,7 @@
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined")
add_library(${APP_NAME_LC} SHARED ${CORE_MAIN_SOURCE} "${RESOURCES}" ${OTHER_FILES})
endif()
-add_dependencies(${APP_NAME_LC} ${APP_NAME_LC}-libraries export-files pack-skins)
+add_dependencies(${APP_NAME_LC} ${APP_NAME_LC}-libraries export-files)
whole_archive(_MAIN_LIBRARIES ${core_DEPENDS})
target_link_libraries(${APP_NAME_LC} ${_MAIN_LIBRARIES} lib${APP_NAME_LC} ${DEPLIBS})
unset(_MAIN_LIBRARIES)

View File

@ -0,0 +1,49 @@
diff -Naur a/project/cmake/modules/FindSmbClient.cmake b/project/cmake/modules/FindSmbClient.cmake
--- a/project/cmake/modules/FindSmbClient.cmake 2016-09-17 08:35:33.000000000 -0700
+++ b/project/cmake/modules/FindSmbClient.cmake 2016-09-25 13:38:38.969125892 -0700
@@ -14,7 +14,7 @@
#
# SmbClient::SmbClient - The SmbClient library
-if(PKGCONFIG_FOUND)
+if(PKG_CONFIG_FOUND)
pkg_check_modules(PC_SMBCLIENT smbclient QUIET)
endif()
@@ -23,15 +23,35 @@
find_library(SMBCLIENT_LIBRARY NAMES smbclient
PATHS ${PC_SMBCLIENT_LIBDIR})
+# check if smbclient libs are statically linked
+set(SMBCLIENT_LIB_TYPE SHARED)
+if(PC_SMBCLIENT_STATIC_LDFLAGS)
+ set(SMBCLIENT_LDFLAGS ${PC_SMBCLIENT_STATIC_LDFLAGS} CACHE STRING "smbclient linker flags" FORCE)
+ set(SMBCLIENT_LIB_TYPE STATIC)
+# string(REGEX REPLACE ";" " " SMBCLIENT_STATIC_LIBRARIES ${PC_SMBCLIENTS_STATIC_LIBRARIES})
+# foreach(_smblib IN LISTS ${SMBCLIENT_STATIC_LIBRARIES})
+# string(TOUPPER ${_smblib}_LIBRARY SMBCLIENT_STATIC_LIBRARIES)
+# find_library(${SMBCLIENT_STATIC_LIBRARIES} ${_smblib})
+# endforeach()
+
+ find_library(TALLOC_LIBRARY talloc)
+ find_library(TDB_LIBRARY tdb)
+ find_library(TEVENT_LIBRARY tevent)
+ find_library(WBCLIENT_LIBRARY wbclient)
+ find_library(RESOLV_LIBRARY resolv)
+
+endif()
+
set(SMBCLIENT_VERSION ${PC_SMBCLIENT_VERSION})
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(SmbClient
REQUIRED_VARS SMBCLIENT_LIBRARY SMBCLIENT_INCLUDE_DIR
+ TALLOC_LIBRARY TDB_LIBRARY TEVENT_LIBRARY WBCLIENT_LIBRARY RESOLV_LIBRARY
VERSION_VAR SMBCLIENT_VERSION)
if(SMBCLIENT_FOUND)
- set(SMBCLIENT_LIBRARIES ${SMBCLIENT_LIBRARY})
+ set(SMBCLIENT_LIBRARIES ${SMBCLIENT_LIBRARY} ${TALLOC_LIBRARY} ${TDB_LIBRARY} ${TEVENT_LIBRARY} ${WBCLIENT_LIBRARY} ${RESOLV_LIBRARY})
set(SMBCLIENT_INCLUDE_DIRS ${SMBCLIENT_INCLUDE_DIR})
set(SMBCLIENT_DEFINITIONS -DHAVE_LIBSMBCLIENT=1)

View File

@ -0,0 +1,39 @@
diff -Naur a/project/cmake/CMakeLists.txt b/project/cmake/CMakeLists.txt
--- a/project/cmake/CMakeLists.txt 2016-11-30 21:02:11.947113135 -0800
+++ b/project/cmake/CMakeLists.txt 2016-11-30 21:02:41.399396354 -0800
@@ -273,16 +273,6 @@
copy_files_from_filelist_to_buildtree(${PROJECT_SOURCE_DIR}/installdata/common/*.txt
${PROJECT_SOURCE_DIR}/installdata/${CORE_SYSTEM_NAME}/*.txt)
-list(APPEND SKINS "${CORE_SOURCE_DIR}/addons/skin.estuary\;${CORE_SOURCE_DIR}")
-list(APPEND SKINS "${CORE_SOURCE_DIR}/addons/skin.estouchy\;${CORE_SOURCE_DIR}")
-
-# These are skins that are copied into place from the source tree
-foreach(skin ${SKINS})
- list(GET skin 0 dir)
- list(GET skin 1 relative)
- copy_skin_to_buildtree(${dir} ${relative})
-endforeach()
-
file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/system/players/VideoPlayer)
set(LIBCEC_SONAME "${CEC_SONAME}")
diff -Naur a/project/cmake/scripts/linux/Install.cmake b/project/cmake/scripts/linux/Install.cmake
--- a/project/cmake/scripts/linux/Install.cmake 2016-11-30 21:02:11.951113174 -0800
+++ b/project/cmake/scripts/linux/Install.cmake 2016-11-30 21:02:50.984488519 -0800
@@ -307,15 +307,6 @@
DESTINATION ${includedir}/${APP_NAME_LC}
COMPONENT kodi-peripheral-dev)
-# Install XBT skin files
-foreach(texture ${XBT_FILES})
- string(REPLACE "${CMAKE_BINARY_DIR}/" "" dir ${texture})
- get_filename_component(dir ${dir} DIRECTORY)
- install(FILES ${texture}
- DESTINATION ${datarootdir}/${APP_NAME_LC}/${dir}
- COMPONENT kodi)
-endforeach()
-
# Install extra stuff if it exists
if(EXISTS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/extra-installs)
install(CODE "file(STRINGS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/extra-installs dirs)

View File

@ -0,0 +1,118 @@
commit 0e78af21ce3fff4c9f4424e1ce99880a79ef4113
Author: Lukas Rusak <lorusak@gmail.com>
Date: Sun Sep 25 15:26:18 2016 -0700
[cmake][IMX] fix imx cmake build
diff --git a/project/cmake/CMakeLists.txt b/project/cmake/CMakeLists.txt
index 76870a4..8602a52 100644
--- a/project/cmake/CMakeLists.txt
+++ b/project/cmake/CMakeLists.txt
@@ -56,6 +56,7 @@ if(UNIX)
if(CORE_SYSTEM_NAME STREQUAL linux OR CORE_SYSTEM_NAME STREQUAL freebsd)
option(ENABLE_X11 "Enable X11 support?" ON)
option(ENABLE_AML "Enable AML?" OFF)
+ option(ENABLE_IMX "Enable IMX?" OFF)
endif()
endif()
# System options
@@ -216,6 +217,7 @@ endif()
if(CORE_SYSTEM_NAME STREQUAL android OR CORE_SYSTEM_NAME STREQUAL linux)
core_optional_dep(AML)
+ core_optional_dep(IMX)
elseif(CORE_SYSTEM_NAME STREQUAL rbpi)
core_require_dep(MMAL)
endif()
diff --git a/project/cmake/modules/FindIMX.cmake b/project/cmake/modules/FindIMX.cmake
new file mode 100644
index 0000000..4e1e838
--- /dev/null
+++ b/project/cmake/modules/FindIMX.cmake
@@ -0,0 +1,35 @@
+#.rst:
+# FindIMX
+# -------
+# Finds the IMX codec
+#
+# This will will define the following variables::
+#
+# IMX_FOUND - system has IMX
+# IMX_INCLUDE_DIRS - the IMX include directory
+# IMX_DEFINITIONS - the IMX definitions
+# IMX_LIBRARIES - the IMX libraries
+
+if(PKG_CONFIG_FOUND)
+ pkg_check_modules(IMX fslvpuwrap QUIET)
+endif()
+
+if(NOT IMX_FOUND)
+ find_path(IMX_INCLUDE_DIR vpu_wrapper.h
+ PATH_SUFFIXES imx-mm/vpu)
+
+ find_library(FSLVPUWRAP_LIBRARY fslvpuwrap)
+ find_library(VPU_LIBRARY vpu)
+ find_library(G2D_LIBRARY g2d)
+
+ set(IMX_LIBRARIES ${FSLVPUWRAP_LIBRARY} ${VPU_LIBRARY} ${G2D_LIBRARY}
+ CACHE STRING "imx libraries" FORCE)
+endif()
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(IMX
+ REQUIRED_VARS IMX_INCLUDE_DIR IMX_LIBRARIES)
+
+list(APPEND IMXVPU_DEFINITIONS -DHAS_IMXVPU=1 -DLINUX -DEGL_API_FB)
+
+mark_as_advanced(IMX_INCLUDE_DIR IMX_LIBRARIES IMX_DEFINITIONS)
diff --git a/xbmc/linux/CMakeLists.txt b/xbmc/linux/CMakeLists.txt
index 754cc1e..931c10d 100644
--- a/xbmc/linux/CMakeLists.txt
+++ b/xbmc/linux/CMakeLists.txt
@@ -40,4 +40,8 @@ if(OMXLIB_FOUND)
OMXCore.h)
endif()
+if(IMX_FOUND)
+ add_subdirectory(imx)
+endif()
+
core_add_library(linuxsupport)
diff --git a/xbmc/video/videosync/CMakeLists.txt b/xbmc/video/videosync/CMakeLists.txt
index 421af44..82f7169 100644
--- a/xbmc/video/videosync/CMakeLists.txt
+++ b/xbmc/video/videosync/CMakeLists.txt
@@ -35,6 +35,11 @@ if(CORE_SYSTEM_NAME STREQUAL android)
list(APPEND HEADERS VideoSyncAndroid.h)
endif()
+if(IMX_FOUND)
+ list(APPEND SOURCES VideoSyncIMX.cpp)
+ list(APPEND HEADERS VideoSyncIMX.h)
+endif()
+
if(SOURCES AND HEADERS)
core_add_library(video_sync)
endif()
diff --git a/xbmc/windowing/egl/CMakeLists.txt b/xbmc/windowing/egl/CMakeLists.txt
index 3ab603e..51e13ab 100644
--- a/xbmc/windowing/egl/CMakeLists.txt
+++ b/xbmc/windowing/egl/CMakeLists.txt
@@ -1,4 +1,4 @@
-if(OPENGLES_FOUND OR AML_FOUND OR MMAL_FOUND)
+if(OPENGLES_FOUND OR AML_FOUND OR IMX_FOUND OR MMAL_FOUND)
set(SOURCES EGLWrapper.cpp)
set(HEADERS EGLNativeType.h
@@ -30,6 +30,11 @@ if(MMAL_FOUND)
list(APPEND HEADERS EGLNativeTypeRaspberryPI.h)
endif()
+if(IMX_FOUND)
+ list(APPEND SOURCES EGLNativeTypeIMX.cpp)
+ list(APPEND HEADERS EGLNativeTypeIMX.h)
+endif()
+
if(SOURCES)
core_add_library(windowing_egl)
endif()

View File

@ -0,0 +1,27 @@
diff -Naur a/project/cmake/scripts/linux/ExtraTargets.cmake b/project/cmake/scripts/linux/ExtraTargets.cmake
--- a/project/cmake/scripts/linux/ExtraTargets.cmake 2016-09-17 08:35:33.000000000 -0700
+++ b/project/cmake/scripts/linux/ExtraTargets.cmake 2016-09-28 00:29:12.861577741 -0700
@@ -5,8 +5,3 @@
add_executable(${APP_NAME_LC}-xrandr ${CORE_SOURCE_DIR}/xbmc-xrandr.c)
target_link_libraries(kodi-xrandr ${SYSTEM_LDFLAGS} ${X_LIBRARIES} m ${XRANDR_LIBRARIES})
endif()
-
-# WiiRemote
-if(ENABLE_EVENTCLIENTS)
- add_subdirectory(${CORE_SOURCE_DIR}/tools/EventClients/Clients/WiiRemote build/WiiRemote)
-endif()
diff -Naur a/project/cmake/scripts/linux/Install.cmake b/project/cmake/scripts/linux/Install.cmake
--- a/project/cmake/scripts/linux/Install.cmake 2016-11-19 11:55:17.791608457 -0800
+++ b/project/cmake/scripts/linux/Install.cmake 2016-11-19 11:55:44.860880383 -0800
@@ -256,11 +256,6 @@
DESTINATION ${bindir}
COMPONENT kodi-eventclients-ps3)
- # Install kodi-eventclients-wiiremote
- install(PROGRAMS ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/WiiRemote/${APP_NAME_LC}-wiiremote
- DESTINATION ${bindir}
- COMPONENT kodi-eventclients-wiiremote)
-
# Install kodi-eventclients-xbmc-send
install(PROGRAMS "${CORE_SOURCE_DIR}/tools/EventClients/Clients/Kodi Send/kodi-send.py"
RENAME ${APP_NAME_LC}-send