From 73edc5aaba9ca0b269dc233af9f74755b68c5209 Mon Sep 17 00:00:00 2001 From: Jonathan G Rennison Date: Sat, 27 Jun 2020 19:20:31 +0100 Subject: [PATCH] CMake: Add ucontext on Mac/OSX --- CMakeLists.txt | 2 ++ cmake/FindMacUcontext.cmake | 23 +++++++++++++++++++++++ 2 files changed, 25 insertions(+) create mode 100644 cmake/FindMacUcontext.cmake diff --git a/CMakeLists.txt b/CMakeLists.txt index bde7183e7a..678a9fa8dc 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -50,6 +50,8 @@ if (APPLE) find_library(AUDIOTOOLBOX_LIBRARY AudioToolbox) find_library(AUDIOUNIT_LIBRARY AudioUnit) find_library(COCOA_LIBRARY Cocoa) + + find_package(MacUcontext) endif (APPLE) if (MSVC) diff --git a/cmake/FindMacUcontext.cmake b/cmake/FindMacUcontext.cmake new file mode 100644 index 0000000000..4d989cd86a --- /dev/null +++ b/cmake/FindMacUcontext.cmake @@ -0,0 +1,23 @@ +include(CheckCXXSourceCompiles) + +check_cxx_source_compiles(" +#include +int main() { + ucontext_t context; +#if defined(__x86_64__) + void *ptr = (void *) context.uc_mcontext->__ss.__rip; +#elif defined(__i386) + void *ptr = (void *) context.uc_mcontext->__ss.__rip; +#else +#error Unknown arch +#endif + return 0; +}" + UCONTEXT_FOUND +) + +if (UCONTEXT_FOUND) + add_compile_options( + -DWITH_UCONTEXT + ) +endif (UCONTEXT_FOUND)