From: Petr Štetiar Date: Fri, 27 Nov 2020 21:50:32 +0000 (+0100) Subject: cmake.mk,rules.mk: fix host builds using CMake and ccache X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fstaging%2Fjow.git;a=commitdiff_plain;h=524fb5646eec6147aadfdd508219f39bcf8ba8fc 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 Tested-by: Ansuel Smith Signed-off-by: Petr Štetiar --- 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