From 355437f355b5812f7c9f081d2cedf779c95f5022 Mon Sep 17 00:00:00 2001 From: Ben Cumming <bcumming@cscs.ch> Date: Mon, 3 Jan 2022 20:23:29 +0100 Subject: [PATCH] Fix cmake configuration of system-provided fmt library (#1796) - make fmt a dependency of libmodcc, not modcc - set FMT_HEADER_ONLY as a compiler flag to avoid double definition --- modcc/CMakeLists.txt | 15 +++++++-------- modcc/printer/cprinter.cpp | 1 - modcc/printer/gpuprinter.cpp | 1 - modcc/printer/infoprinter.cpp | 1 - 4 files changed, 7 insertions(+), 11 deletions(-) diff --git a/modcc/CMakeLists.txt b/modcc/CMakeLists.txt index bb2692e7..32af1a73 100644 --- a/modcc/CMakeLists.txt +++ b/modcc/CMakeLists.txt @@ -31,19 +31,18 @@ set(modcc_sources modcc.cpp) add_library(libmodcc STATIC ${libmodcc_sources}) target_include_directories(libmodcc PUBLIC .) -target_include_directories(libmodcc PRIVATE ../ext/fmt/include) +if (ARB_USE_BUNDLED_FMT) + target_include_directories(libmodcc PRIVATE ../ext/fmt/include) + target_compile_definitions(libmodcc PRIVATE FMT_HEADER_ONLY) +else () + find_package(fmt REQUIRED) + target_link_libraries(libmodcc PRIVATE fmt::fmt-header-only) +endif () set_target_properties(libmodcc PROPERTIES OUTPUT_NAME modcc) - add_executable(modcc ${modcc_sources}) target_link_libraries(modcc PRIVATE libmodcc ext-tinyopt) -if (ARB_USE_BUNDLED_FMT) - target_include_directories(modcc PRIVATE ../ext/fmt/include) -else () - find_package(fmt) - target_link_libraries(modcc PRIVATE fmt::fmt-header-only) -endif () set_target_properties(modcc libmodcc PROPERTIES EXCLUDE_FROM_ALL ${ARB_WITH_EXTERNAL_MODCC}) if (NOT ARB_WITH_EXTERNAL_MODCC) diff --git a/modcc/printer/cprinter.cpp b/modcc/printer/cprinter.cpp index 0b9f0ff6..bd7f5bb9 100644 --- a/modcc/printer/cprinter.cpp +++ b/modcc/printer/cprinter.cpp @@ -13,7 +13,6 @@ #include "printer/printerutil.hpp" #include "printer/marks.hpp" -#define FMT_HEADER_ONLY YES #include <fmt/core.h> #include <fmt/format.h> #include <fmt/compile.h> diff --git a/modcc/printer/gpuprinter.cpp b/modcc/printer/gpuprinter.cpp index 97154abe..21a24d9c 100644 --- a/modcc/printer/gpuprinter.cpp +++ b/modcc/printer/gpuprinter.cpp @@ -4,7 +4,6 @@ #include <set> #include <regex> -#define FMT_HEADER_ONLY YES #include <fmt/core.h> #include <fmt/format.h> #include <fmt/compile.h> diff --git a/modcc/printer/infoprinter.cpp b/modcc/printer/infoprinter.cpp index e0b729fc..d0b207d6 100644 --- a/modcc/printer/infoprinter.cpp +++ b/modcc/printer/infoprinter.cpp @@ -3,7 +3,6 @@ #include <string> #include <regex> -#define FMT_HEADER_ONLY YES #include <fmt/core.h> #include <fmt/format.h> #include <fmt/compile.h> -- GitLab