summaryrefslogtreecommitdiffstats
path: root/cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake')
-rw-r--r--cmake/modules/FindBluray.cmake13
-rw-r--r--cmake/platform/windows/defines.txt2
-rw-r--r--cmake/scripts/android/Install.cmake31
-rw-r--r--cmake/scripts/common/Macros.cmake4
-rw-r--r--cmake/scripts/common/ProjectMacros.cmake33
-rwxr-xr-xcmake/scripts/linux/clang-check-test.sh.in24
-rwxr-xr-xcmake/scripts/linux/cppcheck-test.sh.in28
-rw-r--r--cmake/scripts/windows/ArchSetup.cmake2
-rw-r--r--cmake/scripts/windows/tools/patch.cmake2
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
17set(Bluray_FIND_VERSION 0.9.3)
17if(PKG_CONFIG_FOUND) 18if(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})
19endif() 21endif()
20 22
21find_path(BLURAY_INCLUDE_DIR libbluray/bluray.h 23find_path(BLURAY_INCLUDE_DIR libbluray/bluray.h
22 PATHS ${PC_BLURAY_INCLUDEDIR}) 24 PATHS ${PC_BLURAY_INCLUDEDIR})
23 25
24set(BLURAY_VERSION ${PC_BLURAY_VERSION}) 26if(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)
31endif()
25 32
26include(FindPackageHandleStandardArgs) 33include(FindPackageHandleStandardArgs)
27if(NOT WIN32) 34if(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)
34else() 41else()
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 )
52foreach(file IN LISTS package_files) 55foreach(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)
92endfunction() 96endfunction()
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()
76endfunction() 76endfunction()
77 77
78function(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()
109endfunction()
110
78function(whole_archive output) 111function(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
10clangcheck_cmd=$1
11source_file=$2
12
13tmpfil=`mktemp`
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`
16if test $nerr -gt 0
17then
18 cat $tmpfil
19 rm $tmpfil
20 exit 1
21fi
22
23rm $tmpfil
24exit 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
11cppcheck_cmd=$1
12source_file=$2
13shift 2
14
15tmpfil=`mktemp`
16$cppcheck_cmd $@ --force --enable=all --suppress=unusedFunction $source_file &> $tmpfil
17nmatch=`cat $tmpfil | grep "\[.*\]" | wc -l`
18nnone=`cat $tmpfil | grep "\[\\*]" | wc -l`
19let "nval=$nmatch-$nnone"
20if test $nval -gt 0
21then
22 cat $tmpfil
23 rm $tmpfil
24 exit 1
25fi
26
27rm $tmpfil
28exit 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
31add_options(CXX ALL_BUILDS "/wd\"4996\"") 31add_options(CXX ALL_BUILDS "/wd\"4996\"")
32set(ARCH_DEFINES -D_WINDOWS -DTARGET_WINDOWS -D__SSE__ -D__SSE2__) 32set(ARCH_DEFINES -D_WINDOWS -DTARGET_WINDOWS -DTARGET_WINDOWS_DESKTOP -D__SSE__ -D__SSE2__)
33set(SYSTEM_DEFINES -DNOMINMAX -DHAS_DX -D__STDC_CONSTANT_MACROS 33set(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)
2if(PATCH_FOUND) 2if(PATCH_FOUND)
3 message(STATUS "patch utility found at ${PATCH_FOUND}") 3 message(STATUS "patch utility found at ${PATCH_FOUND}")
4else() 4else()
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})