summaryrefslogtreecommitdiffstats
path: root/cmake/scripts/linux
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/scripts/linux')
-rw-r--r--cmake/scripts/linux/ArchSetup.cmake37
-rw-r--r--cmake/scripts/linux/Install.cmake13
-rwxr-xr-xcmake/scripts/linux/clang-check-test.sh.in2
3 files changed, 39 insertions, 13 deletions
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)
5endif() 5endif()
6set(SYSTEM_DEFINES -D__STDC_CONSTANT_MACROS -D_FILE_DEFINED 6set(SYSTEM_DEFINES -D__STDC_CONSTANT_MACROS -D_FILE_DEFINED
7 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64) 7 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64)
8set(PLATFORM_DIR linux) 8set(PLATFORM_DIR platform/linux)
9set(CMAKE_SYSTEM_NAME Linux) 9set(CMAKE_SYSTEM_NAME Linux)
10if(WITH_ARCH) 10if(WITH_ARCH)
11 set(ARCH ${WITH_ARCH}) 11 set(ARCH ${WITH_ARCH})
@@ -37,9 +37,32 @@ else()
37 endif() 37 endif()
38endif() 38endif()
39 39
40# Make sure we strip binaries in Release build 40if((CMAKE_BUILD_TYPE STREQUAL Release OR CMAKE_BUILD_TYPE STREQUAL MinSizeRel)
41if(CMAKE_BUILD_TYPE STREQUAL Release AND CMAKE_COMPILER_IS_GNUCXX) 41 AND CMAKE_COMPILER_IS_GNUCXX)
42 # Make sure we strip binaries in Release build
42 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s") 43 set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -s")
44
45 # LTO Support, requires cmake >= 3.9
46 if(CMAKE_VERSION VERSION_EQUAL 3.9.0 OR CMAKE_VERSION VERSION_GREATER 3.9.0)
47 option(USE_LTO "Enable link time optimization. Specify an int for number of parallel jobs" OFF)
48 if(USE_LTO)
49 include(CheckIPOSupported)
50 check_ipo_supported(RESULT HAVE_LTO OUTPUT _output)
51 if(HAVE_LTO)
52 set(CMAKE_INTERPROCEDURAL_OPTIMIZATION TRUE)
53 # override flags to enable parallel processing
54 set(NJOBS 2)
55 if(USE_LTO MATCHES "^[0-9]+$")
56 set(NJOBS ${USE_LTO})
57 endif()
58 set(CMAKE_CXX_COMPILE_OPTIONS_IPO -flto=${NJOBS} -fno-fat-lto-objects)
59 set(CMAKE_C_COMPILE_OPTIONS_IPO -flto=${NJOBS} -fno-fat-lto-objects)
60 else()
61 message(WARNING "LTO optimization not supported: ${_output}")
62 unset(_output)
63 endif()
64 endif()
65 endif()
43endif() 66endif()
44 67
45if(KODI_DEPENDSBUILD) 68if(KODI_DEPENDSBUILD)
@@ -64,6 +87,9 @@ if(HAVE_MKOSTEMP)
64 list(APPEND ARCH_DEFINES "-DHAVE_MKOSTEMP=1" "-D_GNU_SOURCE") 87 list(APPEND ARCH_DEFINES "-DHAVE_MKOSTEMP=1" "-D_GNU_SOURCE")
65endif() 88endif()
66 89
90# Additional SYSTEM_DEFINES
91list(APPEND SYSTEM_DEFINES -DHAS_LINUX_NETWORK)
92
67# Code Coverage 93# Code Coverage
68if(CMAKE_BUILD_TYPE STREQUAL Coverage) 94if(CMAKE_BUILD_TYPE STREQUAL Coverage)
69 set(COVERAGE_TEST_BINARY ${APP_NAME_LC}-test) 95 set(COVERAGE_TEST_BINARY ${APP_NAME_LC}-test)
@@ -78,5 +104,8 @@ endif()
78 104
79if(ENABLE_GBM) 105if(ENABLE_GBM)
80 set(ENABLE_VDPAU OFF CACHE BOOL "Disabling VDPAU" FORCE) 106 set(ENABLE_VDPAU OFF CACHE BOOL "Disabling VDPAU" FORCE)
81 set(ENABLE_VAAPI OFF CACHE BOOL "Disabling VAAPI" FORCE) 107endif()
108
109if(ENABLE_VDPAU)
110 set(ENABLE_GLX ON CACHE BOOL "Enabling GLX" FORCE)
82endif() 111endif()
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()
15endif() 15endif()
16 16
17# CMake config 17# CMake config
18set(APP_BINARY ${APP_NAME_LC}${APP_BINARY_SUFFIX})
18set(APP_PREFIX ${prefix}) 19set(APP_PREFIX ${prefix})
19set(APP_LIB_DIR ${libdir}/${APP_NAME_LC}) 20set(APP_LIB_DIR ${libdir}/${APP_NAME_LC})
20set(APP_DATA_DIR ${datarootdir}/${APP_NAME_LC}) 21set(APP_DATA_DIR ${datarootdir}/${APP_NAME_LC})
@@ -146,17 +147,13 @@ if(NOT WITH_TEXTUREPACKER)
146endif() 147endif()
147 148
148# Install kodi-addon-dev headers 149# Install kodi-addon-dev headers
149install(DIRECTORY ${CMAKE_SOURCE_DIR}/xbmc/addons/kodi-addon-dev-kit/include/kodi/ 150include(${CMAKE_SOURCE_DIR}/xbmc/addons/AddonBindings.cmake)
151install(DIRECTORY ${CORE_ADDON_BINDINGS_DIRS}/
150 DESTINATION ${includedir}/${APP_NAME_LC} 152 DESTINATION ${includedir}/${APP_NAME_LC}
151 COMPONENT kodi-addon-dev 153 COMPONENT kodi-addon-dev
152 REGEX ".txt" EXCLUDE) 154 REGEX ".txt" EXCLUDE)
153 155
154install(FILES ${CMAKE_SOURCE_DIR}/xbmc/cores/VideoPlayer/DVDDemuxers/DVDDemuxPacket.h 156install(FILES ${CORE_ADDON_BINDINGS_FILES}
155 ${CMAKE_SOURCE_DIR}/xbmc/cores/VideoPlayer/DVDDemuxers/DemuxCrypto.h
156 ${CMAKE_SOURCE_DIR}/xbmc/cores/AudioEngine/Utils/AEChannelData.h
157 ${CMAKE_SOURCE_DIR}/xbmc/filesystem/IFileTypes.h
158 ${CMAKE_SOURCE_DIR}/xbmc/input/ActionIDs.h
159 ${CMAKE_SOURCE_DIR}/xbmc/input/XBMC_vkeys.h
160 DESTINATION ${includedir}/${APP_NAME_LC} 157 DESTINATION ${includedir}/${APP_NAME_LC}
161 COMPONENT kodi-addon-dev) 158 COMPONENT kodi-addon-dev)
162 159
@@ -178,7 +175,7 @@ install(FILES ${CMAKE_BINARY_DIR}/${CORE_BUILD_DIR}/scripts/${APP_NAME}Config.cm
178 COMPONENT kodi-addon-dev) 175 COMPONENT kodi-addon-dev)
179 176
180if(ENABLE_EVENTCLIENTS) 177if(ENABLE_EVENTCLIENTS)
181 execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(prefix='')" 178 execute_process(COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print(get_python_lib(prefix=''))"
182 OUTPUT_VARIABLE PYTHON_LIB_PATH OUTPUT_STRIP_TRAILING_WHITESPACE) 179 OUTPUT_VARIABLE PYTHON_LIB_PATH OUTPUT_STRIP_TRAILING_WHITESPACE)
183 # Install kodi-eventclients-common BT python files 180 # Install kodi-eventclients-common BT python files
184 install(PROGRAMS ${CMAKE_SOURCE_DIR}/tools/EventClients/lib/python/bt/__init__.py 181 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
12 12
13tmpfil=`mktemp` 13tmpfil=`mktemp`
14$clangcheck_cmd -p @CMAKE_BINARY_DIR@ -analyze $source_file &> $tmpfil 14$clangcheck_cmd -p @CMAKE_BINARY_DIR@ -analyze $source_file &> $tmpfil
15nerr=`cat $tmpfil | grep -v "warning: /usr/bin/c++: 'linker' input unused" | wc -l` 15nerr=`cat $tmpfil | grep -v "warning: .*: 'linker' input unused" | wc -l`
16if test $nerr -gt 0 16if test $nerr -gt 0
17then 17then
18 cat $tmpfil 18 cat $tmpfil