SoC common : build :Fixed make docs error between different project. [1/1]
PD#SWPL-192419
Problem:
Compiler path variable which cache in cmake invalidate change another
project.
Solution:
Set the compiler info same to the project by arch_compiler.
Verify:
N/A
Change-Id: I1c983f9a2637a20c9ac8f59f35c3243a7444deba
Signed-off-by: xiaohu.huang <xiaohu.huang@amlogic.com>
diff --git a/Makefile b/Makefile
index 84c6f75..a2f051b 100644
--- a/Makefile
+++ b/Makefile
@@ -246,7 +246,7 @@
endif
################################################################
-## Target command:make docs DOCS_ARCH=[arm|arm64|riscv|xtensa]
+## Target command:make [docs|docs-clean] DOCS_ARCH=[arm|arm64|riscv|xtensa]
################################################################
.PHONY: docs
docs:
@@ -254,10 +254,22 @@
@ if [ ! -d $($@_DIR) ]; then \
echo "$($@_DIR) is not exist,please set project first with: source scripts/env.sh"; \
else \
- echo "It is generated docs in $($@_BUILD_DIR) from $($@_DIR)."; \
- (cd $($@_BUILD_DIR) && cmake $($@_DIR) -DARCH_NAME=$(DOCS_ARCH) && make); \
+ echo "Generated docs in $($@_BUILD_DIR) from $($@_DIR)."; \
+ (rm -rf $($@_BUILD_DIR)/CMakeCache.txt \
+ && cd $($@_BUILD_DIR) \
+ && cmake $($@_DIR) -DARCH_NAME=$(DOCS_ARCH) \
+ -DCMAKE_TOOLCHAIN_FILE=$(build_DIR)/cmake/toolchains/$(DOCS_ARCH)_compiler.cmake \
+ && make); \
fi
+.PHONY: docs-clean
+docs-clean:
+ifeq ($(call ifndef_any_of,ARCH SOC BOARD PRODUCT),)
+ @ if [ -d $(docs_BUILD_DIR) ]; then rm -rf $(docs_BUILD_DIR); fi
+else
+ @ if [ -d $(OUTPUT_DIR)/docs ]; then rm -rf $(OUTPUT_DIR)/docs; fi
+endif
+
################################################################
# Respective Targets
################################################################
@@ -287,17 +299,17 @@
menuconfig: toolchain $(kernel_BUILD_DIR)
@ cmake --build $(kernel_BUILD_DIR) --target $@
-%defconfig:config_clean toolchain
+%defconfig:config-clean toolchain
@ make $(kernel_BUILD_DIR) BOARD_SPEC_CONFIG=$@
@ echo "configuration $@ written to $(kernel_BUILD_DIR)/.config"
.PHONY: config
-config: config_clean toolchain
+config: config-clean toolchain
@ make $(kernel_BUILD_DIR) BOARD_SPEC_CONFIG=defconfig
@ echo "configuration defconfig written to $(kernel_BUILD_DIR)/.config"
-.PHONY: config_clean
-config_clean:
+.PHONY: config-clean
+config-clean:
@ if [ -f $(kernel_BUILD_DIR)/build.ninja ]; then \
rm -f $(kernel_BUILD_DIR)/build.ninja; \
fi
diff --git a/cmake/toolchains/arm64_compiler.cmake b/cmake/toolchains/arm64_compiler.cmake
index 83237e9..d7a194f 100755
--- a/cmake/toolchains/arm64_compiler.cmake
+++ b/cmake/toolchains/arm64_compiler.cmake
@@ -6,7 +6,7 @@
set(CMAKE_SYSTEM_NAME Generic)
-if(${COMPILER} STREQUAL "clang+llvm")
+if("${COMPILER}" STREQUAL "clang+llvm")
# Find CLANG for ARM.
aml_find_compiler(COMPILER_CC_CLANG clang)
aml_find_compiler(COMPILER_CXX_CLANG clang++)