diff options
Diffstat (limited to 'cmake/scripts/linux/ArchSetup.cmake')
| -rw-r--r-- | cmake/scripts/linux/ArchSetup.cmake | 37 |
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) | |||
| 5 | endif() | 5 | endif() |
| 6 | set(SYSTEM_DEFINES -D__STDC_CONSTANT_MACROS -D_FILE_DEFINED | 6 | set(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) |
| 8 | set(PLATFORM_DIR linux) | 8 | set(PLATFORM_DIR platform/linux) |
| 9 | set(CMAKE_SYSTEM_NAME Linux) | 9 | set(CMAKE_SYSTEM_NAME Linux) |
| 10 | if(WITH_ARCH) | 10 | if(WITH_ARCH) |
| 11 | set(ARCH ${WITH_ARCH}) | 11 | set(ARCH ${WITH_ARCH}) |
| @@ -37,9 +37,32 @@ else() | |||
| 37 | endif() | 37 | endif() |
| 38 | endif() | 38 | endif() |
| 39 | 39 | ||
| 40 | # Make sure we strip binaries in Release build | 40 | if((CMAKE_BUILD_TYPE STREQUAL Release OR CMAKE_BUILD_TYPE STREQUAL MinSizeRel) |
| 41 | if(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() | ||
| 43 | endif() | 66 | endif() |
| 44 | 67 | ||
| 45 | if(KODI_DEPENDSBUILD) | 68 | if(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") |
| 65 | endif() | 88 | endif() |
| 66 | 89 | ||
| 90 | # Additional SYSTEM_DEFINES | ||
| 91 | list(APPEND SYSTEM_DEFINES -DHAS_LINUX_NETWORK) | ||
| 92 | |||
| 67 | # Code Coverage | 93 | # Code Coverage |
| 68 | if(CMAKE_BUILD_TYPE STREQUAL Coverage) | 94 | if(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 | ||
| 79 | if(ENABLE_GBM) | 105 | if(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) | 107 | endif() |
| 108 | |||
| 109 | if(ENABLE_VDPAU) | ||
| 110 | set(ENABLE_GLX ON CACHE BOOL "Enabling GLX" FORCE) | ||
| 82 | endif() | 111 | endif() |
