From 412d8c14e4e95f9cc5af266cc1e19b8924853620 Mon Sep 17 00:00:00 2001 From: Arthur Sonzogni Date: Tue, 30 Sep 2025 16:38:55 +0000 Subject: [PATCH] Fix CMake 3.12 compatibility by adding required install destinations (#1127) The `install(TARGETS ...)` command in `cmake/ftxui_install.cmake` was missing required destination specifications that became mandatory in CMake 3.12+. This caused build failures when users tried to install FTXUI with the minimum supported CMake version. The issue occurred because the install command: ```cmake install( TARGETS screen dom component EXPORT ftxui-targets ) ``` Was missing explicit destination specifications for different artifact types. CMake 3.12+ requires these destinations to be explicitly declared. This PR adds the required destination specifications: ```cmake install( TARGETS screen dom component EXPORT ftxui-targets ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ) ``` The fix ensures that: - Static libraries (`.a` files) are installed to the archive destination - Shared libraries are installed to the library destination - Executables are installed to the runtime destination All destinations use CMake's standard directory variables for proper cross-platform compatibility. The change is backward compatible and maintains the same installation behavior while satisfying CMake 3.12+ requirements. Fixes #1118. --- cmake/ftxui_install.cmake | 3 +++ 1 file changed, 3 insertions(+) diff --git a/cmake/ftxui_install.cmake b/cmake/ftxui_install.cmake index 87ca8e87..8200ac99 100644 --- a/cmake/ftxui_install.cmake +++ b/cmake/ftxui_install.cmake @@ -11,6 +11,9 @@ include(CMakePackageConfigHelpers) install( TARGETS screen dom component EXPORT ftxui-targets + ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}" + LIBRARY DESTINATION "${CMAKE_INSTALL_LIBDIR}" + RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" ) install(