cmake_minimum_required(VERSION 3.5)

project(LhSideScanSDKGuiDemo VERSION 0.1 LANGUAGES CXX)

set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Widgets Network)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Network)

include_directories(${PROJECT_SOURCE_DIR}/LhSidescanSDK/include) 
link_directories(${PROJECT_SOURCE_DIR}/LhSidescanSDK/bin) 

set(PROJECT_SOURCES
        main.cpp
        mainwindow.cpp
        mainwindow.h
        mainwindow.ui
        common/CircleBuffer.cpp
        net/UdpReceiver.cpp
        Processing.cpp
        FileRead.cpp
        FileSave.cpp
        DeviceInfo.h
)

# add_executable(${PROJECT_NAME} ${PROJECT_SOURCES})
add_executable(${PROJECT_NAME} #[[WIN32]] ${PROJECT_SOURCES})

target_link_libraries(${PROJECT_NAME} debug LhSidescanSDK_X64d)
target_link_libraries(${PROJECT_NAME} optimized LhSidescanSDK_X64)

set_target_properties(LhSideScanSDKGuiDemo PROPERTIES
    MACOSX_BUNDLE_GUI_IDENTIFIER my.example.com
    MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
    MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
    MACOSX_BUNDLE TRUE
    WIN32_EXECUTABLE TRUE
)

if(CMAKE_SYSTEM_NAME MATCHES "Linux")
    add_definitions(-DUSE_LINUX=1)
    add_definitions(-std=c++17)
    target_link_libraries(${PROJECT_NAME} Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Network -lpthread)
else()
    target_link_libraries(${PROJECT_NAME} ws2_32 Qt${QT_VERSION_MAJOR}::Widgets Qt${QT_VERSION_MAJOR}::Network)
    # add_definitions(-DDLL_EXPORTS)
    add_definitions(-DUSE_WINDOWS=1)
endif()

install(TARGETS LhSideScanSDKGuiDemo
    BUNDLE DESTINATION .
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})

# if(QT_VERSION_MAJOR EQUAL 6)
#     qt_finalize_executable(LhSideScanSDKGuiDemo)
# endif()
