67 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			67 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
| 
 | |
| include(${CMAKE_SOURCE_DIR_IPCSDK}/build/global_config.cmake)
 | |
| include(${CMAKE_CURRENT_SOURCE_DIR}/build/hal.cmake)
 | |
| set(EXECUTABLE_OUTPUT_PATH ${EXEC_OUTPUT_PATH})
 | |
| set(LIBRARY_OUTPUT_PATH ${LIBS_OUTPUT_PATH})
 | |
| 
 | |
| include_directories(
 | |
|     ./abstract
 | |
|     ./src
 | |
|     ./include
 | |
|     ${UTILS_SOURCE_PATH}/StatusCode/include
 | |
|     ${UTILS_SOURCE_PATH}/Log/include
 | |
|     ${UTILS_SOURCE_PATH}/LinuxApi/include
 | |
|     ${UTILS_SOURCE_PATH}/KeyControl/include
 | |
|     ${UTILS_SOURCE_PATH}/LedControl/include
 | |
| )
 | |
| #do not rely on any other library
 | |
| # link_directories(
 | |
| #     ${EXTERNAL_SOURCE_PATH}/curl/curl-8.1.2/build/lib
 | |
| # )
 | |
| 
 | |
| aux_source_directory(./abstract ABSTRACT_SRC_FILES)
 | |
| aux_source_directory(./src IMPL_SRC_FILES)
 | |
| 
 | |
| set(ABSTRACT_TARGET HalAbstract)
 | |
| set(IMPL_TARGET Hal)
 | |
| add_library(${ABSTRACT_TARGET} STATIC ${ABSTRACT_SRC_FILES})
 | |
| target_link_libraries(${ABSTRACT_TARGET} LinuxApi KeyControl LedControl StatusCode Log)
 | |
| add_library(${IMPL_TARGET} STATIC ${IMPL_SRC_FILES})
 | |
| target_link_libraries(${IMPL_TARGET} ${ABSTRACT_TARGET})
 | |
| 
 | |
| 
 | |
| if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
 | |
| add_custom_target(
 | |
|     Hal_code_check
 | |
|     COMMAND ${CLANG_TIDY_EXE}
 | |
|     -checks='${CLANG_TIDY_CHECKS}'
 | |
|     --header-filter=.*
 | |
|     --system-headers=false
 | |
|     ${ABSTRACT_SRC_FILES}
 | |
|     ${IMPL_SRC_FILES}
 | |
|     ${CLANG_TIDY_CONFIG}
 | |
|     -p ${PLATFORM_PATH}/cmake-shell
 | |
|     WORKING_DIRECTORY ${CMAKE_SOURCE_DIR_IPCSDK}/hal
 | |
| )
 | |
| file(GLOB_RECURSE HEADER_FILES *.h)
 | |
| add_custom_target(
 | |
|     Hal_code_format
 | |
|     COMMAND ${CLANG_FORMAT_EXE}
 | |
|     -style=file
 | |
|     -i ${ABSTRACT_SRC_FILES} ${IMPL_SRC_FILES} ${HEADER_FILES}
 | |
|     WORKING_DIRECTORY ${HAL_SOURCE_PATH}
 | |
| )
 | |
| add_custom_command(
 | |
|     TARGET ${IMPL_TARGET}
 | |
|     PRE_BUILD
 | |
|     COMMAND make Hal_code_check
 | |
|     COMMAND make Hal_code_format
 | |
|     WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
 | |
| )
 | |
| endif()
 | |
| 
 | |
| define_file_name(${IMPL_TARGET})
 | |
| define_file_name(${ABSTRACT_TARGET})
 | |
| 
 | |
| file(GLOB_RECURSE INSTALL_HEADER_FILES include/*.h)
 | |
| install(FILES ${INSTALL_HEADER_FILES} DESTINATION include) | 
