From 3e8036c9392ecc071acc3969e30c9088b38b3a0f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20=C5=A0tetiar?= Date: Fri, 27 Nov 2020 22:50:32 +0100 Subject: [PATCH] cmake.mk,rules.mk: fix host builds using CMake and ccache MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- include/cmake.mk | 37 +++++++++++++++++++++++++++++++------ rules.mk | 1 + 2 files changed, 32 insertions(+), 6 deletions(-) diff --git a/include/cmake.mk b/include/cmake.mk index 3646c3d939..0a20530a16 100644 --- a/include/cmake.mk +++ b/include/cmake.mk @@ -18,8 +18,28 @@ else cmake_tool=$(shell which $(1)) endif -CMAKE_C_COMPILER:=$(call cmake_tool,$(TARGET_CC_NOCACHE)) -CMAKE_CXX_COMPILER:=$(call cmake_tool,$(TARGET_CXX_NOCACHE)) +ifeq ($(CONFIG_CCACHE),) + CMAKE_C_COMPILER:=$(call cmake_tool,$(TARGET_CC)) + 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)) CMAKE_RANLIB:=$(call cmake_tool,$(TARGET_RANLIB)) @@ -41,11 +61,12 @@ define Build/Configure/Default -DCMAKE_BUILD_TYPE=Release \ -DCMAKE_C_FLAGS_RELEASE="-DNDEBUG" \ -DCMAKE_CXX_FLAGS_RELEASE="-DNDEBUG" \ - $(if $(CONFIG_CCACHE),-DCMAKE_CXX_COMPILER_LAUNCHER="$(STAGING_DIR_HOST)/bin/ccache") \ - $(if $(CONFIG_CCACHE),-DCMAKE_C_COMPILER_LAUNCHER="$(STAGING_DIR_HOST)/bin/ccache") \ -DCMAKE_C_COMPILER="$(CMAKE_C_COMPILER)" \ + -DCMAKE_C_COMPILER_ARG1="$(CMAKE_C_COMPILER_ARG1)" \ -DCMAKE_CXX_COMPILER="$(CMAKE_CXX_COMPILER)" \ + -DCMAKE_CXX_COMPILER_ARG1="$(CMAKE_CXX_COMPILER_ARG1)" \ -DCMAKE_ASM_COMPILER="$(CMAKE_C_COMPILER)" \ + -DCMAKE_ASM_COMPILER_ARG1="$(CMAKE_C_COMPILER_ARG1)" \ -DCMAKE_EXE_LINKER_FLAGS:STRING="$(TARGET_LDFLAGS)" \ -DCMAKE_MODULE_LINKER_FLAGS:STRING="$(TARGET_LDFLAGS) $(CMAKE_SHARED_LDFLAGS)" \ -DCMAKE_SHARED_LINKER_FLAGS:STRING="$(TARGET_LDFLAGS) $(CMAKE_SHARED_LDFLAGS)" \ @@ -86,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 1dd9d03de2..e04f0b2fd2 100644 --- a/rules.mk +++ b/rules.mk @@ -296,6 +296,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