From 4830f27a40323fe859dc166337a2b861877b7121 Mon Sep 17 00:00:00 2001 From: manuel Date: Mon, 1 Jan 2018 13:40:09 +0100 Subject: sync with upstream --- cmake/scripts/linux/ArchSetup.cmake | 37 ++++++++++++++++++++++++++---- cmake/scripts/linux/Install.cmake | 13 ++++------- cmake/scripts/linux/clang-check-test.sh.in | 2 +- 3 files changed, 39 insertions(+), 13 deletions(-) (limited to 'cmake/scripts/linux') diff --git a/cmake/scripts/linux/ArchSetup.cmake b/cmake/scripts/linux/ArchSetup.cmake index 74018d0..ee69c09 100644 --- a/cmake/scripts/linux/ArchSetup.cmake +++ b/cmake/scripts/linux/ArchSetup.cmake @@ -5,7 +5,7 @@ if(CORE_PLATFORM_NAME_LC STREQUAL rbpi) endif() set(SYSTEM_DEFINES -D__STDC_CONSTANT_MACROS -D_FILE_DEFINED -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64) -set(PLATFORM_DIR linux) +set(PLATFORM_DIR platform/linux) set(CMAKE_SYSTEM_NAME Linux) if(WITH_ARCH) set(ARCH ${WITH_ARCH}) @@ -37,9 +37,32 @@ else() endif() endif() -# Make sure we strip binaries in Release build -if(CMAKE_BUILD_TYPE STREQUAL Release AND CMAKE_COMPILER_IS_GNUCXX) +if((CMAKE_BUILD_TYPE STREQUAL Release OR CMAKE_BUILD_TYPE STREQUAL MinSizeRel) + AND CMAKE_COMPILER_IS_GNUCXX) + # Make sure we strip binaries in Release build set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s") + + # LTO Support, requires cmake >= 3.9 + if(CMAKE_VERSION VERSION_EQUAL 3.9.0 OR CMAKE_VERSION VERSION_GREATER 3.9.0) + option(USE_LTO "Enable link time optimization. Specify an int for number of parallel jobs" OFF) + if(USE_LTO) + include(CheckIPOSupported) + check_ipo_supported(RESULT HAVE_LTO OUTPUT _output) + if(HAVE_LTO) + set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE) + # override flags to enable parallel processing + set(NJOBS 2) + if(USE_LTO MATCHES "^[0-9]+$") + set(NJOBS ${USE_LTO}) + endif() + set(CMAKE_CXX_COMPILE_OPTIONS_IPO -flto=${NJOBS} -fno-fat-lto-objects) + set(CMAKE_C_COMPILE_OPTIONS_IPO -flto=${NJOBS} -fno-fat-lto-objects) + else() + message(WARNING "LTO optimization not supported: ${_output}") + unset(_output) + endif() + endif() + endif() endif() if(KODI_DEPENDSBUILD) @@ -64,6 +87,9 @@ if(HAVE_MKOSTEMP) list(APPEND ARCH_DEFINES "-DHAVE_MKOSTEMP=1" "-D_GNU_SOURCE") endif() +# Additional SYSTEM_DEFINES +list(APPEND SYSTEM_DEFINES -DHAS_LINUX_NETWORK) + # Code Coverage if(CMAKE_BUILD_TYPE STREQUAL Coverage) set(COVERAGE_TEST_BINARY ${APP_NAME_LC}-test) @@ -78,5 +104,8 @@ endif() if(ENABLE_GBM) set(ENABLE_VDPAU OFF CACHE BOOL "Disabling VDPAU" FORCE) - set(ENABLE_VAAPI OFF CACHE BOOL "Disabling VAAPI" FORCE) +endif() + +if(ENABLE_VDPAU) + set(ENABLE_GLX ON CACHE BOOL "Enabling GLX" FORCE) endif() diff --git a/cmake/scripts/linux/Install.cmake b/cmake/scripts/linux/Install.cmake index 7a2705b..d6767bf 100644 --- a/cmake/scripts/linux/Install.cmake +++ b/cmake/scripts/linux/Install.cmake @@ -15,6 +15,7 @@ else() endif() # CMake config +set(APP_BINARY ${APP_NAME_LC}${APP_BINARY_SUFFIX}) set(APP_PREFIX ${prefix}) set(APP_LIB_DIR ${libdir}/${APP_NAME_LC}) set(APP_DATA_DIR ${datarootdir}/${APP_NAME_LC}) @@ -146,17 +147,13 @@ if(NOT WITH_TEXTUREPACKER) endif() # Install kodi-addon-dev headers -install(DIRECTORY ${CMAKE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/ +include(${CMAKE_SOURCE_DIR}/xbmc/addons/AddonBindings.cmake) +install(DIRECTORY ${CORE_ADDON_BINDINGS_DIRS}/ DESTINATION ${includedir}/${APP_NAME_LC} COMPONENT kodi-addon-dev REGEX ".txt" EXCLUDE) -install(FILES ${CMAKE_SOURCE_DIR}/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxPacket.h - ${CMAKE_SOURCE_DIR}/xbmc/cores/VideoPlayer/DVDDemuxers/DemuxCrypto.h - ${CMAKE_SOURCE_DIR}/xbmc/cores/AudioEngine/Utils/AEChannelData.h - ${CMAKE_SOURCE_DIR}/xbmc/filesystem/IFileTypes.h - ${CMAKE_SOURCE_DIR}/xbmc/input/ActionIDs.h - ${CMAKE_SOURCE_DIR}/xbmc/input/XBMC_vkeys.h +install(FILES ${CORE_ADDON_BINDINGS_FILES} DESTINATION ${includedir}/${APP_NAME_LC} COMPONENT kodi-addon-dev) @@ -178,7 +175,7 @@ install(FILES ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/scripts/${APP_NAME}Config.cm COMPONENT kodi-addon-dev) if(ENABLE_EVENTCLIENTS) - execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(prefix='')" + execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(prefix=''))" OUTPUT_VARIABLE PYTHON_LIB_PATH OUTPUT_STRIP_TRAILING_WHITESPACE) # Install kodi-eventclients-common BT python files install(PROGRAMS ${CMAKE_SOURCE_DIR}/tools/EventClients/lib/python/bt/__init__.py diff --git a/cmake/scripts/linux/clang-check-test.sh.in b/cmake/scripts/linux/clang-check-test.sh.in index 3b30ec1..12e9a0e 100755 --- a/cmake/scripts/linux/clang-check-test.sh.in +++ b/cmake/scripts/linux/clang-check-test.sh.in @@ -12,7 +12,7 @@ source_file=$2 tmpfil=`mktemp` $clangcheck_cmd -p @CMAKE_BINARY_DIR@ -analyze $source_file &> $tmpfil -nerr=`cat $tmpfil | grep -v "warning: /usr/bin/c++: 'linker' input unused" | wc -l` +nerr=`cat $tmpfil | grep -v "warning: .*: 'linker' input unused" | wc -l` if test $nerr -gt 0 then cat $tmpfil -- cgit v1.2.3