diff --git a/tools/cmake/Makefile b/tools/cmake/Makefile index 888cf7de8e2..33d6d4944f3 100644 --- a/tools/cmake/Makefile +++ b/tools/cmake/Makefile @@ -7,19 +7,33 @@ include $(TOPDIR)/rules.mk PKG_NAME:=cmake -PKG_VERSION:=3.13.2 +PKG_VERSION:=3.15.1 PKG_CPE_ID:=cpe:/a:kitware:cmake PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=https://cmake.org/files/v3.13/ \ - https://fossies.org/linux/misc/ -PKG_HASH:=c925e7d2c5ba511a69f43543ed7b4182a7d446c274c7480d0e42cd933076ae25 +PKG_SOURCE_URL:=https://github.com/Kitware/CMake/releases/download/v$(PKG_VERSION)/ \ + https://cmake.org/files/v3.15/ +PKG_HASH:=18dec548d8f8b04d53c60f9cedcebaa6762f8425339d1e2c889c383d3ccdd7f7 HOST_BUILD_PARALLEL:=1 HOST_CONFIGURE_PARALLEL:=1 include $(INCLUDE_DIR)/host-build.mk +# Workaround for GCC versions below 6.X and ccache +# Reference: https://github.com/openwrt/openwrt/pull/1929 +GCC_DMPVER_GREPCMD := grep -E '^(4\.[8-9]|[5]\.?)' +GCC_DMPVER_STRING := $(shell $(HOSTCC_NOCACHE) -dumpversion | $(GCC_DMPVER_GREPCMD)) +ifneq ($(GCC_DMPVER_STRING),) + ifeq ($(CONFIG_CCACHE),y) + $(info GCC version less than 6.0 detected, disabling CCACHE) + HOST_CONFIGURE_VARS:=$(filter-out CC=% gcc%",$(HOST_CONFIGURE_VARS)) CC="$(HOSTCC_NOCACHE)" + HOST_CONFIGURE_VARS:=$(filter-out CXX=% g++%",$(HOST_CONFIGURE_VARS)) CXX="$(HOSTCXX_NOCACHE)" + else + $(info GCC version greater or equal to 6.0 detected, no workaround set for CCACHE) + endif +endif + HOST_CONFIGURE_VARS += \ MAKEFLAGS="$(HOST_JOBS)" \ CXXFLAGS="$(HOST_CFLAGS)" diff --git a/tools/cmake/patches/100-disable_qt_tests.patch b/tools/cmake/patches/100-disable_qt_tests.patch index af04bf7c419..7f83e279f73 100644 --- a/tools/cmake/patches/100-disable_qt_tests.patch +++ b/tools/cmake/patches/100-disable_qt_tests.patch @@ -1,6 +1,6 @@ --- a/Tests/RunCMake/CMakeLists.txt +++ b/Tests/RunCMake/CMakeLists.txt -@@ -301,15 +301,6 @@ add_RunCMake_test(no_install_prefix) +@@ -325,15 +325,6 @@ add_RunCMake_test(no_install_prefix) add_RunCMake_test(configure_file) add_RunCMake_test(CTestTimeoutAfterMatch) @@ -18,7 +18,7 @@ add_RunCMake_test(FindPkgConfig) --- a/Tests/CMakeLists.txt +++ b/Tests/CMakeLists.txt -@@ -437,13 +437,6 @@ if(BUILD_TESTING) +@@ -483,13 +483,6 @@ if(BUILD_TESTING) list(APPEND TEST_BUILD_DIRS ${CMake_TEST_INSTALL_PREFIX}) diff --git a/tools/cmake/patches/120-curl-fix-libressl-linking.patch b/tools/cmake/patches/120-curl-fix-libressl-linking.patch index e217979ee42..e7d9c5ddda6 100644 --- a/tools/cmake/patches/120-curl-fix-libressl-linking.patch +++ b/tools/cmake/patches/120-curl-fix-libressl-linking.patch @@ -20,7 +20,7 @@ Signed-off-by: Jo-Philipp Wich --- --- a/Utilities/cmcurl/CMakeLists.txt +++ b/Utilities/cmcurl/CMakeLists.txt -@@ -454,6 +454,14 @@ if(CMAKE_USE_OPENSSL) +@@ -453,6 +453,14 @@ if(CMAKE_USE_OPENSSL) set(USE_OPENSSL ON) set(HAVE_LIBCRYPTO ON) set(HAVE_LIBSSL ON) diff --git a/tools/cmake/patches/130-bootstrap_parallel_make_flag.patch b/tools/cmake/patches/130-bootstrap_parallel_make_flag.patch index 535417d55a6..124cf6d9d42 100644 --- a/tools/cmake/patches/130-bootstrap_parallel_make_flag.patch +++ b/tools/cmake/patches/130-bootstrap_parallel_make_flag.patch @@ -1,6 +1,6 @@ --- a/bootstrap +++ b/bootstrap -@@ -1164,7 +1164,10 @@ int main(){ printf("1%c", (char)0x0a); r +@@ -1168,7 +1168,10 @@ int main(){ printf("1%c", (char)0x0a); r ' > "test.c" cmake_original_make_flags="${cmake_make_flags}" if [ "x${cmake_parallel_make}" != "x" ]; then diff --git a/tools/cmake/patches/150-C-feature-checks-Match-warnings-more-strictly.patch b/tools/cmake/patches/150-C-feature-checks-Match-warnings-more-strictly.patch deleted file mode 100644 index 674ff0d392a..00000000000 --- a/tools/cmake/patches/150-C-feature-checks-Match-warnings-more-strictly.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 4ca5a815f2dfe9e1116cc2ccd5ddb56d0d00d12e Mon Sep 17 00:00:00 2001 -From: Brad King -Date: Thu, 7 Mar 2019 14:55:54 -0500 -Subject: [PATCH] C++ feature checks: Match warnings more strictly - -Require the word "warning" to appear at the start of a line, after -whitespace, or after a `:`. This is the same that CTest launchers use -to match warnings. It avoids matching "warning" inside file paths. - -Fixes: #19019 ---- - Source/Checks/cm_cxx_features.cmake | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/Source/Checks/cm_cxx_features.cmake -+++ b/Source/Checks/cm_cxx_features.cmake -@@ -25,7 +25,7 @@ function(cm_check_cxx_feature name) - # Filter out xcodebuild warnings. - string(REGEX REPLACE "[^\n]* xcodebuild\\[[0-9]*:[0-9]*\\] warning: [^\n]*" "" check_output "${check_output}") - # If using the feature causes warnings, treat it as broken/unavailable. -- if(check_output MATCHES "[Ww]arning") -+ if(check_output MATCHES "(^|[ :])[Ww][Aa][Rr][Nn][Ii][Nn][Gg]") - set(CMake_HAVE_CXX_${FEATURE} OFF CACHE INTERNAL "TRY_COMPILE" FORCE) - endif() - if(CMake_HAVE_CXX_${FEATURE})