This commit is contained in:
ArthurSonzogni 2025-04-11 15:07:58 +02:00
parent cb8ebdeb44
commit f6dceabdc9
No known key found for this signature in database
GPG Key ID: 41D98248C074CD6C
2 changed files with 35 additions and 24 deletions

View File

@ -1,11 +1,3 @@
cmake_minimum_required(VERSION 3.12)
project(ftxui
LANGUAGES CXX
VERSION 6.0.2
DESCRIPTION "C++ Functional Terminal User Interface."
)
option(FTXUI_BUILD_DOCS "Set to ON to build docs" OFF)
option(FTXUI_BUILD_EXAMPLES "Set to ON to build examples" OFF)
option(FTXUI_BUILD_MODULES "Build the C++20 modules" OFF)
@ -17,6 +9,19 @@ option(FTXUI_ENABLE_COVERAGE "Execute code coverage" OFF)
option(FTXUI_ENABLE_INSTALL "Generate the install target" ON)
option(FTXUI_QUIET "Set to ON for FTXUI to be quiet" OFF)
if (FTXUI_BUILD_MODULES)
cmake_minimum_required(VERSION 3.12)
else()
cmake_minimum_required(VERSION 3.28.2)
endif()
project(ftxui
LANGUAGES CXX
VERSION 6.0.2
DESCRIPTION "C++ Functional Terminal User Interface."
)
set(FTXUI_MICROSOFT_TERMINAL_FALLBACK_HELP_TEXT "On windows, assume the \
terminal used will be one of Microsoft and use a set of reasonnable fallback \
to counteract its implementations problems.")

View File

@ -2,13 +2,10 @@ if (NOT FTXUI_BUILD_MODULES)
return()
endif()
cmake_minimum_required(VERSION 3.28)
add_library(ftxui-modules)
target_sources(ftxui-modules
PUBLIC
FILE_SET CXX_MODULES
FILES
PUBLIC FILE_SET CXX_MODULES FILES
src/ftxui/component.cppm
src/ftxui/component/Animation.cppm
src/ftxui/component/CapturedMouse.cppm
@ -55,21 +52,30 @@ target_link_libraries(ftxui-modules
)
target_compile_features(ftxui-modules PUBLIC cxx_std_20)
#set_target_properties(ftxui-modules PROPERTIES
#CXX_STANDARD 23
#CXX_STANDARD_REQUIRED ON
#CXX_EXTENSIONS OFF
#CXX_MODULE_DYNDEP OFF
#)
if (CMAKE_COMPILER_IS_GNUCXX)
target_compile_options(${name} PUBLIC -fmodules-ts)
endif ()
add_library(ftxui::modules ALIAS ftxui-modules)
if(FTXUI_ENABLE_INSTALL)
include(GNUInstallDirs)
install(TARGETS ftxui-modules
EXPORT ftxui-targets
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
FILE_SET CXX_MODULES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ftxui/modules
FILE_SET CXX_MODULES
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ftxui
FILE_SET HEADERS
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ftxui
INCLUDES
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ftxui
)
install(EXPORT ftxui-targets
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ftxui
CXX_MODULES_DIRECTORY ${CMAKE_INSTALL_LIBDIR}/cmake/ftxui
)
install(FILES my_package-config.cmake
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ftxui
)
endif()