From dd6a5d371fd7a3e2937bb579955003c54b727233 Mon Sep 17 00:00:00 2001 From: Claus Klein Date: Mon, 28 Aug 2023 21:38:51 +0200 Subject: [PATCH] Fix CMAKE_UNITY_BUILD usage (#738) Add missing include guard. This fix https://github.com/cpp-best-practices/cmake_template/issues/64 Co-authored-by: ArthurSonzogni --- CHANGELOG.md | 3 +++ cmake/ftxui_test.cmake | 5 +++++ src/ftxui/screen/util.hpp | 5 +++++ 3 files changed, 13 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a094fd1..ec06a13 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,9 @@ current (development) - Feature: Add support for `Input`'s insert mode. Add `InputOption::insert` option. Added by @mingsheng13. +### Build +- Support for cmake's "unity/jumbo" builds. Fixed by @ClausKlein. + 5.0.0 ----- diff --git a/cmake/ftxui_test.cmake b/cmake/ftxui_test.cmake index 71caa69..0b9a86d 100644 --- a/cmake/ftxui_test.cmake +++ b/cmake/ftxui_test.cmake @@ -59,6 +59,11 @@ target_include_directories(ftxui-tests ) target_compile_features(ftxui-tests PRIVATE cxx_std_20) +# Disable unity build for tests. There are several files defining the same +# function in different anonymous namespaces. This is not allowed in unity +# builds, as it would result in multiple definitions of the same function. +set_target_properties(ftxui-tests PROPERTIES UNITY_BUILD OFF) + if (FTXUI_MICROSOFT_TERMINAL_FALLBACK) target_compile_definitions(ftxui-tests PRIVATE "FTXUI_MICROSOFT_TERMINAL_FALLBACK") diff --git a/src/ftxui/screen/util.hpp b/src/ftxui/screen/util.hpp index e2d7657..91a769b 100644 --- a/src/ftxui/screen/util.hpp +++ b/src/ftxui/screen/util.hpp @@ -1,6 +1,9 @@ // Copyright 2022 Arthur Sonzogni. All rights reserved. // Use of this source code is governed by the MIT license that can be found in // the LICENSE file. +#ifndef FTXUI_SCREEN_UTIL_HPP +#define FTXUI_SCREEN_UTIL_HPP + namespace ftxui { namespace util { @@ -12,3 +15,5 @@ constexpr const T& clamp(const T& v, const T& lo, const T& hi) { } // namespace util } // namespace ftxui + +#endif /* end of include guard: FTXUI_SCREEN_UTIL_HPP */