cmake_minimum_required(VERSION 2.8.12)

project(ltr35gen)
set(PRJ_VERSION 1.6.2)


set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
set(CMAKE_CXX_EXTENSIONS OFF)

set(PRJ_APP_TITLE   "LTR35Gen")
set(PRJ_DESCR_EN "Measurement software")
set(PRJ_DESCR_RU "Измерительное ПО")

add_definitions(-DPRJ_VERION_STR="${PRJ_VERSION}" -DPRJ_APP_TITLE="${PRJ_APP_TITLE}")

SET(LANGUAGES ru)
if(NOT PRJ_TRANSLATIONS_DIR)
    if(WIN32)
        set(PRJ_TRANSLATIONS_DIR "translations")
    else(WIN32)
        set(PRJ_TRANSLATIONS_DIR "${CMAKE_INSTALL_PREFIX}/share/${PROJECT_NAME}/translations")
    endif(WIN32)
endif(NOT PRJ_TRANSLATIONS_DIR)
add_definitions(-DPRJ_TRANSLATIONS_DIR="${PRJ_TRANSLATIONS_DIR}")


if(MSVC)
    add_definitions(-D_CRT_SECURE_NO_WARNINGS)
    SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} /SUBSYSTEM:WINDOWS,5.01")
endif(MSVC)

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


set(SOURCES 
    main.cpp
    MainWindow.h
    MainWindow.cpp
    MainWindow.ui
    WaitDialog.h
    WaitDialog.cpp
    WaitDialog.ui
    AfcFltConfig.h
    AfcFltConfig.cpp
    ConfigDialog.h
    ConfigDialog.cpp
    ConfigDialog.ui

    lib/LTRModuleSelectionUI/LTRModuleSelectionUI.h
    lib/LTRModuleSelectionUI/LTRModuleSelectionUI.cpp
    lib/QLedIndicator/QLedIndicator.h
    lib/QLedIndicator/QLedIndicator.cpp

    )


find_package(Qt5Widgets)
find_package(Qt5Network)
find_package(Qt5LinguistTools)

set(LIBS ${LIBS} Qt5::Widgets Qt5::Network)


include_directories(${CMAKE_CURRENT_SOURCE_DIR} lib/QTableViewHelpers lib/QLedIndicator lib)


set(LQMEAS_DIR ${CMAKE_CURRENT_SOURCE_DIR}/lib/lqmeas)
set(LQMEAS_DEVS LTR35)
include(${LQMEAS_DIR}/lqmeas.cmake)
set(LIBS ${LIBS} ${LQMEAS_LIBRARIES})
set(ADDITIONAL_FILES ${ADDITIONAL_FILES} ${LQMEAS_FILES})
include_directories(${LQMEAS_INCLUDE_DIRS})
add_definitions(-DLQMEAS_TS_BASENAME="${LQMEAS_TS_BASENAME}")

set(QTABLEVIEWHELPERS_DIR lib/QTableViewHelpers)
include(${QTABLEVIEWHELPERS_DIR}/qtableviewhelpers.cmake)
include_directories(${QTABLEVIEWHELPERS_INCLUDE_DIRS})
set(ADDITIONAL_FILES ${ADDITIONAL_FILES} ${QTABLEVIEWHELPERS_FILES})

set(QTTRANSLATIONSWITCH_DIR lib/QtTranslationSwitch)
include(${QTTRANSLATIONSWITCH_DIR}/qtranslationswitch.cmake)
include_directories(${QTRANSLATIONSWITCH_INCLUDE_DIRS})
set(ADDITIONAL_FILES ${ADDITIONAL_FILES} ${QTRANSLATIONSWITCH_FILES})


add_executable(${PROJECT_NAME} WIN32 ${SOURCES} ${ADDITIONAL_FILES})

target_link_libraries(${PROJECT_NAME} ${LIBS})

source_group("Sources" ${PROJECT_SOURCE_DIR})


if(UNIX)

    install(TARGETS ${PROJECT_NAME} DESTINATION bin)
    install(FILES ${QM_FILES}  ${LQMEAS_QM_FILES} DESTINATION ${PRJ_TRANSLATIONS_DIR})

    configure_file(ltr35gen.desktop.in ${CMAKE_CURRENT_BINARY_DIR}/ltr35gen.desktop)
    install( PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/ltr35gen.desktop DESTINATION share/applications )


    set(CMAKE_PACKAGES ${CMAKE_CURRENT_SOURCE_DIR}/packages/packages.cmake)
    if(NOT OSC_PROJECT)
        set(OSC_PROJECT      home:l-card)
    endif(NOT OSC_PROJECT)

    set(PACKAGE_NAME     "ltr35gen")
    set(PACKAGE_VERSION  ${PRJ_VERSION})
    include(${CMAKE_PACKAGES})
endif(UNIX)
