87 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			CMake
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			87 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			CMake
		
	
	
		
			Executable File
		
	
	
	
	
| set(DEFINE_LINUX                "linux")
 | |
| # set(CMAKE_SOURCE_DIR_IPCSDK     "${CMAKE_SOURCE_DIR}")
 | |
| # set(CMAKE_SOURCE_DIR_IPCSDK     "${CMAKE_SOURCE_DIR_IPCSDK}${SUBMODULE_PATH_OF_IPC_SDK}")
 | |
| set(EXEC_OUTPUT_PATH            "${PLATFORM_PATH}/${PROJECT_OUTPUT_FOLDER}/bin")
 | |
| set(LIBS_OUTPUT_PATH            "${PLATFORM_PATH}/${PROJECT_OUTPUT_FOLDER}/libs")
 | |
| set(EXTERNAL_LIBS_OUTPUT_PATH   "${PLATFORM_PATH}/${PROJECT_OUTPUT_FOLDER}/libs/external")
 | |
| set(TEST_OUTPUT_PATH            "${PLATFORM_PATH}/${PROJECT_OUTPUT_FOLDER}/test")
 | |
| 
 | |
| set(PROJECT_ROOT_PATH           "${PLATFORM_PATH}")
 | |
| set(APPLICATION_SOURCE_PATH     "${CMAKE_SOURCE_DIR_IPCSDK}/application")
 | |
| set(MIDDLEWARE_SOURCE_PATH      "${CMAKE_SOURCE_DIR_IPCSDK}/middleware")
 | |
| set(UTILS_SOURCE_PATH           "${CMAKE_SOURCE_DIR_IPCSDK}/utils")
 | |
| set(HAL_SOURCE_PATH             "${CMAKE_SOURCE_DIR_IPCSDK}/hal")
 | |
| set(TEST_SOURCE_PATH            "${CMAKE_SOURCE_DIR_IPCSDK}/test")
 | |
| set(EXTERNAL_SOURCE_PATH        "${CMAKE_SOURCE_DIR_IPCSDK}/external")
 | |
| 
 | |
| # -------------------------- clang-tidy tools -------------------------- #
 | |
| set(CLANG_TIDY_CHECKS "-*,\
 | |
| llvm-else-after-return,\
 | |
| -llvm-include-order,\
 | |
| llvm-namespace-comment,\
 | |
| llvm-prefer-isa-or-dyn-cast-in-conditionals,\
 | |
| llvm-prefer-register-over-unsigned,\
 | |
| llvm-qualified-auto,\
 | |
| llvm-twine-local,\
 | |
| misc-confusable-identifiers,\
 | |
| misc-definitions-in-headers,\
 | |
| misc-header-include-cycle,\
 | |
| -misc-include-cleaner,\
 | |
| misc-misleading-bidirectional,\
 | |
| misc-misleading-identifier,\
 | |
| misc-misplaced-const,\
 | |
| misc-new-delete-overloads,\
 | |
| misc-non-copyable-objects,\
 | |
| misc-redundant-expression,\
 | |
| misc-static-assert,\
 | |
| misc-throw-by-value-catch-by-reference,\
 | |
| misc-unconventional-assign-operator,\
 | |
| misc-uniqueptr-reset-release,\
 | |
| misc-unused-alias-decls,\
 | |
| misc-unused-using-decls,\
 | |
| 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 "${CLANG_TIDY_CONFIG} -p ${CMAKE_SOURCE_DIR_IPCSDK}/cmake-shell")
 | |
| 
 | |
| # set(CLANG_FORMAT_FILE "${CMAKE_SOURCE_DIR_IPCSDK}/tools/clang-format/.clang-format")
 | |
| set(CLANG_FORMAT_FILE "LLVM ${CMAKE_SOURCE_DIR_IPCSDK}/tools/clang-format/.clang-format")
 | |
| # -------------------------- clang-tidy tools end -------------------------- #
 | |
| # ------------ build clang-tools ------------ #
 | |
| if(${LINUX_TEST} MATCHES "true")
 | |
|     set(CLANG_TIDY_SUPPORT                     "true")
 | |
|     set(CLANG_FORMAT_SUPPORT                   "true")
 | |
|     set(COMPILE_IMPROVE_SUPPORT                "false") # 开启后每次编译可能会很慢
 | |
|     set(LLVM_PATH                              "$ENV{HOME}/llvm-project")
 | |
| endif()
 | |
| # ------------ build clang-tools end ------------ #
 | |
| 
 | |
| # -------------------------- log setting -------------------------- #
 | |
| function(define_file_name target)
 | |
|     get_target_property(source_files "${target}" SOURCES)
 | |
|     foreach(source_file ${source_files})
 | |
|         get_property(defs SOURCE "${source_file}"
 | |
|             PROPERTY COMPILE_DEFINITIONS)
 | |
|         get_filename_component(file_name "${source_file}" NAME)
 | |
|         list(APPEND defs "__F_FILE__=\"${file_name}\"")
 | |
|         set_property(
 | |
|             SOURCE "${source_file}"
 | |
|             PROPERTY COMPILE_DEFINITIONS ${defs})
 | |
|     endforeach()
 | |
| endfunction()
 | |
| function(log_disable target)
 | |
|     get_target_property(source_files "${target}" SOURCES)
 | |
|     foreach(source_file ${source_files})
 | |
|         get_property(defs SOURCE "${source_file}"
 | |
|             PROPERTY COMPILE_DEFINITIONS)
 | |
|         get_filename_component(file_name "${source_file}" NAME)
 | |
|         list(APPEND defs "LOG_DISABLE")
 | |
|         set_property(
 | |
|             SOURCE "${source_file}"
 | |
|             PROPERTY COMPILE_DEFINITIONS ${defs})
 | |
|     endforeach()
 | |
| endfunction()
 | |
| # -------------------------- log setting end -------------------------- # | 
