FTXUI/cmake/ftxui_modules.cmake

82 lines
2.1 KiB
CMake
Raw Normal View History

2025-04-10 20:45:45 +08:00
if (NOT FTXUI_BUILD_MODULES)
return()
endif()
add_library(ftxui-modules)
target_sources(ftxui-modules
2025-04-11 21:07:58 +08:00
PUBLIC FILE_SET CXX_MODULES FILES
2025-04-10 20:45:45 +08:00
src/ftxui/component.cppm
src/ftxui/component/Animation.cppm
src/ftxui/component/CapturedMouse.cppm
src/ftxui/component/Component.cppm
src/ftxui/component/ComponentBase.cppm
src/ftxui/component/ComponentOptions.cppm
src/ftxui/component/Event.cppm
src/ftxui/component/Loop.cppm
src/ftxui/component/Mouse.cppm
src/ftxui/component/Receiver.cppm
src/ftxui/component/ScreenInteractive.cppm
src/ftxui/component/Task.cppm
src/ftxui/dom.cppm
src/ftxui/dom/Canvas.cppm
src/ftxui/dom/Deprecated.cppm
src/ftxui/dom/Direction.cppm
src/ftxui/dom/Elements.cppm
src/ftxui/dom/FlexboxConfig.cppm
src/ftxui/dom/LinearGradient.cppm
src/ftxui/dom/Node.cppm
src/ftxui/dom/Requirement.cppm
src/ftxui/dom/Selection.cppm
src/ftxui/dom/Table.cppm
src/ftxui/screen.cppm
src/ftxui/screen/Box.cppm
src/ftxui/screen/Color.cppm
src/ftxui/screen/ColorInfo.cppm
src/ftxui/screen/Deprecated.cppm
src/ftxui/screen/Image.cppm
src/ftxui/screen/Pixel.cppm
src/ftxui/screen/Screen.cppm
src/ftxui/screen/String.cppm
src/ftxui/screen/Terminal.cppm
src/ftxui/util.cppm
src/ftxui/util/AutoReset.cppm
src/ftxui/util/Ref.cppm
)
target_link_libraries(ftxui-modules
PUBLIC
2025-06-02 16:28:16 +08:00
ftxui::screen
ftxui::dom
ftxui::component
)
2025-04-10 20:45:45 +08:00
target_compile_features(ftxui-modules PUBLIC cxx_std_20)
2025-04-11 21:07:58 +08:00
if (CMAKE_COMPILER_IS_GNUCXX)
2025-06-02 16:20:05 +08:00
target_compile_options(ftxui-modules PUBLIC -fmodules-ts)
2025-04-11 21:07:58 +08:00
endif ()
2025-04-10 20:45:45 +08:00
add_library(ftxui::modules ALIAS ftxui-modules)
if(FTXUI_ENABLE_INSTALL)
2025-04-11 21:07:58 +08:00
2025-06-02 16:28:16 +08:00
include(GNUInstallDirs)
2025-04-11 21:07:58 +08:00
2025-06-02 16:28:16 +08:00
install(TARGETS ftxui-modules
2025-04-10 20:45:45 +08:00
EXPORT ftxui-targets
2025-04-11 21:07:58 +08:00
FILE_SET CXX_MODULES
2025-06-02 16:28:16 +08:00
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ftxui
2025-04-11 21:07:58 +08:00
FILE_SET HEADERS
2025-06-02 16:28:16 +08:00
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ftxui
2025-04-11 21:07:58 +08:00
INCLUDES
2025-06-02 16:28:16 +08:00
DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}/ftxui
)
install(EXPORT ftxui-targets
2025-04-11 21:07:58 +08:00
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ftxui
CXX_MODULES_DIRECTORY ${CMAKE_INSTALL_LIBDIR}/cmake/ftxui
2025-06-02 16:28:16 +08:00
)
install(FILES my_package-config.cmake
2025-04-11 21:07:58 +08:00
DESTINATION ${CMAKE_INSTALL_LIBDIR}/cmake/ftxui
2025-06-02 16:28:16 +08:00
)
2025-04-10 20:45:45 +08:00
endif()