cmake_minimum_required(VERSION 3.16)
project(shipheart_wasm LANGUAGES CXX)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)

find_package(Qt6 REQUIRED COMPONENTS
    Quick
    Qml
    QuickControls2
    Network
)

qt_add_executable(shipheart_wasm
    main.cpp
    dataprovider.cpp
    dataprovider.h
    mock/mock_bdd.cpp
    mock/mock_bdd.h
    mock/mock_systeme.h
    mock/mock_tbmesures.h
    qml.qrc
)

target_link_libraries(shipheart_wasm PRIVATE
    Qt6::Quick
    Qt6::Qml
    Qt6::QuickControls2
    Qt6::Network
)

# Safari iOS a un plafond de mémoire par onglet bien plus bas que les valeurs
# par défaut de Qt pour wasm (cf §19.4 de la synthèse).
set_target_properties(shipheart_wasm PROPERTIES
    QT_WASM_INITIAL_MEMORY 134217728   # 128 Mo
    QT_WASM_MAXIMUM_MEMORY 536870912   # 512 Mo
)

install(TARGETS shipheart_wasm
    DESTINATION ${CMAKE_INSTALL_PREFIX}
)
