﻿get_filename_component(CURRENT_FOLDER ${CMAKE_CURRENT_SOURCE_DIR} NAME)
string(TIMESTAMP RUN_TIME)
message( " model start : " ${CURRENT_FOLDER}:${RUN_TIME})
STRING(REPLACE "/RTC1" "" CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG})
set(DLL_NAMES "halcon" "opencv""myTools" "mvs" "spdLog" "breakpad" "hwinfo")
foreach(child ${DLL_NAMES})         
    LIST(APPEND ENV_INCLUDE ${${child}_include})
    LIST(APPEND ENV_LIB ${${child}_lib})
    LIST(APPEND ENV_TARGET ${${child}_target_link})         
endforeach()
message("   ENV_INCLUDE : " ${ENV_INCLUDE} )
message("   ENV_LIB : " ${ENV_LIB} )
message("   ENV_TARGET : " ${ENV_TARGET} )
include_directories(
    ${ENV_INCLUDE}
    ${PROJECT_ROOT_PATH}/lib/${CMAKE_BUILD_TYPE}
    ${CMAKE_CURRENT_SOURCE_DIR}/systemState
    ${CMAKE_CURRENT_SOURCE_DIR}/logger
    ${CMAKE_CURRENT_SOURCE_DIR}/GUI
    ${CMAKE_CURRENT_SOURCE_DIR}/appConfig 
    ${CMAKE_CURRENT_SOURCE_DIR}/appConfig/spdlog

    ${CMAKE_CURRENT_SOURCE_DIR}/GUI/appConfig
    ${CMAKE_CURRENT_SOURCE_DIR}/GUI/pages
    ${CMAKE_CURRENT_SOURCE_DIR}/GUI/halconAlgo
    ${CMAKE_CURRENT_SOURCE_DIR}/GUI/uiModule
)

link_directories (
    ${ENV_LIB}
)
add_compile_options(/utf-8)
# qt引用
set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(CMAKE_AUTOMOC ON)
SET(CMAKE_AUTOUIC OFF)
set(CMAKE_AUTORCC ON) 

find_package(Qt5 COMPONENTS ${qtlist} REQUIRED )
foreach(item ${qtlist})
    list(APPEND lib_list Qt5::${item})
endforeach()

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /openmp")


FILE(GLOB_RECURSE APP_HEADERPP_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.hpp" )
FILE(GLOB_RECURSE APP_HEADER_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.h" )
FILE(GLOB_RECURSE APP_SRC_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.cpp")

INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
set(RESOURCES_DIR ${CMAKE_SOURCE_DIR}/resources/resources.qrc)
set(WIN_RC_DIR ${CMAKE_SOURCE_DIR}/resources/ff.rc)
include_directories(${CMAKE_BINARY_DIR})
add_executable( ${CURRENT_FOLDER}
        ${APP_HEADERPP_FILES}
        ${APP_HEADER_FILES}
        ${APP_SRC_FILES}
        ${BREAKPAD_WINDOWS_CC_FILES}
        ${APP_UI_FILES} 
        ${WIN_RC_DIR} 
        ${RESOURCES_DIR} 
        ${PROJECT_ROOT_PATH}/include/interface.h)
# 添加预处理定义

SET(ALL_DLL 
    ${ENV_TARGET} 
    ${lib_list}
)
#add_custom_target(
#    run_cmd ALL
#    COMMAND cmd /c "${ENVPATH}/qt5/bin/moc.exe  ${PROJECT_ROOT_PATH}/include/frontendSignalHub.h -o  ${CMAKE_CURRENT_SOURCE_DIR}/moc_qtBridge.cpp"
#   COMMENT "Running command on every build"
#)
message("all_lib :" ${ALL_DLL})
target_link_libraries(${CURRENT_FOLDER}  ${ALL_DLL} )
string(TIMESTAMP RUN_TIME)
message("C++ Standard: ${CMAKE_CXX_STANDARD}")
message( " model end : " ${CURRENT_FOLDER}:${RUN_TIME})