From 86b22151f0758311fd146ff508e7254337414bc1 Mon Sep 17 00:00:00 2001 From: manuel Date: Tue, 15 Aug 2017 17:40:26 +0200 Subject: sync with upstream --- cmake/scripts/android/Install.cmake | 31 +++++++++++++++------------- cmake/scripts/common/Macros.cmake | 4 ++++ cmake/scripts/common/ProjectMacros.cmake | 33 ++++++++++++++++++++++++++++++ cmake/scripts/linux/clang-check-test.sh.in | 24 ++++++++++++++++++++++ cmake/scripts/linux/cppcheck-test.sh.in | 28 +++++++++++++++++++++++++ cmake/scripts/windows/ArchSetup.cmake | 2 +- cmake/scripts/windows/tools/patch.cmake | 2 +- 7 files changed, 108 insertions(+), 16 deletions(-) create mode 100755 cmake/scripts/linux/clang-check-test.sh.in create mode 100755 cmake/scripts/linux/cppcheck-test.sh.in (limited to 'cmake/scripts') 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 colors.xml searchable.xml AndroidManifest.xml - src/org/xbmc/kodi/Main.java - src/org/xbmc/kodi/Splash.java - src/org/xbmc/kodi/XBMCBroadcastReceiver.java - src/org/xbmc/kodi/XBMCImageContentProvider.java - src/org/xbmc/kodi/XBMCInputDeviceListener.java - src/org/xbmc/kodi/XBMCJsonRPC.java - src/org/xbmc/kodi/XBMCMediaContentProvider.java - src/org/xbmc/kodi/XBMCRecommendationBuilder.java - src/org/xbmc/kodi/XBMCSearchableActivity.java - src/org/xbmc/kodi/XBMCSettingsContentObserver.java - src/org/xbmc/kodi/XBMCProperties.java - src/org/xbmc/kodi/XBMCVideoView.java - src/org/xbmc/kodi/interfaces/XBMCAudioManagerOnAudioFocusChangeListener.java - src/org/xbmc/kodi/interfaces/XBMCSurfaceTextureOnFrameAvailableListener.java + src/Main.java + src/Splash.java + src/XBMCBroadcastReceiver.java + src/XBMCImageContentProvider.java + src/XBMCInputDeviceListener.java + src/XBMCJsonRPC.java + src/XBMCMediaContentProvider.java + src/XBMCRecommendationBuilder.java + src/XBMCSearchableActivity.java + src/XBMCSettingsContentObserver.java + src/XBMCProperties.java + src/XBMCVideoView.java + src/interfaces/XBMCAudioManagerOnAudioFocusChangeListener.java + src/interfaces/XBMCSurfaceTextureOnFrameAvailableListener.java + src/interfaces/XBMCNsdManagerDiscoveryListener.java + src/interfaces/XBMCNsdManagerRegistrationListener.java + src/interfaces/XBMCNsdManagerResolveListener.java ) foreach(file IN LISTS package_files) 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) target_sources(lib${APP_NAME_LC} PRIVATE ${FILES}) set(CORE_LIBRARY lib${APP_NAME_LC} PARENT_SCOPE) endif() + foreach(src ${SOURCES}) + list(APPEND sca_sources ${CMAKE_CURRENT_SOURCE_DIR}/${src}) + endforeach() + set(sca_sources ${sca_sources} CACHE STRING "" FORCE) endfunction() # 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) endforeach() endfunction() +function(sca_add_tests) + find_program(CLANGCHECK_COMMAND clang-check) + find_program(CPPCHECK_COMMAND cppcheck) + if(CLANGCHECK_COMMAND AND CMAKE_EXPORT_COMPILE_COMMANDS) + configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/linux/clang-check-test.sh.in + ${CORE_BUILD_DIR}/clang-check-test.sh) + endif() + if(CPPCHECK_COMMAND) + configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/linux/cppcheck-test.sh.in + ${CORE_BUILD_DIR}/cppcheck-test.sh) + set(CPPCHECK_INCLUDES) + foreach(inc ${INCLUDES}) + list(APPEND CPPCHECK_INCLUDES -I ${inc}) + endforeach() + endif() + foreach(src ${sca_sources}) + file(RELATIVE_PATH name ${PROJECT_SOURCE_DIR} ${src}) + get_filename_component(EXT ${src} EXT) + if(EXT STREQUAL .cpp) + if(CLANGCHECK_COMMAND AND CMAKE_EXPORT_COMPILE_COMMANDS) + add_test(NAME clang-check+${name} + COMMAND ${CORE_BUILD_DIR}/clang-check-test.sh ${CLANGCHECK_COMMAND} ${src} + CONFIGURATIONS analyze clang-check) + endif() + if(CPPCHECK_COMMAND) + add_test(NAME cppcheck+${name} + COMMAND ${CORE_BUILD_DIR}/cppcheck-test.sh ${CPPCHECK_COMMAND} ${src} ${CPPCHECK_INCLUDES} + CONFIGURATIONS analyze cppcheck) + endif() + endif() + endforeach() +endfunction() + function(whole_archive output) if(CMAKE_CXX_COMPILER_ID STREQUAL GNU OR CMAKE_CXX_COMPILER_ID STREQUAL Clang) 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 @@ +#!/bin/bash + +# This script performs a single analysis using clang-check +# It is used by the 'make test' target in the buildsystems +# Usually you should use 'ctest -C clang-check' rather than calling this script directly +# +# Parameters: $1 = Application binary +# $2 = Source file to process + +clangcheck_cmd=$1 +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` +if test $nerr -gt 0 +then + cat $tmpfil + rm $tmpfil + exit 1 +fi + +rm $tmpfil +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 @@ +#!/bin/bash + +# This script performs a single analysis using cppcheck +# It is used by the 'make test' target in the buildsystems +# Usually you should use 'ctest -C cppcheck' rather than calling this script directly +# +# Parameters: $1 = Application binary +# $2 = Source file to process +# $3..$N = include path parameters (-I dir1 -I dir2 ...) + +cppcheck_cmd=$1 +source_file=$2 +shift 2 + +tmpfil=`mktemp` +$cppcheck_cmd $@ --force --enable=all --suppress=unusedFunction $source_file &> $tmpfil +nmatch=`cat $tmpfil | grep "\[.*\]" | wc -l` +nnone=`cat $tmpfil | grep "\[\\*]" | wc -l` +let "nval=$nmatch-$nnone" +if test $nval -gt 0 +then + cat $tmpfil + rm $tmpfil + exit 1 +fi + +rm $tmpfil +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 # -------- Compiler options --------- add_options(CXX ALL_BUILDS "/wd\"4996\"") -set(ARCH_DEFINES -D_WINDOWS -DTARGET_WINDOWS -D__SSE__ -D__SSE2__) +set(ARCH_DEFINES -D_WINDOWS -DTARGET_WINDOWS -DTARGET_WINDOWS_DESKTOP -D__SSE__ -D__SSE2__) set(SYSTEM_DEFINES -DNOMINMAX -DHAS_DX -D__STDC_CONSTANT_MACROS -DTAGLIB_STATIC -DNPT_CONFIG_ENABLE_LOGGING -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) if(PATCH_FOUND) message(STATUS "patch utility found at ${PATCH_FOUND}") else() - set(PATCH_ARCHIVE_NAME "patch-2.5.9-7-bin-1") + set(PATCH_ARCHIVE_NAME "patch-2.5.9-7-bin-3") set(PATCH_ARCHIVE "${PATCH_ARCHIVE_NAME}.zip") set(PATCH_URL "${KODI_MIRROR}/build-deps/win32/${PATCH_ARCHIVE}") set(PATCH_DOWNLOAD ${BUILD_DIR}/download/${PATCH_ARCHIVE}) -- cgit v1.2.3