cmake_minimum_required(VERSION 3.16)

project(DBC_Parser VERSION 0.1 LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

find_package(Qt6 REQUIRED COMPONENTS Quick)

qt_standard_project_setup(REQUIRES 6.5)

qt_add_executable(appDBC_Parser
    main.cpp
    DbcParser.cpp
    ./DBCClient/Qtclient.cpp
)

qt_add_qml_module(appDBC_Parser
    URI DBC_Parser
    VERSION 1.0
    QML_FILES
        Main.qml
    SOURCES 
        DbcParser.h
        DbcParser.cpp

        SOURCES
SOURCES DBCClient/server.cpp
RESOURCES DBCClient/Makefile DBCClient/README DBCClient/server.conf
SOURCES DBCClient/server.cpp
        QML_FILES AddMessageDialog.qml
        QML_FILES AddSignalDialog.qml
        QML_FILES SendMessageDialog.qml
)

if(UNIX)
    set(PLATFORM_SOURCES server.cpp)
endif()

# Qt for iOS sets MACOSX_BUNDLE_GUI_IDENTIFIER automatically since Qt 6.1.
# If you are developing for iOS or macOS you should consider setting an
# explicit, fixed bundle identifier manually though.
set_target_properties(appDBC_Parser PROPERTIES
#    MACOSX_BUNDLE_GUI_IDENTIFIER com.example.appDBC_Parser
    MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION}
    MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR}
    MACOSX_BUNDLE TRUE
    WIN32_EXECUTABLE TRUE
)

target_link_libraries(appDBC_Parser
    PRIVATE Qt6::Quick
)

include(GNUInstallDirs)
install(TARGETS appDBC_Parser
    BUNDLE DESTINATION .
    LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
    RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
find_package(Qt6 REQUIRED COMPONENTS Quick QuickControls2)
target_link_libraries(appDBC_Parser PRIVATE Qt6::QuickControls2)
