You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by jd...@apache.org on 2019/10/16 22:37:45 UTC
[qpid-dispatch] 01/04: DISPATCH-1282 - Support for building on macOS
This is an automated email from the ASF dual-hosted git repository.
jdanek pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/qpid-dispatch.git
commit 3db622312ecaf6b872af01c258f4687fdb5d9720
Author: Jiri Danek <jd...@redhat.com>
AuthorDate: Sun Mar 10 13:06:23 2019 -0700
DISPATCH-1282 - Support for building on macOS
# Notes
* macOS does not use -rt linker option
* pthread_t on macOS is a typedef’d struct, not long
* dlopen on macOS substitutes rpath for @rpath placeholder, it does not prepend it as on Linux
Dispatch can be compiled and run on my macOS like this
$ cmake .. -DProton_DIR=/Users/jdanek/projects/qpid-proton/build/install/lib/cmake/Proton -DCMAKE_INSTALL_PREFIX=install
$ make install
$ PYTHONPATH=install/lib/python2.7/site-packages/ install/sbin/qdrouterd
---
CMakeLists.txt | 9 +++++++--
include/qpid/dispatch/threading.h | 3 ---
src/config.h.in | 2 +-
src/posix/threading.c | 4 ----
4 files changed, 8 insertions(+), 10 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d8833ea..163bfcf 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -22,6 +22,7 @@ project(qpid-dispatch C)
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake")
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
+set(CMAKE_MACOSX_RPATH TRUE)
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
# Set default build type. Must use FORCE because project() sets default to ""
@@ -46,7 +47,11 @@ include(CheckIncludeFiles)
##
## Find dependencies
##
-find_library(rt_lib rt)
+if (NOT APPLE)
+ find_library(rt_lib rt)
+else (NOT APPLE)
+ set(rt "")
+endif (NOT APPLE)
find_package(PythonInterp REQUIRED)
find_package(PythonLibs REQUIRED)
@@ -186,7 +191,7 @@ if (CMAKE_C_COMPILER_ID MATCHES "Clang")
add_compile_options(-Wno-gnu-statement-expression)
endif()
-if (NOT (USE_SANITIZERS OR USE_TSAN))
+if (NOT (APPLE OR USE_SANITIZERS OR USE_TSAN))
set(CATCH_UNDEFINED "-Wl,-z,defs")
endif ()
diff --git a/include/qpid/dispatch/threading.h b/include/qpid/dispatch/threading.h
index 9ffa841..b883bab 100644
--- a/include/qpid/dispatch/threading.h
+++ b/include/qpid/dispatch/threading.h
@@ -58,7 +58,4 @@ void sys_thread_join(sys_thread_t *thread);
/** Return the OS identifier for this thread */
long sys_thread_id(sys_thread_t *thread);
-/** Return the OS identifier for the current thread */
-long sys_thread_self();
-
#endif
diff --git a/src/config.h.in b/src/config.h.in
index fb4ade9..7947506 100644
--- a/src/config.h.in
+++ b/src/config.h.in
@@ -18,6 +18,6 @@
*/
#define QPID_DISPATCH_VERSION "${QPID_DISPATCH_VERSION}"
-#define QPID_DISPATCH_LIB "$<TARGET_FILE_NAME:qpid-dispatch>"
+#define QPID_DISPATCH_LIB "$<$<BOOL:${APPLE}>:@rpath/>$<TARGET_FILE_NAME:qpid-dispatch>"
#define QPID_CONSOLE_STAND_ALONE_INSTALL_DIR "${CONSOLE_STAND_ALONE_INSTALL_DIR}"
#cmakedefine01 QD_MEMORY_STATS
diff --git a/src/posix/threading.c b/src/posix/threading.c
index 85916ca..5d7969b 100644
--- a/src/posix/threading.c
+++ b/src/posix/threading.c
@@ -163,10 +163,6 @@ long sys_thread_id(sys_thread_t *thread) {
return (long) thread->thread;
}
-long sys_thread_self() {
- return pthread_self();
-}
-
void sys_thread_free(sys_thread_t *thread)
{
free(thread);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org