cmake.mk,rules.mk: fix host builds using CMake and ccache
authorPetr Štetiar <ynezz@true.cz>
Fri, 27 Nov 2020 21:50:32 +0000 (22:50 +0100)
committerPetr Štetiar <ynezz@true.cz>
Sat, 28 Nov 2020 15:17:58 +0000 (16:17 +0100)
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@gmail.com>
Tested-by: Ansuel Smith <ansuelsmth@gmail.com>
Signed-off-by: Petr Štetiar <ynezz@true.cz>
include/cmake.mk
rules.mk

index 2cc10301aa4e009356310452e8f521c472330f4f..0a20530a16fe30c8992f393a7c223e1d710a2e33 100644 (file)
@@ -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)" \
index adb103d81f2f9b82425071e780721659e35ffaeb..34222a3a71994c49445a3e2b2ef959bbeaad4f1e 100644 (file)
--- 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