summaryrefslogtreecommitdiffstats
path: root/cmake/scripts/linux/ArchSetup.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/scripts/linux/ArchSetup.cmake')
-rw-r--r--cmake/scripts/linux/ArchSetup.cmake37
1 files changed, 33 insertions, 4 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()