﻿get_filename_component(CURRENT_FOLDER ${CMAKE_CURRENT_SOURCE_DIR} NAME)
string(TIMESTAMP RUN_TIME)
message( " model start : " ${CURRENT_FOLDER}:${RUN_TIME})
set(DLL_NAMES "halcon" "opencv" "handdleAI""myTools" "mvs")
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}
    ${CMAKE_CURRENT_SOURCE_DIR}/mission/algo
    ${CMAKE_CURRENT_SOURCE_DIR}/appConfig

    ${CMAKE_CURRENT_SOURCE_DIR}/service
    ${CMAKE_CURRENT_SOURCE_DIR}/front
    ${CMAKE_CURRENT_SOURCE_DIR}/logger
    ${CMAKE_CURRENT_SOURCE_DIR}/simpleTools
    ${CMAKE_CURRENT_SOURCE_DIR}/uiModule
    ${CMAKE_CURRENT_SOURCE_DIR}/basic
    ${CMAKE_CURRENT_SOURCE_DIR}/python
    ${CMAKE_CURRENT_SOURCE_DIR}/pluginManager
    ${CMAKE_CURRENT_SOURCE_DIR}/subModule_pyFinsTcp
)

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")
FILE(GLOB_RECURSE APP_UI_FILES "${CMAKE_CURRENT_SOURCE_DIR}/*.cc")

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)
# 生成动态库（DLL/.so/.dylib）

FILE(GLOB CORE_HEADER_FILES "${PROJECT_ROOT_PATH}/include/core/*.h")
add_library(${CURRENT_FOLDER} SHARED
    ${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
    ${CORE_HEADER_FILES}
)

SET(ALL_DLL 
    ${ENV_TARGET} 
    ${lib_list}
)
message("all_lib :" ${ALL_DLL})
target_link_libraries(
  ${CURRENT_FOLDER}
  PRIVATE ${ALL_DLL})
string(TIMESTAMP RUN_TIME)
message("C++ Standard: ${CMAKE_CXX_STANDARD}")
message( " model end : " ${CURRENT_FOLDER}:${RUN_TIME})
