diff options
Diffstat (limited to 'cmake')
| -rw-r--r-- | cmake/modules/FindBluray.cmake | 13 | ||||
| -rw-r--r-- | cmake/platform/windows/defines.txt | 2 | ||||
| -rw-r--r-- | cmake/scripts/android/Install.cmake | 31 | ||||
| -rw-r--r-- | cmake/scripts/common/Macros.cmake | 4 | ||||
| -rw-r--r-- | cmake/scripts/common/ProjectMacros.cmake | 33 | ||||
| -rwxr-xr-x | cmake/scripts/linux/clang-check-test.sh.in | 24 | ||||
| -rwxr-xr-x | cmake/scripts/linux/cppcheck-test.sh.in | 28 | ||||
| -rw-r--r-- | cmake/scripts/windows/ArchSetup.cmake | 2 | ||||
| -rw-r--r-- | cmake/scripts/windows/tools/patch.cmake | 2 |
9 files changed, 119 insertions, 20 deletions
diff --git a/cmake/modules/FindBluray.cmake b/cmake/modules/FindBluray.cmake index 9e5bf08..010fdf1 100644 --- a/cmake/modules/FindBluray.cmake +++ b/cmake/modules/FindBluray.cmake | |||
| @@ -14,14 +14,21 @@ | |||
| 14 | # | 14 | # |
| 15 | # Bluray::Bluray - The libbluray library | 15 | # Bluray::Bluray - The libbluray library |
| 16 | 16 | ||
| 17 | set(Bluray_FIND_VERSION 0.9.3) | ||
| 17 | if(PKG_CONFIG_FOUND) | 18 | if(PKG_CONFIG_FOUND) |
| 18 | pkg_check_modules(PC_BLURAY libbluray>=0.9.3 QUIET) | 19 | pkg_check_modules(PC_BLURAY libbluray>=${Bluray_FIND_VERSION} QUIET) |
| 20 | set(BLURAY_VERSION ${PC_BLURAY_VERSION}) | ||
| 19 | endif() | 21 | endif() |
| 20 | 22 | ||
| 21 | find_path(BLURAY_INCLUDE_DIR libbluray/bluray.h | 23 | find_path(BLURAY_INCLUDE_DIR libbluray/bluray.h |
| 22 | PATHS ${PC_BLURAY_INCLUDEDIR}) | 24 | PATHS ${PC_BLURAY_INCLUDEDIR}) |
| 23 | 25 | ||
| 24 | set(BLURAY_VERSION ${PC_BLURAY_VERSION}) | 26 | if(NOT BLURAY_VERSION AND EXISTS ${BLURAY_INCLUDE_DIR}/libbluray/bluray-version.h) |
| 27 | file(STRINGS ${BLURAY_INCLUDE_DIR}/libbluray/bluray-version.h _bluray_version_str | ||
| 28 | REGEX "#define[ \t]BLURAY_VERSION_STRING[ \t][\"]?[0-9.]+[\"]?") | ||
| 29 | string(REGEX REPLACE "^.*BLURAY_VERSION_STRING[ \t][\"]?([0-9.]+).*$" "\\1" BLURAY_VERSION ${_bluray_version_str}) | ||
| 30 | unset(_bluray_version_str) | ||
| 31 | endif() | ||
| 25 | 32 | ||
| 26 | include(FindPackageHandleStandardArgs) | 33 | include(FindPackageHandleStandardArgs) |
| 27 | if(NOT WIN32) | 34 | if(NOT WIN32) |
| @@ -29,7 +36,7 @@ if(NOT WIN32) | |||
| 29 | PATHS ${PC_BLURAY_LIBDIR}) | 36 | PATHS ${PC_BLURAY_LIBDIR}) |
| 30 | 37 | ||
| 31 | find_package_handle_standard_args(Bluray | 38 | find_package_handle_standard_args(Bluray |
| 32 | REQUIRED_VARS BLURAY_LIBRARY BLURAY_INCLUDE_DIR | 39 | REQUIRED_VARS BLURAY_LIBRARY BLURAY_INCLUDE_DIR BLURAY_VERSION |
| 33 | VERSION_VAR BLURAY_VERSION) | 40 | VERSION_VAR BLURAY_VERSION) |
| 34 | else() | 41 | else() |
| 35 | # Dynamically loaded DLL | 42 | # Dynamically loaded DLL |
diff --git a/cmake/platform/windows/defines.txt b/cmake/platform/windows/defines.txt index 2482237..1a7609a 100644 --- a/cmake/platform/windows/defines.txt +++ b/cmake/platform/windows/defines.txt | |||
| @@ -1 +1 @@ | |||
| -DTARGET_WINDOWS -DNOMINMAX -D_CRT_SECURE_NO_WARNINGS -D_WINSOCKAPI_ \ No newline at end of file | -DTARGET_WINDOWS -DTARGET_WINDOWS_DESKTOP -DNOMINMAX -D_CRT_SECURE_NO_WARNINGS -D_WINSOCKAPI_ \ No newline at end of file | ||
diff --git a/cmake/scripts/android/Install.cmake b/cmake/scripts/android/Install.cmake index 4065fc3..b815c30 100644 --- a/cmake/scripts/android/Install.cmake +++ b/cmake/scripts/android/Install.cmake | |||
| @@ -34,20 +34,23 @@ set(package_files strings.xml | |||
| 34 | colors.xml | 34 | colors.xml |
| 35 | searchable.xml | 35 | searchable.xml |
| 36 | AndroidManifest.xml | 36 | AndroidManifest.xml |
| 37 | src/org/xbmc/kodi/Main.java | 37 | src/Main.java |
| 38 | src/org/xbmc/kodi/Splash.java | 38 | src/Splash.java |
| 39 | src/org/xbmc/kodi/XBMCBroadcastReceiver.java | 39 | src/XBMCBroadcastReceiver.java |
| 40 | src/org/xbmc/kodi/XBMCImageContentProvider.java | 40 | src/XBMCImageContentProvider.java |
| 41 | src/org/xbmc/kodi/XBMCInputDeviceListener.java | 41 | src/XBMCInputDeviceListener.java |
| 42 | src/org/xbmc/kodi/XBMCJsonRPC.java | 42 | src/XBMCJsonRPC.java |
| 43 | src/org/xbmc/kodi/XBMCMediaContentProvider.java | 43 | src/XBMCMediaContentProvider.java |
| 44 | src/org/xbmc/kodi/XBMCRecommendationBuilder.java | 44 | src/XBMCRecommendationBuilder.java |
| 45 | src/org/xbmc/kodi/XBMCSearchableActivity.java | 45 | src/XBMCSearchableActivity.java |
| 46 | src/org/xbmc/kodi/XBMCSettingsContentObserver.java | 46 | src/XBMCSettingsContentObserver.java |
| 47 | src/org/xbmc/kodi/XBMCProperties.java | 47 | src/XBMCProperties.java |
| 48 | src/org/xbmc/kodi/XBMCVideoView.java | 48 | src/XBMCVideoView.java |
| 49 | src/org/xbmc/kodi/interfaces/XBMCAudioManagerOnAudioFocusChangeListener.java | 49 | src/interfaces/XBMCAudioManagerOnAudioFocusChangeListener.java |
| 50 | src/org/xbmc/kodi/interfaces/XBMCSurfaceTextureOnFrameAvailableListener.java | 50 | src/interfaces/XBMCSurfaceTextureOnFrameAvailableListener.java |
| 51 | src/interfaces/XBMCNsdManagerDiscoveryListener.java | ||
| 52 | src/interfaces/XBMCNsdManagerRegistrationListener.java | ||
| 53 | src/interfaces/XBMCNsdManagerResolveListener.java | ||
| 51 | ) | 54 | ) |
| 52 | foreach(file IN LISTS package_files) | 55 | foreach(file IN LISTS package_files) |
| 53 | configure_file(${CMAKE_SOURCE_DIR}/tools/android/packaging/xbmc/${file}.in | 56 | configure_file(${CMAKE_SOURCE_DIR}/tools/android/packaging/xbmc/${file}.in |
diff --git a/cmake/scripts/common/Macros.cmake b/cmake/scripts/common/Macros.cmake index 8bee3da..09c9c36 100644 --- a/cmake/scripts/common/Macros.cmake +++ b/cmake/scripts/common/Macros.cmake | |||
| @@ -89,6 +89,10 @@ function(core_add_library name) | |||
| 89 | target_sources(lib${APP_NAME_LC} PRIVATE ${FILES}) | 89 | target_sources(lib${APP_NAME_LC} PRIVATE ${FILES}) |
| 90 | set(CORE_LIBRARY lib${APP_NAME_LC} PARENT_SCOPE) | 90 | set(CORE_LIBRARY lib${APP_NAME_LC} PARENT_SCOPE) |
| 91 | endif() | 91 | endif() |
| 92 | foreach(src ${SOURCES}) | ||
| 93 | list(APPEND sca_sources ${CMAKE_CURRENT_SOURCE_DIR}/${src}) | ||
| 94 | endforeach() | ||
| 95 | set(sca_sources ${sca_sources} CACHE STRING "" FORCE) | ||
| 92 | endfunction() | 96 | endfunction() |
| 93 | 97 | ||
| 94 | # Add a test library, and add sources to list for gtest integration macros | 98 | # Add a test library, and add sources to list for gtest integration macros |
diff --git a/cmake/scripts/common/ProjectMacros.cmake b/cmake/scripts/common/ProjectMacros.cmake index 89ecca4..641e047 100644 --- a/cmake/scripts/common/ProjectMacros.cmake +++ b/cmake/scripts/common/ProjectMacros.cmake | |||
| @@ -75,6 +75,39 @@ function(GTEST_ADD_TESTS executable extra_args) | |||
| 75 | endforeach() | 75 | endforeach() |
| 76 | endfunction() | 76 | endfunction() |
| 77 | 77 | ||
| 78 | function(sca_add_tests) | ||
| 79 | find_program(CLANGCHECK_COMMAND clang-check) | ||
| 80 | find_program(CPPCHECK_COMMAND cppcheck) | ||
| 81 | if(CLANGCHECK_COMMAND AND CMAKE_EXPORT_COMPILE_COMMANDS) | ||
| 82 | configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/linux/clang-check-test.sh.in | ||
| 83 | ${CORE_BUILD_DIR}/clang-check-test.sh) | ||
| 84 | endif() | ||
| 85 | if(CPPCHECK_COMMAND) | ||
| 86 | configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/linux/cppcheck-test.sh.in | ||
| 87 | ${CORE_BUILD_DIR}/cppcheck-test.sh) | ||
| 88 | set(CPPCHECK_INCLUDES) | ||
| 89 | foreach(inc ${INCLUDES}) | ||
| 90 | list(APPEND CPPCHECK_INCLUDES -I ${inc}) | ||
| 91 | endforeach() | ||
| 92 | endif() | ||
| 93 | foreach(src ${sca_sources}) | ||
| 94 | file(RELATIVE_PATH name ${PROJECT_SOURCE_DIR} ${src}) | ||
| 95 | get_filename_component(EXT ${src} EXT) | ||
| 96 | if(EXT STREQUAL .cpp) | ||
| 97 | if(CLANGCHECK_COMMAND AND CMAKE_EXPORT_COMPILE_COMMANDS) | ||
| 98 | add_test(NAME clang-check+${name} | ||
| 99 | COMMAND ${CORE_BUILD_DIR}/clang-check-test.sh ${CLANGCHECK_COMMAND} ${src} | ||
| 100 | CONFIGURATIONS analyze clang-check) | ||
| 101 | endif() | ||
| 102 | if(CPPCHECK_COMMAND) | ||
| 103 | add_test(NAME cppcheck+${name} | ||
| 104 | COMMAND ${CORE_BUILD_DIR}/cppcheck-test.sh ${CPPCHECK_COMMAND} ${src} ${CPPCHECK_INCLUDES} | ||
| 105 | CONFIGURATIONS analyze cppcheck) | ||
| 106 | endif() | ||
| 107 | endif() | ||
| 108 | endforeach() | ||
| 109 | endfunction() | ||
| 110 | |||
| 78 | function(whole_archive output) | 111 | function(whole_archive output) |
| 79 | if(CMAKE_CXX_COMPILER_ID STREQUAL GNU OR CMAKE_CXX_COMPILER_ID STREQUAL Clang) | 112 | if(CMAKE_CXX_COMPILER_ID STREQUAL GNU OR CMAKE_CXX_COMPILER_ID STREQUAL Clang) |
| 80 | set(${output} -Wl,--whole-archive ${ARGN} -Wl,--no-whole-archive PARENT_SCOPE) | 113 | set(${output} -Wl,--whole-archive ${ARGN} -Wl,--no-whole-archive PARENT_SCOPE) |
diff --git a/cmake/scripts/linux/clang-check-test.sh.in b/cmake/scripts/linux/clang-check-test.sh.in new file mode 100755 index 0000000..3b30ec1 --- /dev/null +++ b/cmake/scripts/linux/clang-check-test.sh.in | |||
| @@ -0,0 +1,24 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | |||
| 3 | # This script performs a single analysis using clang-check | ||
| 4 | # It is used by the 'make test' target in the buildsystems | ||
| 5 | # Usually you should use 'ctest -C clang-check' rather than calling this script directly | ||
| 6 | # | ||
| 7 | # Parameters: $1 = Application binary | ||
| 8 | # $2 = Source file to process | ||
| 9 | |||
| 10 | clangcheck_cmd=$1 | ||
| 11 | source_file=$2 | ||
| 12 | |||
| 13 | tmpfil=`mktemp` | ||
| 14 | $clangcheck_cmd -p @CMAKE_BINARY_DIR@ -analyze $source_file &> $tmpfil | ||
| 15 | nerr=`cat $tmpfil | grep -v "warning: /usr/bin/c++: 'linker' input unused" | wc -l` | ||
| 16 | if test $nerr -gt 0 | ||
| 17 | then | ||
| 18 | cat $tmpfil | ||
| 19 | rm $tmpfil | ||
| 20 | exit 1 | ||
| 21 | fi | ||
| 22 | |||
| 23 | rm $tmpfil | ||
| 24 | exit 0 | ||
diff --git a/cmake/scripts/linux/cppcheck-test.sh.in b/cmake/scripts/linux/cppcheck-test.sh.in new file mode 100755 index 0000000..08cb672 --- /dev/null +++ b/cmake/scripts/linux/cppcheck-test.sh.in | |||
| @@ -0,0 +1,28 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | |||
| 3 | # This script performs a single analysis using cppcheck | ||
| 4 | # It is used by the 'make test' target in the buildsystems | ||
| 5 | # Usually you should use 'ctest -C cppcheck' rather than calling this script directly | ||
| 6 | # | ||
| 7 | # Parameters: $1 = Application binary | ||
| 8 | # $2 = Source file to process | ||
| 9 | # $3..$N = include path parameters (-I dir1 -I dir2 ...) | ||
| 10 | |||
| 11 | cppcheck_cmd=$1 | ||
| 12 | source_file=$2 | ||
| 13 | shift 2 | ||
| 14 | |||
| 15 | tmpfil=`mktemp` | ||
| 16 | $cppcheck_cmd $@ --force --enable=all --suppress=unusedFunction $source_file &> $tmpfil | ||
| 17 | nmatch=`cat $tmpfil | grep "\[.*\]" | wc -l` | ||
| 18 | nnone=`cat $tmpfil | grep "\[\\*]" | wc -l` | ||
| 19 | let "nval=$nmatch-$nnone" | ||
| 20 | if test $nval -gt 0 | ||
| 21 | then | ||
| 22 | cat $tmpfil | ||
| 23 | rm $tmpfil | ||
| 24 | exit 1 | ||
| 25 | fi | ||
| 26 | |||
| 27 | rm $tmpfil | ||
| 28 | exit 0 | ||
diff --git a/cmake/scripts/windows/ArchSetup.cmake b/cmake/scripts/windows/ArchSetup.cmake index 9634b3a..d438b05 100644 --- a/cmake/scripts/windows/ArchSetup.cmake +++ b/cmake/scripts/windows/ArchSetup.cmake | |||
| @@ -29,7 +29,7 @@ set(PYTHON_INCLUDE_DIR ${CMAKE_SOURCE_DIR}/project/BuildDependencies/${ARCH}/inc | |||
| 29 | # -------- Compiler options --------- | 29 | # -------- Compiler options --------- |
| 30 | 30 | ||
| 31 | add_options(CXX ALL_BUILDS "/wd\"4996\"") | 31 | add_options(CXX ALL_BUILDS "/wd\"4996\"") |
| 32 | set(ARCH_DEFINES -D_WINDOWS -DTARGET_WINDOWS -D__SSE__ -D__SSE2__) | 32 | set(ARCH_DEFINES -D_WINDOWS -DTARGET_WINDOWS -DTARGET_WINDOWS_DESKTOP -D__SSE__ -D__SSE2__) |
| 33 | set(SYSTEM_DEFINES -DNOMINMAX -DHAS_DX -D__STDC_CONSTANT_MACROS | 33 | set(SYSTEM_DEFINES -DNOMINMAX -DHAS_DX -D__STDC_CONSTANT_MACROS |
| 34 | -DTAGLIB_STATIC -DNPT_CONFIG_ENABLE_LOGGING | 34 | -DTAGLIB_STATIC -DNPT_CONFIG_ENABLE_LOGGING |
| 35 | -DPLT_HTTP_DEFAULT_USER_AGENT="UPnP/1.0 DLNADOC/1.50 Kodi" | 35 | -DPLT_HTTP_DEFAULT_USER_AGENT="UPnP/1.0 DLNADOC/1.50 Kodi" |
diff --git a/cmake/scripts/windows/tools/patch.cmake b/cmake/scripts/windows/tools/patch.cmake index 0ef2952..0a342fa 100644 --- a/cmake/scripts/windows/tools/patch.cmake +++ b/cmake/scripts/windows/tools/patch.cmake | |||
| @@ -2,7 +2,7 @@ find_program(PATCH_FOUND NAMES patch patch.exe) | |||
| 2 | if(PATCH_FOUND) | 2 | if(PATCH_FOUND) |
| 3 | message(STATUS "patch utility found at ${PATCH_FOUND}") | 3 | message(STATUS "patch utility found at ${PATCH_FOUND}") |
| 4 | else() | 4 | else() |
| 5 | set(PATCH_ARCHIVE_NAME "patch-2.5.9-7-bin-1") | 5 | set(PATCH_ARCHIVE_NAME "patch-2.5.9-7-bin-3") |
| 6 | set(PATCH_ARCHIVE "${PATCH_ARCHIVE_NAME}.zip") | 6 | set(PATCH_ARCHIVE "${PATCH_ARCHIVE_NAME}.zip") |
| 7 | set(PATCH_URL "${KODI_MIRROR}/build-deps/win32/${PATCH_ARCHIVE}") | 7 | set(PATCH_URL "${KODI_MIRROR}/build-deps/win32/${PATCH_ARCHIVE}") |
| 8 | set(PATCH_DOWNLOAD ${BUILD_DIR}/download/${PATCH_ARCHIVE}) | 8 | set(PATCH_DOWNLOAD ${BUILD_DIR}/download/${PATCH_ARCHIVE}) |
