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 # ) set(CMAKE_AUTOMOC ON) set(CMAKE_INCLUDE_CURRENT_DIR ON) aux_source_directory(./src SRC_FILES) set(TARGET_NAME ConfigBase) add_library(${TARGET_NAME} STATIC ${SRC_FILES}) target_link_libraries(${TARGET_NAME} StatusCode Log config++) if ("${CLANG_TIDY_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 ${CMAKE_SOURCE_DIR_IPCSDK}/cmake-shell WORKING_DIRECTORY ${UTILS_SOURCE_PATH}/Config ) add_custom_command( TARGET ${TARGET_NAME} PRE_BUILD COMMAND make Config_code_check WORKING_DIRECTORY ${PROJECT_ROOT_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 COMMAND echo "Build libconfig-1.7.3. CMAKE_C_COMPILER = ${CMAKE_C_COMPILER}" # COMMAND tar zxvf libconfig-1.7.3.tar.gz COMMAND sh build_libconfig.sh ${TARGET_PLATFORM} ${CROSS_COMPILER_PATH} ${CMAKE_C_COMPILER} WORKING_DIRECTORY ${EXTERNAL_SOURCE_PATH}/libconfig ) add_custom_target( config++ DEPENDS ${EXTERNAL_SOURCE_PATH}/libconfig/libconfig-1.7.3/lib/.libs/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})