From 5f3aa045b3f4a5e7a82949b130f2e6393a469b29 Mon Sep 17 00:00:00 2001 From: xiaojiazhu <258828110.@qq.com> Date: Tue, 12 Mar 2024 14:45:26 -0700 Subject: [PATCH] Improve:cmake. --- CMakeLists.txt | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 219ef3a0..61145a71 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -17,7 +17,7 @@ include(CheckCXXCompilerFlag) CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) CHECK_CXX_COMPILER_FLAG("-std=c++14" COMPILER_SUPPORTS_CXX14) - +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99") # 获取所有修改过的文件 execute_process( @@ -26,8 +26,13 @@ execute_process( OUTPUT_STRIP_TRAILING_WHITESPACE ) set(ALL_MODEFIED_FILES "") +string(LENGTH "${MODIFIED_FILES}" GIT_RESULT_STRING_LENGTH) +if(GIT_RESULT_STRING_LENGTH EQUAL 0) + message("Nothing changed.") +else() + string(REPLACE "\n" ";" MODIFIED_FILES_LIST ${MODIFIED_FILES}) +endif() # 遍历每个文件 -string(REPLACE "\n" ";" MODIFIED_FILES_LIST ${MODIFIED_FILES}) foreach(FILE ${MODIFIED_FILES_LIST}) # 检查文件扩展名,只格式化.cpp和.h文件 get_filename_component(FILE_EXT ${FILE} EXT) @@ -35,7 +40,7 @@ foreach(FILE ${MODIFIED_FILES_LIST}) set(ALL_MODEFIED_FILES "${ALL_MODEFIED_FILES};${FILE}") endif() endforeach() -set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99") +string(LENGTH "${ALL_MODEFIED_FILES}" MODIFIED_STRING_LENGTH) # find the clang-tidy tools unset(CLANG_TIDY_EXE CACHE) unset(CLANG_TIDY_FIND CACHE) @@ -47,6 +52,7 @@ if ("${CLANG_TIDY_SUPPORT}" MATCHES "true") set(CLANG_TIDY_EXE ${CLANG_TIDY_FIND} CACHE STRING INTERNAL) message("CLANG_TIDY_EXE = ${CLANG_TIDY_EXE}") + if(MODIFIED_STRING_LENGTH GREATER 0) add_custom_target( check_modified_code COMMAND ${CLANG_TIDY_EXE} @@ -57,6 +63,7 @@ if ("${CLANG_TIDY_SUPPORT}" MATCHES "true") -p ${PLATFORM_PATH}/cmake-shell WORKING_DIRECTORY ${PLATFORM_PATH} ) + endif() else() # message(FATAL_ERROR "See ${CMAKE_SOURCE_DIR_IPCSDK}/doc.") @@ -79,6 +86,7 @@ if ("${CLANG_FORMAT_SUPPORT}" MATCHES "true") set(CLANG_FORMAT_EXE ${CLANG_FORMAT_FIND} CACHE STRING INTERNAL) message("CLANG_FORMAT_EXE = ${CLANG_FORMAT_EXE}") + if(MODIFIED_STRING_LENGTH GREATER 0) add_custom_target( format_modified_code COMMAND ${CLANG_FORMAT_EXE} @@ -86,6 +94,7 @@ if ("${CLANG_FORMAT_SUPPORT}" MATCHES "true") -i ${ALL_MODEFIED_FILES} WORKING_DIRECTORY ${PLATFORM_PATH} ) + endif() else() message(FATAL_ERROR "You set support clang-format, but clang-format not found. @@ -98,10 +107,12 @@ See:${IPC_SDK_PATH}/builde/global_config.cmake") endif() endif() +if(MODIFIED_STRING_LENGTH GREATER 0) add_custom_target( improve_modified_code DEPENDS format_modified_code check_modified_code ) +endif() if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX}) # execute_process(COMMAND sh build_lvgl_for_cmakelist.sh ${TARGET_PLATFORM} ${CMAKE_SOURCE_DIR_IPCSDK} WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/lvglLinux-x86/)