diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 19df640d..efa1186c 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -32,7 +32,7 @@ env: BUILD_DIR: "build" EXT_DIR: "ext" # renovate: datasource=github-tags depName=ArthurSonzogni/ftxui versioning=loose - FTXUI_VERSION: "v6.1.9" + FTXUI_VERSION: "v7.0.3" defaults: diff --git a/CMakeLists.txt b/CMakeLists.txt index 87a9adb9..dd6be8c5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -45,7 +45,7 @@ FetchContent_Declare( ftxui GIT_REPOSITORY https://github.com/ArthurSonzogni/ftxui.git # renovate: datasource=github-tags depName=ArthurSonzogni/ftxui versioning=loose - GIT_TAG v6.1.9 # > + GIT_TAG v7.0.3 # > GIT_SHALLOW 1 # works only with branches or tags, not with arbitrary commit hashes GIT_PROGRESS ON ) @@ -56,7 +56,12 @@ FetchContent_MakeAvailable(ftxui) # external dependencies with find_package -# find_package(Threads REQUIRED) +# NOTE: FTXUI v7 no longer propagates Threads::Threads publicly (FTXUI v6 linked +# it PUBLIC on ftxui::component). main.cpp uses std::thread, so link threads +# explicitly; otherwise linking may fail (e.g. winpthread with MinGW on Windows). +find_package(Threads REQUIRED) + +# find_package( REQUIRED) ############################################################################### @@ -89,7 +94,7 @@ target_include_directories(${MAIN_EXECUTABLE_NAME} SYSTEM PRIVATE # target_link_directories(${MAIN_EXECUTABLE_NAME} PRIVATE ${_BINARY_DIR}/lib) # target_link_libraries(${MAIN_EXECUTABLE_NAME} ) -target_link_libraries(${MAIN_EXECUTABLE_NAME} ftxui::screen ftxui::dom ftxui::component) +target_link_libraries(${MAIN_EXECUTABLE_NAME} ftxui::screen ftxui::dom ftxui::component Threads::Threads) ############################################################################### diff --git a/README.md b/README.md index debb739b..7313bc05 100644 --- a/README.md +++ b/README.md @@ -189,5 +189,5 @@ The [template repository](https://github.com/mcmarius/oop-template) itself is li - FTXUI - - Versiune: [v6.1.9](https://github.com/ArthurSonzogni/ftxui/releases/tag/v6.1.9) (MIT) + - Versiune: [v7.0.3](https://github.com/ArthurSonzogni/ftxui/releases/tag/v7.0.3) (MIT) - adăugați trimiteri **detaliate** către resursele externe care v-au ajutat sau pe care le-ați folosit \ No newline at end of file diff --git a/cmake/CompilerFlags.cmake b/cmake/CompilerFlags.cmake index 79192738..7ffdfe10 100644 --- a/cmake/CompilerFlags.cmake +++ b/cmake/CompilerFlags.cmake @@ -35,7 +35,9 @@ function(set_compiler_flags) ############################################################################### # sanitizers - if("${ARG_RUN_SANITIZERS}" STREQUAL "TRUE") + # NOTE: this must be a boolean test and not a string comparison, so that + # callers can pass `RUN_SANITIZERS ${USE_ASAN}` (which expands to ON/OFF) + if(ARG_RUN_SANITIZERS) set_custom_stdlib_and_sanitizers(${TARGET_NAME} true) set_custom_stdlib_and_sanitizers(screen true) # ftxui::screen set_custom_stdlib_and_sanitizers(dom true) # ftxui::dom diff --git a/main.cpp b/main.cpp index 821a8c07..79b786d7 100644 --- a/main.cpp +++ b/main.cpp @@ -1,6 +1,10 @@ +#include // for seconds +#include // for to_string +#include // for thread + +#include // for App (renamed from ScreenInteractive in FTXUI v7) #include // for Slider, Renderer, Vertical #include // for ComponentBase -#include // for ScreenInteractive #include // for separator, operator|, Element, size, text, vbox, xflex, bgcolor, hbox, GREATER_THAN, WIDTH, border, HEIGHT, LESS_THAN #include // for Color @@ -55,7 +59,9 @@ int main() { /// /////////////////////////////////////////////////////////////////////////// - ftxui::ScreenInteractive screen = ftxui::ScreenInteractive::TerminalOutput(); + // FTXUI v7: `ScreenInteractive` a fost redenumit `App` (numele vechi există + // în continuare ca alias de compatibilitate în ). + ftxui::App app = ftxui::App::TerminalOutput(); /////////////////////////////////////////////////////////////////////////////////////////////////////// /// Exemplu culori RGB /// @@ -99,11 +105,11 @@ int main() { /// Programul se va opri automat dupa 5 secunde // std::thread auto_close([&] { // std::this_thread::sleep_for(std::chrono::seconds(5)); // - screen.Exit(); // + app.Exit(); // }); // ////////////////////////////////////////////////////////////////////// - screen.Loop(renderer); + app.Loop(renderer); auto_close.join(); diff --git a/scripts/valgrind-suppressions.supp b/scripts/valgrind-suppressions.supp index 3e71ec85..3b3dc468 100644 --- a/scripts/valgrind-suppressions.supp +++ b/scripts/valgrind-suppressions.supp @@ -3327,5 +3327,25 @@ ioctl(TCSET{S,SW,SF}) fun:tcsetattr ... - fun:main +} + +{ + + Memcheck:Param + ioctl(TCSETS) + fun:tcsetattr + ... +} +{ + + Memcheck:Param + ioctl(generic) + fun:tcsetattr + ... +} +{ + + Memcheck:Value8 + fun:*cbaud_to_speed* + ... }