cmake_minimum_required(VERSION 3.14)

set(CMAKE_CXX_STANDARD 17)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

project(essim
  LANGUAGES CXX
  VERSION 0.1
  DESCRIPTION "System digital twin."
)

include(FetchContent)

set(FTXUI_BUILD_DOCS OFF CACHE INTERNAL "")
set(FTXUI_BUILD_EXAMPLES OFF CACHE INTERNAL "")
set(FTXUI_BUILD_TESTS OFF CACHE INTERNAL "")
set(FTXUI_ENABLE_INSTALL OFF CACHE INTERNAL "")

FetchContent_Declare(ftxui
  GIT_REPOSITORY https://github.com/ArthurSonzogni/FTXUI.git
  GIT_TAG v6.1.9
  GIT_SHALLOW TRUE
)
FetchContent_MakeAvailable(ftxui)

find_package(libzip REQUIRED)
find_package(pugixml REQUIRED)

file(GLOB_RECURSE ALL_SOURCES "src/*.cpp")

add_executable(essim ${ALL_SOURCES})

target_include_directories(essim PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/src)

target_link_libraries(essim
  PRIVATE
    ftxui::screen
    ftxui::dom
    ftxui::component
    libzip::zip
    pugixml::pugixml
)
