[PATCH] cmake.mk,rules.mk: fix host builds using CMake and ccache
Petr Štetiar
ynezz at true.cz
Fri Nov 27 17:04:29 EST 2020
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>
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 2cc10301aa4e..0a20530a16fe 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 adb103d81f2f..34222a3a7199 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 openwrt-devel
mailing list