[openwrt/openwrt] cmake.mk, rules.mk: fix host builds using CMake and ccache

LEDE Commits lede-commits at lists.infradead.org
Sat Nov 28 10:18:15 EST 2020


ynezz pushed a commit to openwrt/openwrt.git, branch master:
https://git.openwrt.org/524fb5646eec6147aadfdd508219f39bcf8ba8fc

commit 524fb5646eec6147aadfdd508219f39bcf8ba8fc
Author: Petr Štetiar <ynezz at true.cz>
AuthorDate: Fri Nov 27 22:50:32 2020 +0100

    cmake.mk,rules.mk: fix host builds using CMake and ccache
    
    Commit f98878e4c17d ("cmake.mk: set C/CXX compiler for host builds as
    well") has introduced regression as it didn't taken usage of ccache into
    the account so fix it by handling ccache use cases as well.
    
    In order to get this working we need to export HOSTCXX_NOCACHE in
    rules.mk as well.
    
    Fixes: f98878e4c17d ("cmake.mk: set C/CXX compiler for host builds as well")
    Reported-by: Ansuel Smith <ansuelsmth at gmail.com>
    Tested-by: Ansuel Smith <ansuelsmth at gmail.com>
    Signed-off-by: Petr Štetiar <ynezz at true.cz>
---
 include/cmake.mk | 18 ++++++++++++++++--
 rules.mk         |  1 +
 2 files changed, 17 insertions(+), 2 deletions(-)

diff --git a/include/cmake.mk b/include/cmake.mk
index 2cc10301aa..0a20530a16 100644
--- a/include/cmake.mk
+++ b/include/cmake.mk
@@ -23,12 +23,22 @@ ifeq ($(CONFIG_CCACHE),)
  CMAKE_CXX_COMPILER:=$(call cmake_tool,$(TARGET_CXX))
  CMAKE_C_COMPILER_ARG1:=
  CMAKE_CXX_COMPILER_ARG1:=
+
+ CMAKE_HOST_C_COMPILER:=$(HOSTCC)
+ CMAKE_HOST_CXX_COMPILER:=$(HOSTCXX)
+ CMAKE_HOST_C_COMPILER_ARG1:=
+ CMAKE_HOST_CXX_COMPILER_ARG1:=
 else
   CCACHE:=$(STAGING_DIR_HOST)/bin/ccache
   CMAKE_C_COMPILER:=$(CCACHE)
   CMAKE_C_COMPILER_ARG1:=$(TARGET_CC_NOCACHE)
   CMAKE_CXX_COMPILER:=$(CCACHE)
   CMAKE_CXX_COMPILER_ARG1:=$(TARGET_CXX_NOCACHE)
+
+  CMAKE_HOST_C_COMPILER:=$(CCACHE)
+  CMAKE_HOST_C_COMPILER_ARG1:=$(HOSTCC_NOCACHE)
+  CMAKE_HOST_CXX_COMPILER:=$(CCACHE)
+  CMAKE_HOST_CXX_COMPILER_ARG1:=$(HOSTCXX_NOCACHE)
 endif
 CMAKE_AR:=$(call cmake_tool,$(TARGET_AR))
 CMAKE_NM:=$(call cmake_tool,$(TARGET_NM))
@@ -97,8 +107,12 @@ define Host/Configure/Default
 		LDFLAGS="$(HOST_LDFLAGS)" \
 		cmake \
 			-DCMAKE_BUILD_TYPE=Release \
-			-DCMAKE_C_COMPILER="$(HOSTCC)" \
-			-DCMAKE_CXX_COMPILER="$(HOSTCXX)" \
+			-DCMAKE_C_COMPILER="$(CMAKE_HOST_C_COMPILER)" \
+			-DCMAKE_C_COMPILER_ARG1="$(CMAKE_HOST_C_COMPILER_ARG1)" \
+			-DCMAKE_CXX_COMPILER="$(CMAKE_HOST_CXX_COMPILER)" \
+			-DCMAKE_CXX_COMPILER_ARG1="$(CMAKE_HOST_CXX_COMPILER_ARG1)" \
+			-DCMAKE_ASM_COMPILER="$(CMAKE_HOST_C_COMPILER)" \
+			-DCMAKE_ASM_COMPILER_ARG1="$(CMAKE_HOST_C_COMPILER_ARG1)" \
 			-DCMAKE_C_FLAGS_RELEASE="-DNDEBUG" \
 			-DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG" \
 			-DCMAKE_EXE_LINKER_FLAGS:STRING="$(HOST_LDFLAGS)" \
diff --git a/rules.mk b/rules.mk
index adb103d81f..34222a3a71 100644
--- a/rules.mk
+++ b/rules.mk
@@ -292,6 +292,7 @@ HOSTCXX_NOCACHE:=$(HOSTCXX)
 export TARGET_CC_NOCACHE
 export TARGET_CXX_NOCACHE
 export HOSTCC_NOCACHE
+export HOSTCXX_NOCACHE
 
 ifneq ($(CONFIG_CCACHE),)
   TARGET_CC:= ccache_cc



More information about the lede-commits mailing list