﻿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" "sqlite" "handdleAI""myTools" "mvs" "3DAI" "python")
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}/algo
    ${CMAKE_CURRENT_SOURCE_DIR}/appConfig
    ${CMAKE_CURRENT_SOURCE_DIR}/back
    ${CMAKE_CURRENT_SOURCE_DIR}/front
    ${CMAKE_CURRENT_SOURCE_DIR}/handleAi
    ${CMAKE_CURRENT_SOURCE_DIR}/halconAlgo
    ${CMAKE_CURRENT_SOURCE_DIR}/logger
    ${CMAKE_CURRENT_SOURCE_DIR}/simpleTools
    ${CMAKE_CURRENT_SOURCE_DIR}/uiModule
    ${CMAKE_CURRENT_SOURCE_DIR}/python
    ${CMAKE_CURRENT_SOURCE_DIR}/externlLib
    ${CMAKE_CURRENT_SOURCE_DIR}/externlLib/OpenXLSX
    ${CMAKE_CURRENT_SOURCE_DIR}/externlLib/nowide
    ${CMAKE_CURRENT_SOURCE_DIR}/externlLib/pugixml
    ${CMAKE_CURRENT_SOURCE_DIR}/externlLib/zippy
)

link_directories (
    ${ENV_LIB}
)
# qt引用
set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(CMAKE_AUTOMOC ON)
SET(CMAKE_AUTOUIC ON)
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}/*.ui")

INCLUDE_DIRECTORIES(${CMAEK_CURRENT_BINARY_DIR})
if(ANDROID)
  add_library(${CURRENT_FOLDER}  SHARED
        ${APP_HEADERPP_FILES}
        ${APP_HEADER_FILES}
        ${APP_SRC_FILES}
        ${BREAKPAD_WINDOWS_CC_FILES}
        ${APP_UI_FILES}
)
else()
    if(CMAKE_BUILD_TYPE MATCHES "Debug")
        message( "/////////////DEBUG///////////////")
        set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O0 -g")
        add_executable( ${CURRENT_FOLDER}
        ${APP_HEADERPP_FILES}
        ${APP_HEADER_FILES}
        ${APP_SRC_FILES}
        ${BREAKPAD_WINDOWS_CC_FILES}
        ${APP_UI_FILES} "ff.rc" "icon.qrc")
    else()
        message( "/////////////RELEASE///////////////")
        #set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O3")
        set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} /Zi")
        set(CMAKE_EXE_LINKER_FLAGS_RELEASE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} /DEBUG")
        add_executable( ${CURRENT_FOLDER}
        ${APP_HEADERPP_FILES}
        ${APP_HEADER_FILES}
        ${APP_SRC_FILES}
        ${BREAKPAD_WINDOWS_CC_FILES}
        ${APP_UI_FILES} "ff.rc" "icon.qrc" )
        
    endif()
endif()

SET(ALL_DLL 
    ${ENV_TARGET} 
    ${lib_list}
)
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})
