From a8c3ceb3c94104a1a874c8f1ba8a0af7b6ba9258 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Sat, 27 Jun 2020 14:33:32 +0100 Subject: [PATCH] CMake: Add libdl and demangle support --- CMakeLists.txt | 5 +++++ cmake/FindDL.cmake | 20 ++++++++++++++++++++ cmake/FindDemangle.cmake | 18 ++++++++++++++++++ 3 files changed, 43 insertions(+) create mode 100644 cmake/FindDL.cmake create mode 100644 cmake/FindDemangle.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index 825ba3dcd4..ac8bb6523f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -55,6 +55,11 @@ if (MSVC) find_package(Editbin REQUIRED) endif (MSVC) +if (UNIX) + find_package(DL) + find_package(Demangle) +endif (UNIX) + find_package(SSE) find_package(Xaudio2) diff --git a/cmake/FindDL.cmake b/cmake/FindDL.cmake new file mode 100644 index 0000000000..cc5167ac73 --- /dev/null +++ b/cmake/FindDL.cmake @@ -0,0 +1,20 @@ +include(CheckCXXSourceCompiles) +set(CMAKE_REQUIRED_LIBRARIES "dl") + +check_cxx_source_compiles(" + #include + int main() { + Dl_info info; + return dladdr(0, &info); + }" + DL_FOUND +) + +if (DL_FOUND) + add_compile_options( + -DWITH_DL + ) + link_libraries(dl) +endif (DL_FOUND) + +set(CMAKE_REQUIRED_LIBRARIES "") diff --git a/cmake/FindDemangle.cmake b/cmake/FindDemangle.cmake new file mode 100644 index 0000000000..71beebf115 --- /dev/null +++ b/cmake/FindDemangle.cmake @@ -0,0 +1,18 @@ +include(CheckCXXSourceCompiles) +set(CMAKE_REQUIRED_FLAGS "") + +check_cxx_source_compiles(" + #include + int main() { + int status = -1; + char *demangled = abi::__cxa_demangle(\"test\", 0, 0, &status); + return 0; + }" + DEMANGLE_FOUND +) + +if (DEMANGLE_FOUND) + add_compile_options( + -DWITH_DEMANGLE + ) +endif (DEMANGLE_FOUND)