79 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			CMake
		
	
	
	
	
	
 | 
						|
include(${CMAKE_SOURCE_DIR_IPCSDK}/build/global_config.cmake)
 | 
						|
include(build/config_base.cmake)
 | 
						|
set(EXECUTABLE_OUTPUT_PATH ${EXEC_OUTPUT_PATH})
 | 
						|
set(LIBRARY_OUTPUT_PATH ${LIBS_OUTPUT_PATH})
 | 
						|
 | 
						|
include_directories(
 | 
						|
    ./src
 | 
						|
    ./include
 | 
						|
    ${UTILS_SOURCE_PATH}/StatusCode/include
 | 
						|
    ${UTILS_SOURCE_PATH}/Log/include
 | 
						|
    ${EXTERNAL_SOURCE_PATH}/libconfig/libconfig-1.7.3/lib
 | 
						|
)
 | 
						|
# link_directories(
 | 
						|
#     ${EXTERNAL_SOURCE_PATH}/libconfig/libconfig-1.7.3/lib/.libs
 | 
						|
# )
 | 
						|
 | 
						|
aux_source_directory(./src SRC_FILES)
 | 
						|
 | 
						|
set(TARGET_NAME ConfigBase)
 | 
						|
add_library(${TARGET_NAME} STATIC ${SRC_FILES})
 | 
						|
target_link_libraries(${TARGET_NAME} StatusCode Log libconfig.a)
 | 
						|
 | 
						|
if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
 | 
						|
add_custom_target(
 | 
						|
    ConfigBase_code_check
 | 
						|
    COMMAND ${CLANG_TIDY_EXE}
 | 
						|
    -checks='${CLANG_TIDY_CHECKS}'
 | 
						|
    --header-filter=.*
 | 
						|
    --system-headers=false
 | 
						|
    ${SRC_FILES}
 | 
						|
    ${CLANG_TIDY_CONFIG}
 | 
						|
    -p ${PLATFORM_PATH}/cmake-shell
 | 
						|
    WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/ConfigBase
 | 
						|
)
 | 
						|
add_custom_command(
 | 
						|
    TARGET ${TARGET_NAME}
 | 
						|
    PRE_BUILD
 | 
						|
    COMMAND make ConfigBase_code_check
 | 
						|
    WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
 | 
						|
)
 | 
						|
file(GLOB_RECURSE HEADER_FILES *.h)
 | 
						|
add_custom_target(
 | 
						|
    ConfigBase_code_format
 | 
						|
    COMMAND ${CLANG_FORMAT_EXE}
 | 
						|
    -style=file
 | 
						|
    -i ${SRC_FILES}  ${HEADER_FILES}
 | 
						|
    WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/ConfigBase
 | 
						|
)
 | 
						|
add_custom_command(
 | 
						|
    TARGET ${TARGET_NAME}
 | 
						|
    PRE_BUILD
 | 
						|
    COMMAND make ConfigBase_code_check
 | 
						|
    COMMAND make ConfigBase_code_format
 | 
						|
    WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
 | 
						|
)
 | 
						|
endif()
 | 
						|
 | 
						|
# build libconfig before make libConfigBase.a
 | 
						|
add_custom_command(
 | 
						|
    # OUTPUT ${EXTERNAL_SOURCE_PATH}/libconfig/libconfig-1.7.3/lib/.libs/libconfig.a
 | 
						|
    OUTPUT ${EXTERNAL_LIBS_OUTPUT_PATH}/libconfig.a
 | 
						|
    COMMAND echo "Build libconfig-1.7.3. COMPILE_HOST = ${COMPILE_HOST}"
 | 
						|
    # COMMAND tar zxvf libconfig-1.7.3.tar.gz
 | 
						|
    COMMAND sh build_libconfig.sh ${TARGET_PLATFORM} ${COMPILE_HOST}
 | 
						|
    COMMAND mv ${EXTERNAL_SOURCE_PATH}/libconfig/libconfig-1.7.3/lib/.libs/libconfig.a ${EXTERNAL_LIBS_OUTPUT_PATH}/libconfig.a
 | 
						|
    WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/libconfig/
 | 
						|
)
 | 
						|
add_custom_target(
 | 
						|
    libconfig.a
 | 
						|
    # DEPENDS ${EXTERNAL_SOURCE_PATH}/libconfig/libconfig-1.7.3/lib/.libs/libconfig.a
 | 
						|
    DEPENDS ${EXTERNAL_LIBS_OUTPUT_PATH}/libconfig.a
 | 
						|
)
 | 
						|
 | 
						|
define_file_name(${TARGET_NAME})
 | 
						|
config_owner(${TARGET_NAME})
 | 
						|
 | 
						|
file(GLOB_RECURSE INSTALL_HEADER_FILES include/*.h)
 | 
						|
install(FILES ${INSTALL_HEADER_FILES} DESTINATION include) |