diff --git a/modcc/CMakeLists.txt b/modcc/CMakeLists.txt
index bb2692e7592ab8b0e2a83bec04b9a351a50bce8c..32af1a737953610f436b61dfdd717139633dbc02 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 0b9f0ff6c0b9f4f26d9d945ece6b5756cc73dc0e..bd7f5bb9ebf4ae951b15df8188dc879ec8c8d426 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 97154abefd9fdb0dcb42b56135f996020608bac4..21a24d9c3011a6deb1168d04afd4bbda75745c9a 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 e0b729fc21f4f7bf427e0d7b9f5f08f6c5d1230c..d0b207d63e1b7ac704b54932489ee8858d26a80d 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>