98 lines
3.0 KiB
CMake
98 lines
3.0 KiB
CMake
|
|
include(${CMAKE_SOURCE_DIR_IPCSDK}/build/global_config.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(
|
|
Config_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}/Config
|
|
)
|
|
add_custom_command(
|
|
TARGET ${TARGET_NAME}
|
|
PRE_BUILD
|
|
COMMAND make Config_code_check
|
|
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
|
)
|
|
file(GLOB_RECURSE HEADER_FILES *.h)
|
|
add_custom_target(
|
|
Config_code_format
|
|
COMMAND ${CLANG_FORMAT_EXE}
|
|
-style=file
|
|
-i ${SRC_FILES} ${HEADER_FILES}
|
|
WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/Config
|
|
)
|
|
add_custom_command(
|
|
TARGET ${TARGET_NAME}
|
|
PRE_BUILD
|
|
COMMAND make Config_code_check
|
|
COMMAND make Config_code_format
|
|
WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
|
|
)
|
|
endif()
|
|
|
|
# build libconfig before make libConfig.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
|
|
)
|
|
|
|
# add_custom_command(
|
|
# TARGET ${TARGET_NAME}
|
|
# PRE_BUILD
|
|
# COMMAND make compile_libconfig
|
|
# WORKING_DIRECTORY ${PROJECT_ROOT_PATH}/cmake-shell
|
|
# )
|
|
|
|
function(config_owner 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 "CONFIG_OWNER")
|
|
set_property(
|
|
SOURCE "${source_file}"
|
|
PROPERTY COMPILE_DEFINITIONS ${defs})
|
|
endforeach()
|
|
endfunction()
|
|
|
|
define_file_name(${TARGET_NAME})
|
|
config_owner(${TARGET_NAME})
|
|
|
|
file(GLOB_RECURSE INSTALL_HEADER_FILES include/*.h)
|
|
install(FILES ${INSTALL_HEADER_FILES} DESTINATION include) |