aboutsummaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2017-08-20 10:31:09 -0700
committerGarrett D'Amore <garrett@damore.org>2017-08-21 07:18:30 -0700
commit6305e16ab64e42fd9791819d416a6e3534439b0b (patch)
tree8dbb42a07140f0c12a61bf6d6bcf9590f8678ae6 /CMakeLists.txt
parentdd2eda5a90ab86bbde1a9da481a423d367586a73 (diff)
downloadnng-6305e16ab64e42fd9791819d416a6e3534439b0b.tar.gz
nng-6305e16ab64e42fd9791819d416a6e3534439b0b.tar.bz2
nng-6305e16ab64e42fd9791819d416a6e3534439b0b.zip
Conditional platform inclusion cleanups.
We only compile files that are appropriate for the platform. (We still have guards in place, to allow for a future single .C file to be built from all the sources.) We also remove the subsystem defines; if a new platform needs to deviate from POSIX in ways beyond what we intended here, then that platform should just copy those parts into a new platform directory, rather than cross including portions from POSIX.
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt51
1 files changed, 22 insertions, 29 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 529e5f48..d7d05c56 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -115,14 +115,17 @@ if (NNG_ENABLE_COVERAGE)
endif()
endif()
+find_package (Threads REQUIRED)
+
if (CMAKE_SYSTEM_NAME MATCHES "Linux")
- find_package (Threads REQUIRED)
- add_definitions (-DPLATFORM_POSIX)
+ add_definitions (-DNNG_PLATFORM_POSIX)
+ add_definitions (-DNNG_PLATFORM_LINUX)
add_definitions (-DNNG_USE_EVENTFD)
+ set(NNG_PLATFORM_POSIX ON)
elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin")
- find_package (Threads REQUIRED)
- add_definitions (-DPLATFORM_POSIX)
+ add_definitions (-DNNG_PLATFORM_POSIX)
+ add_definitions (-DNNG_PLATFORM_POSIX)
# macOS 10.12 and later have getentropy, but the older releases
# have ARC4_RANDOM, and that is sufficient to our needs.
add_definitions (-DNNG_USE_ARC4_RANDOM)
@@ -130,27 +133,32 @@ elseif (CMAKE_SYSTEM_NAME MATCHES "Darwin")
# macOS added some of CLOCK_MONOTONIC, but the implementation is
# broken and unreliable, so don't use it.
add_definitions (-DNNG_USE_CLOCKID=CLOCK_REALTIME)
+ set(NNG_PLATFORM_POSIX ON)
elseif (CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
- find_package (Threads REQUIRED)
- add_definitions (-DPLATFORM_POSIX)
+ add_definitions (-DNNG_PLATFORM_POSIX)
+ add_definitions (-DNNG_PLATFORM_FREEBSD)
+ set(NNG_PLATFORM_POSIX ON)
elseif (CMAKE_SYSTEM_NAME MATCHES "NetBSD")
- find_package (Threads REQUIRED)
- add_definitions (-DPLATFORM_POSIX)
+ add_definitions (-DNNG_PLATFORM_POSIX)
+ add_definitions (-DNNG_PLATFORM_NETBSD)
+ set(NNG_PLATFORM_POSIX ON)
elseif (CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
- find_package (Threads REQUIRED)
- add_definitions (-DPLATFORM_POSIX)
+ add_definitions (-DNNG_PLATFORM_POSIX)
+ add_definitions (-DNNG_PLATFORM_OPENBSD)
+ set(NNG_PLATFORM_POSIX ON)
elseif (CMAKE_SYSTEM_NAME MATCHES "SunOS")
- find_package (Threads REQUIRED)
- add_definitions (-DPLATFORM_POSIX)
+ add_definitions (-DNNG_PLATFORM_POSIX)
+ add_definitions (-DNNG_PLATFORM_SUNOS)
elseif (CMAKE_SYSTEM_NAME MATCHES "Windows")
- add_definitions (-DPLATFORM_WINDOWS)
+ add_definitions (-DNNG_PLATFORM_WINDOWS)
add_definitions (-D_CRT_SECURE_NO_WARNINGS)
add_definitions (-D_CRT_RAND_S)
+ set(NNG_PLATFORM_WINDOWS ON)
# Target Windows Vista and later
add_definitions (-D_WIN32_WINNT=0x0600)
@@ -214,7 +222,7 @@ if (WIN32)
endif()
else ()
# Unconditionally declare the following feature test macros. These are
- # needed for some platforms (glibc and SunOS/illumos) and should be harmless
+ # needed for some platforms (glibc and SunOS/illumos) and are harmless
# on the others.
add_definitions (-D_GNU_SOURCE)
add_definitions (-D_REENTRANT)
@@ -226,26 +234,11 @@ else ()
nng_check_lib (nsl gethostbyname NNG_HAVE_LIBNSL)
nng_check_lib (socket socket NNG_HAVE_LIBSOCKET)
-# nng_check_sym (atomic_cas_32 atomic.h NNG_HAVE_ATOMIC_SOLARIS)
nng_check_sym (AF_UNIX sys/socket.h NNG_HAVE_UNIX_SOCKETS)
nng_check_sym (backtrace_symbols_fd execinfo.h NNG_HAVE_BACKTRACE)
nng_check_struct_member(msghdr msg_control sys/socket.h NNG_HAVE_MSG_CONTROL)
endif ()
-#check_c_source_compiles ("
-# #include <stdint.h>
-# int main()
-# {
-# volatile uint32_t n = 0;
-# __sync_fetch_and_add (&n, 1);
-# __sync_fetch_and_sub (&n, 1);
-# return 0;
-# }
-#" NNG_HAVE_GCC_ATOMIC_BUILTINS)
-#if (NNG_HAVE_GCC_ATOMIC_BUILTINS)
-# add_definitions (-DNNG_HAVE_GCC_ATOMIC_BUILTINS)
-#endif ()
-
add_subdirectory (src)
if (NNG_TESTS)