include(${CMAKE_SOURCE_DIR_IPCSDK}/build/global_config.cmake)
include(${MIDDLEWARE_SOURCE_PATH}/AppManager/build/app_manager.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
    ${UTILS_SOURCE_PATH}/FxHttpServer/include
    ${UTILS_SOURCE_PATH}/WebServer/include
    ${UTILS_SOURCE_PATH}/TcpModule/include
    ${HAL_SOURCE_PATH}/include
    ${EXTERNAL_SOURCE_PATH}/cJSON-1.7.17
)
#do not rely on any other library
#link_directories(
#)

aux_source_directory(./src SRC_FILES)
aux_source_directory(./src/Protocol/SixFrame SRC_FILES)

set(TARGET_NAME AppManager)
add_library(${TARGET_NAME} STATIC ${SRC_FILES})

target_link_libraries(${TARGET_NAME} WebServer TcpModule Hal cjson-static StatusCode Log)

if ("${COMPILE_IMPROVE_SUPPORT}" MATCHES "true")
add_custom_target(
    AppManager_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 ${MIDDLEWARE_SOURCE_PATH}/AppManager
)
file(GLOB_RECURSE HEADER_FILES *.h)
add_custom_target(
    AppManager_code_format
    COMMAND ${CLANG_FORMAT_EXE}
    -style=file
    -i ${SRC_FILES} ${HEADER_FILES}
    WORKING_DIRECTORY ${MIDDLEWARE_SOURCE_PATH}/AppManager
)
add_custom_command(
    TARGET ${TARGET_NAME}
    PRE_BUILD
    COMMAND make AppManager_code_check
    COMMAND make AppManager_code_format
    WORKING_DIRECTORY ${PLATFORM_PATH}/cmake-shell/
)
endif()

define_file_name(${TARGET_NAME})

file(GLOB_RECURSE INSTALL_HEADER_FILES include/*.h)
install(FILES ${INSTALL_HEADER_FILES} DESTINATION include)