[cmake] CheckLibfmt.cmake: Remove FMT_SHARED from INTERFACE_COMPILE_DEFINITIONS.

This causes parts of `class format_error` to be exported from
libromdata.so, which could result in multiple definitions:

V typeinfo for fmt::v11::format_error
V typeinfo name for fmt::v11::format_error
V vtable for fmt::v11::format_error

NOTE: Not needed for Win32.
This commit is contained in:
David Korth 2025-02-17 19:37:05 -05:00
parent 7bd91ef6dc
commit 06f2f46655

View File

@ -59,3 +59,13 @@ IF(USE_INTERNAL_FMT)
ELSE(USE_INTERNAL_FMT)
SET(USE_INTERNAL_FMT_DLL OFF)
ENDIF(USE_INTERNAL_FMT)
# WORKAROUND: fmt sets INTERFACE_COMPILE_DEFINITIONS=FMT_SHARED.
# This causes parts of `class format_error` to be exported from
# libromdata.so, which could result in multiple definitions.
# (Not needed for Win32.)
IF(NOT WIN32)
SET_TARGET_PROPERTIES(fmt::fmt PROPERTIES
INTERFACE_COMPILE_DEFINITIONS ""
)
ENDIF(NOT WIN32)