Merge branch 'master-develop' of https://gitee.com/shenzhen-jiuyilian/ipc into develop

This commit is contained in:
15580979454 2023-09-04 23:55:45 +08:00
commit a4ed1ba3a0
7 changed files with 80 additions and 18 deletions

View File

@ -18,6 +18,22 @@ 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++0x" COMPILER_SUPPORTS_CXX0X)
CHECK_CXX_COMPILER_FLAG("-std=c++14" COMPILER_SUPPORTS_CXX14) CHECK_CXX_COMPILER_FLAG("-std=c++14" COMPILER_SUPPORTS_CXX14)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=c99")
# find the clang-tidy tools
unset(CLANG_TIDY_EXE CACHE)
unset(CLANG_TIDY_FIND CACHE)
if ("${CLANG_TIDY_SUPPORT}" MATCHES "true")
find_program(CLANG_TIDY_FIND NAMES clang-tidy PATHS ${LLVM_PATH}/build/bin)
if(CLANG_TIDY_FIND)
message(STATUS "clang-tidy found: ${CLANG_TIDY_FIND}")
# set(CMAKE_CXX_CLANG_TIDY "${CLANG_TIDY_EXE}" "-header-filter=no.h -system-headers=no.h -checks=modernize-use-override")
set(CLANG_TIDY_EXE ${CLANG_TIDY_FIND} CACHE STRING INTERNAL)
message("CLANG_TIDY_EXE = ${CLANG_TIDY_EXE}")
else()
message(FATAL_ERROR "You set support clang-tidy, bug clang-tidy not found.")
endif()
endif()
if(${TARGET_PLATFORM} MATCHES ${DEFINE_LINUX}) 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/) # execute_process(COMMAND sh build_lvgl_for_cmakelist.sh ${TARGET_PLATFORM} ${CMAKE_SOURCE_DIR_IPCSDK} WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/lvglLinux-x86/)
# add_subdirectory(external/lvglLinux-x86) # add_subdirectory(external/lvglLinux-x86)

View File

@ -28,12 +28,16 @@ add_definitions(-Wstrict-aliasing -Wwrite-strings)
set(TOOLCHAIN_NAME arm-linux-gnueabihf) set(TOOLCHAIN_NAME arm-linux-gnueabihf)
set(TARGET_PLATFORM "linux") set(TARGET_PLATFORM "linux")
set(SUBMODULE_PATH_OF_IPCSDK "") set(SUBMODULE_PATH_OF_IPCSDK "")
set(PLATFORM_PATH "${CMAKE_CURRENT_SOURCE_DIR}") set(PLATFORM_PATH "${CMAKE_CURRENT_SOURCE_DIR}")
set(COVERAGE_ON "true") set(COVERAGE_ON "true")
# ------------ build curl + openssl ------------ start # ------------ build curl + openssl ------------ start
set(CROSS_COMPILE_PREFIX "") set(CROSS_COMPILE_PREFIX "")
set(CURL_OPENSSL_LIB_SHARED_ENABLE "false") set(CURL_OPENSSL_LIB_SHARED_ENABLE "false")
# ------------ build curl + openssl ------------ end # ------------ build curl + openssl ------------ end
# ------------ build clang-tidy ------------ start
set(CLANG_TIDY_SUPPORT "true")
set(LLVM_PATH "/home/xiaojiazhu/project/tmp/llvm-project")
# ------------ build clang-tidy ------------ end

View File

@ -14,7 +14,6 @@ set(EXTERNAL_SOURCE_PATH "${CMAKE_SOURCE_DIR_IPCSDK}/external")
set(CLANG_TIDY_CHECKS "-*,\ set(CLANG_TIDY_CHECKS "-*,\
llvm-else-after-return,\ llvm-else-after-return,\
llvm-header-guard,\
llvm-include-order,\ llvm-include-order,\
llvm-namespace-comment,\ llvm-namespace-comment,\
llvm-prefer-isa-or-dyn-cast-in-conditionals,\ llvm-prefer-isa-or-dyn-cast-in-conditionals,\
@ -39,5 +38,8 @@ misc-unused-alias-decls,\
misc-unused-using-decls,\ misc-unused-using-decls,\
readability-identifier-naming") readability-identifier-naming")
# set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},llvm-header-guard")
set(CLANG_TIDY_CHECKS "${CLANG_TIDY_CHECKS},-clang-diagnostic-error")
set(CLANG_TIDY_CONFIG "-header-filter=\'.*\'") set(CLANG_TIDY_CONFIG "-header-filter=\'.*\'")
set(CLANG_TIDY_CONFIG "${CLANG_TIDY_CONFIG} -p ${CMAKE_SOURCE_DIR_IPCSDK}/cmake-shell-linux") set(CLANG_TIDY_CONFIG "${CLANG_TIDY_CONFIG} -p ${CMAKE_SOURCE_DIR_IPCSDK}/cmake-shell-linux")

View File

@ -0,0 +1,32 @@
# 1. clang-tidy使用指南
   使用clang-tidy工具进行代码规范管理。
1. 编译时实时报错;
2. 指定自研源码检测;
## 1.1. 环境搭建
1. llvm使用cmake编译cmake版本要求 3.20以上此处使用cmake-3.27.4
```
// cmake源码目录//tools/cmake-3.27.4.tar.gz
// cmake源码安装
tar zxvf cmake-3.27.4.tar.gz
cd cmake-3.27.4/
sudo apt-get install openssl // 如果执行./bootstrap提示缺少ssl相关资源执行此安装命令
./bootstrap
make
sudo make install
```
2. 安装llvm
```
// 下载源码
git clone https://github.com/llvm/llvm-project.git
cd llvm-project/
mkdir build
cd build
cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Release -DLLVM_TARGETS_TO_BUILD="X86" -DLLVM_ENABLE_PROJECTS="clang;clang-tools-extra" ../llvm
make -j8
find ./ -name clang-tidy // 确认编译完成
```
## 1.2. clang-tidy使用

View File

@ -28,6 +28,8 @@ target_link_libraries(${ABSTRACT_TARGET} StatusCode Log)
add_library(${IMPL_TARGET} STATIC ${IMPL_SRC_FILES}) add_library(${IMPL_TARGET} STATIC ${IMPL_SRC_FILES})
target_link_libraries(${IMPL_TARGET} ${ABSTRACT_TARGET} Log) target_link_libraries(${IMPL_TARGET} ${ABSTRACT_TARGET} Log)
if ("${CLANG_TIDY_SUPPORT}" MATCHES "true")
add_custom_target( add_custom_target(
hal_code_check hal_code_check
COMMAND ${CMAKE_SOURCE_DIR_IPCSDK}/tools/clang-tidy/clang-tidy COMMAND ${CMAKE_SOURCE_DIR_IPCSDK}/tools/clang-tidy/clang-tidy
@ -37,9 +39,9 @@ add_custom_target(
${ABSTRACT_SRC_FILES} ${ABSTRACT_SRC_FILES}
${CLANG_TIDY_CONFIG} ${CLANG_TIDY_CONFIG}
-p ${CMAKE_SOURCE_DIR_IPCSDK}/cmake-shell-linux -p ${CMAKE_SOURCE_DIR_IPCSDK}/cmake-shell-linux
# -- -I /usr/include/linux/ -X c++
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR_IPCSDK}/hal WORKING_DIRECTORY ${CMAKE_SOURCE_DIR_IPCSDK}/hal
) )
add_custom_command( add_custom_command(
TARGET ${IMPL_TARGET} TARGET ${IMPL_TARGET}
TARGET ${ABSTRACT_TARGET} TARGET ${ABSTRACT_TARGET}
@ -47,3 +49,4 @@ add_custom_command(
COMMAND make hal_code_check COMMAND make hal_code_check
WORKING_DIRECTORY ${PROJECT_ROOT_PATH}/cmake-shell-linux/ WORKING_DIRECTORY ${PROJECT_ROOT_PATH}/cmake-shell-linux/
) )
endif()

View File

@ -5,6 +5,9 @@ set(LIBRARY_OUTPUT_PATH ${LIBS_OUTPUT_PATH})
include_directories( include_directories(
./src ./src
./include ./include
# /usr/include/linux
# /usr/include/c++/9/tr1
# /usr/include/c++/9
${UTILS_SOURCE_PATH}/ReturnCode/include ${UTILS_SOURCE_PATH}/ReturnCode/include
) )
@ -29,13 +32,14 @@ target_link_libraries(${IMPL_TARGET} ${ABSTRACT_TARGET} ReturnCode)
add_custom_target( add_custom_target(
log_code_check log_code_check
COMMAND ${CMAKE_SOURCE_DIR_IPCSDK}/tools/clang-tidy/clang-tidy # COMMAND ${CMAKE_SOURCE_DIR_IPCSDK}/tools/clang-tidy/clang-tidy
COMMAND ${CLANG_TIDY_EXE}
-checks='${CLANG_TIDY_CHECKS}' -checks='${CLANG_TIDY_CHECKS}'
${IMPL_SRC_FILES} ${IMPL_SRC_FILES}
${ABSTRACT_FILES} ${ABSTRACT_FILES}
${CLANG_TIDY_CONFIG} ${CLANG_TIDY_CONFIG}
-header-filter=.* --header-filter=.*
-system-headers=false --system-headers=false
-p ${CMAKE_SOURCE_DIR_IPCSDK}/cmake-shell-linux -p ${CMAKE_SOURCE_DIR_IPCSDK}/cmake-shell-linux
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR_IPCSDK}/utils/LogC WORKING_DIRECTORY ${CMAKE_SOURCE_DIR_IPCSDK}/utils/LogC
) )

View File

@ -1,6 +1,5 @@
#include "iLog.h" #include "iLog.h"
#include "ReturnCode.h" #include "ReturnCode.h"
#include <stddef.h>
#include <string.h> #include <string.h>
static RETURN_CODE_C def_log_init(ILog *impl) static RETURN_CODE_C def_log_init(ILog *impl)
@ -14,11 +13,12 @@ static RETURN_CODE_C def_log_unInit(ILog *impl)
} }
static void def_free(ILog *impl) static void def_free(ILog *impl)
{} {
}
static void def_log_fmt(ILog *log, const LogLeveL level, const char *fmt, ...) static void def_log_fmt(ILog *log, const LogLeveL level, const char *fmt, ...)
{} {
}
static ILog default_log = { static ILog default_log = {
.init = def_log_init, .init = def_log_init,
@ -41,7 +41,8 @@ void reset_log_impl(ILog *impl)
RETURN_CODE_C new_i_Log(ILog **impl) RETURN_CODE_C new_i_Log(ILog **impl)
{ {
if (!impl || !(*impl)) { if (!impl || !(*impl))
{
return CreateReturnCode(C_RETURN_CODE_NOT_OK); return CreateReturnCode(C_RETURN_CODE_NOT_OK);
} }
memcpy(*impl, &default_log, sizeof(ILog)); memcpy(*impl, &default_log, sizeof(ILog));