set(moc_sources MainExplorerWindow.h)
set(SOURCE      Main.cxx
                MainExplorerWindow.cxx
                MainExplorerWindow.h)
source_group("" FILES ${SOURCE})

add_subdirectory(actions)
source_group("Actions" FILES ${ACTIONS_FILES})
add_subdirectory(conditions)
source_group("Conditions" FILES ${CONDITIONS_FILES})
add_subdirectory(controls)
source_group("Controls" FILES ${CONTROLS_FILES})
add_subdirectory(showcases)
source_group("Showcase" FILES ${SHOWCASE_FILES})
add_subdirectory(ui)
source_group("UI" FILES ${UI_FILES})

QT5_WRAP_CPP(MOC_BUILT_SOURCES ${moc_sources})
QT5_WRAP_UI(UI_BUILT_SOURCES ${UI_FILES})

source_group("Generated" FILES
  ${MOC_BUILT_SOURCES}
  ${UI_BUILT_SOURCES}
)
list(APPEND SOURCE ${UI_BUILT_SOURCES})
list(APPEND SOURCE ${MOC_BUILT_SOURCES}) 
QT5_ADD_RESOURCES(RESOURCES resources.qrc)


add_executable(${PROJECT_NAME} MACOSX_BUNDLE ${SOURCE}  ${RESOURCES})
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR})
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
target_link_libraries(${PROJECT_NAME}
  Pulse::CommonPulseModels
  Qwt::Qwt
  ${QT_LIBRARIES}
)
if(NOT MSVC)
  target_link_libraries(${PROJECT_NAME} general  -lpthread -lm)
endif()

add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD
                   COMMAND ${CMAKE_COMMAND} -E copy $<TARGET_FILE:${PROJECT_NAME}> ${CMAKE_INSTALL_PREFIX}/bin)

if(MSVC) # Configure running executable out of MSVC
   if(USE_SYSTEM_Pulse)
    file(COPY ${Qwt_ROOT_DIR}/lib/qwt.dll  DESTINATION ${Pulse_ROOT}/bin)
    file(COPY ${Qwt_ROOT_DIR}/lib/qwtd.dll DESTINATION ${Pulse_ROOT}/bin)
    set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DEBUGGER_WORKING_DIRECTORY "${Pulse_ROOT}/bin")
  else()
    set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DEBUGGER_WORKING_DIRECTORY "${CMAKE_INSTALL_PREFIX}")
  endif()
endif()
