mirror of
https://git.eden-emu.dev/eden-emu/eden
synced 2026-06-05 09:17:08 +02:00
most stdlibc++ already provide this functionality out of the box, very consistently and well implemented (usually) my main irk is that the llvm itanium demangle is totally unescesary when there is a perfectly stable, tested and well documented equivalent functionality in the standard stdc++ provided in most UNIX oses its mostly to reduce binary size by a very thin margin, but he stdc++ is more than capable of doing he same behaviour we use a dpeendency for for mingw or such howeger,, demangling becomies trickier so we have to exclude windows entirely because well windows likes to do things differently dont they Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/3894 Reviewed-by: crueter <crueter@eden-emu.dev> Reviewed-by: MaranBr <maranbr@eden-emu.dev>
30 lines
1.3 KiB
CMake
30 lines
1.3 KiB
CMake
# SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
# SPDX-FileCopyrightText: 2023 Alexandre Bouvier <contact@amb.tf>
|
|
#
|
|
# SPDX-License-Identifier: GPL-3.0-or-later
|
|
|
|
find_package(LLVM QUIET COMPONENTS CONFIG)
|
|
if (LLVM_FOUND)
|
|
separate_arguments(LLVM_DEFINITIONS)
|
|
if (LLVMDemangle IN_LIST LLVM_AVAILABLE_LIBS)
|
|
set(LLVM_Demangle_FOUND TRUE)
|
|
endif()
|
|
endif()
|
|
|
|
include(FindPackageHandleStandardArgs)
|
|
find_package_handle_standard_args(LLVM HANDLE_COMPONENTS CONFIG_MODE)
|
|
|
|
# Demangle only for Windows targets
|
|
if (WIN32 AND LLVM_FOUND AND LLVM_Demangle_FOUND AND NOT TARGET LLVM::Demangle)
|
|
add_library(LLVM::Demangle INTERFACE IMPORTED)
|
|
target_compile_definitions(LLVM::Demangle INTERFACE ${LLVM_DEFINITIONS})
|
|
target_include_directories(LLVM::Demangle INTERFACE ${LLVM_INCLUDE_DIRS})
|
|
# prefer shared LLVM: https://github.com/llvm/llvm-project/issues/34593
|
|
# but use ugly hack because llvm_config doesn't support interface library
|
|
add_library(_dummy_lib SHARED EXCLUDE_FROM_ALL ${CMAKE_SOURCE_DIR}/src/yuzu/main.cpp)
|
|
llvm_config(_dummy_lib USE_SHARED demangle)
|
|
get_target_property(LLVM_LIBRARIES _dummy_lib LINK_LIBRARIES)
|
|
target_link_libraries(LLVM::Demangle INTERFACE ${LLVM_LIBRARIES})
|
|
endif()
|