cmake_minimum_required(VERSION 3.21) project(katja VERSION 1.0 ) include(FindBoost) include(FetchContent) set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED True) add_executable(katja src/component.h src/command.h src/package.h src/sbo.h src/component.cpp src/command.cpp src/package.cpp src/sbo.cpp src/main.cpp ) target_include_directories(katja PRIVATE src) find_package(Boost 1.78.0 REQUIRED COMPONENTS filesystem) include_directories(${Boost_INCLUDE_DIRS}) FetchContent_Declare(ftxui GIT_REPOSITORY https://github.com/ArthurSonzogni/ftxui GIT_TAG v4.0.0 ) FetchContent_GetProperties(ftxui) if(NOT ftxui_POPULATED) FetchContent_Populate(ftxui) add_subdirectory(${ftxui_SOURCE_DIR} ${ftxui_BINARY_DIR} EXCLUDE_FROM_ALL) endif() target_link_libraries(katja PRIVATE Boost::filesystem PRIVATE ftxui::screen PRIVATE ftxui::dom PRIVATE ftxui::component )