diff options
| -rw-r--r-- | cmake/GetSNAP.cmake | 18 | ||||
| -rw-r--r-- | cmake/snap-glib-base.patch | 17 |
2 files changed, 32 insertions, 3 deletions
diff --git a/cmake/GetSNAP.cmake b/cmake/GetSNAP.cmake index ff0c968..d3e55e2 100644 --- a/cmake/GetSNAP.cmake +++ b/cmake/GetSNAP.cmake | |||
| @@ -14,6 +14,21 @@ elseif(CMAKE_SIZEOF_VOID_P EQUAL 8) | |||
| 14 | set(SNAP_ARCH_FLAG -DGLib_64Bit) | 14 | set(SNAP_ARCH_FLAG -DGLib_64Bit) |
| 15 | endif() | 15 | endif() |
| 16 | 16 | ||
| 17 | include(CheckIncludeFileCXX) | ||
| 18 | check_include_file_cxx("poll.h" SNAP_HAVE_POLL_H) | ||
| 19 | if(SNAP_HAVE_POLL_H) | ||
| 20 | set(SNAP_POLL_FLAG -DSNAP_HAVE_POLL_H) | ||
| 21 | else() | ||
| 22 | check_include_file_cxx("sys/poll.h" SNAP_HAVE_SYS_POLL_H) | ||
| 23 | if (SNAP_HAVE_SYS_POLL_H) | ||
| 24 | set(SNAP_POLL_FLAG -DSNAP_HAVE_SYS_POLL_H) | ||
| 25 | else() | ||
| 26 | message(FATAL "Required header <poll.h> or <sys/poll.h> not found") | ||
| 27 | endif() | ||
| 28 | endif() | ||
| 29 | |||
| 30 | set(SNAP_CXX_FLAGS "${SNAP_ARCH_FLAG} ${SNAP_POLL_FLAG} ${OpenMP_CXX_FLAGS}") | ||
| 31 | |||
| 17 | include(ExternalProject) | 32 | include(ExternalProject) |
| 18 | ExternalProject_Add( | 33 | ExternalProject_Add( |
| 19 | SNAP | 34 | SNAP |
| @@ -24,7 +39,7 @@ ExternalProject_Add( | |||
| 24 | PATCH_COMMAND ${SNAP_PATCHCMD} | 39 | PATCH_COMMAND ${SNAP_PATCHCMD} |
| 25 | CONFIGURE_COMMAND "" | 40 | CONFIGURE_COMMAND "" |
| 26 | BUILD_IN_SOURCE TRUE | 41 | BUILD_IN_SOURCE TRUE |
| 27 | BUILD_COMMAND make CXXFLAGS=${SNAP_ARCH_FLAG} | 42 | BUILD_COMMAND make "CXXFLAGS=${SNAP_CXX_FLAGS}" |
| 28 | COMMAND make -C snap-core lib | 43 | COMMAND make -C snap-core lib |
| 29 | BUILD_BYPRODUCTS snap-core/libsnap.a | 44 | BUILD_BYPRODUCTS snap-core/libsnap.a |
| 30 | INSTALL_COMMAND "" | 45 | INSTALL_COMMAND "" |
| @@ -48,4 +63,5 @@ target_include_directories(SNAP::SNAP | |||
| 48 | "${SNAP_SOURCE_DIR}/glib-core" | 63 | "${SNAP_SOURCE_DIR}/glib-core" |
| 49 | ) | 64 | ) |
| 50 | 65 | ||
| 66 | target_compile_definitions(SNAP::SNAP INTERFACE ${SNAP_ARCH_FLAG}) | ||
| 51 | target_link_libraries(SNAP::SNAP INTERFACE OpenMP::OpenMP_CXX) | 67 | target_link_libraries(SNAP::SNAP INTERFACE OpenMP::OpenMP_CXX) |
diff --git a/cmake/snap-glib-base.patch b/cmake/snap-glib-base.patch index 42fcb41..669f797 100644 --- a/cmake/snap-glib-base.patch +++ b/cmake/snap-glib-base.patch | |||
| @@ -1,6 +1,19 @@ | |||
| 1 | --- a/glib-core/base.h | 1 | --- a/glib-core/base.h |
| 2 | +++ b/glib-core/base.h | 2 | +++ b/glib-core/base.h |
| 3 | @@ -89,7 +89,7 @@ | 3 | @@ -66,7 +66,11 @@ |
| 4 | #include <dirent.h> | ||
| 5 | #include <unistd.h> | ||
| 6 | #include <signal.h> | ||
| 7 | - #include <sys/poll.h> | ||
| 8 | + #if defined(SNAP_HAVE_POLL_H) | ||
| 9 | + #include <poll.h> | ||
| 10 | + #elif defined(SNAP_HAVE_SYS_POLL_H) | ||
| 11 | + #include <sys/poll.h> | ||
| 12 | + #endif | ||
| 13 | #include <sys/socket.h> | ||
| 14 | #include <sys/stat.h> | ||
| 15 | #include <sys/time.h> | ||
| 16 | @@ -89,7 +93,7 @@ | ||
| 4 | #define GLib_32Bit | 17 | #define GLib_32Bit |
| 5 | #elif __WORDSIZE == 64 || defined(GLib_WIN64) || defined(__CYGWIN64__) | 18 | #elif __WORDSIZE == 64 || defined(GLib_WIN64) || defined(__CYGWIN64__) |
| 6 | #define GLib_64Bit | 19 | #define GLib_64Bit |
| @@ -9,7 +22,7 @@ | |||
| 9 | #error "Undefined word size" | 22 | #error "Undefined word size" |
| 10 | #endif | 23 | #endif |
| 11 | 24 | ||
| 12 | @@ -98,10 +98,8 @@ | 25 | @@ -98,10 +102,8 @@ |
| 13 | #if defined(GLib_MACOSX) | 26 | #if defined(GLib_MACOSX) |
| 14 | #include <crt_externs.h> | 27 | #include <crt_externs.h> |
| 15 | #define _environ (*_NSGetEnviron()) | 28 | #define _environ (*_NSGetEnviron()) |
