From 4060d64fc9de6f11ae69f3961d4f1f0450dd8286 Mon Sep 17 00:00:00 2001 From: Gavin Andresen Date: Mon, 9 Jul 2012 11:03:38 -0400 Subject: [PATCH] Fix Qt build on OSX MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Compiling boost::interprocess::message_queue against boost 1.50 macports with -arch i386 (how releases are built, for minimum download size and maximum compatibility) is failing: src/qt/qtipcserver.cpp:37: error: no matching function for call to ‘boost::interprocess::message_queue_t >::timed_receive(char (*)[257], long unsigned int, size_t&, unsigned int&, boost::posix_time::ptime&)’ This is probably a boost or macports bug, but since interprocess::message_queue is only used for URI support, which isn't implemented on OSX anyway, I fixed the build by #ifdef'ing out that code. --- src/qt/bitcoin.cpp | 7 ++++++- src/qt/qtipcserver.cpp | 15 ++++++++++----- 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/src/qt/bitcoin.cpp b/src/qt/bitcoin.cpp index 803baf92e..55b5f74c3 100644 --- a/src/qt/bitcoin.cpp +++ b/src/qt/bitcoin.cpp @@ -116,6 +116,8 @@ static void handleRunawayException(std::exception *e) #ifndef BITCOIN_QT_TEST int main(int argc, char *argv[]) { +// TODO: implement URI support on the Mac. +#if !defined(MAC_OSX) // Do this early as we don't want to bother initializing if we are just calling IPC for (int i = 1; i < argc; i++) { @@ -134,6 +136,7 @@ int main(int argc, char *argv[]) } } } +#endif // Internal string conversion is all UTF-8 QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8")); @@ -258,6 +261,8 @@ int main(int argc, char *argv[]) { window.show(); } +// TODO: implement URI support on the Mac. +#if !defined(MAC_OSX) // Place this here as guiref has to be defined if we dont want to lose URIs ipcInit(); @@ -276,7 +281,7 @@ int main(int argc, char *argv[]) } } } - +#endif app.exec(); window.hide(); diff --git a/src/qt/qtipcserver.cpp b/src/qt/qtipcserver.cpp index a88745685..5ff00451e 100644 --- a/src/qt/qtipcserver.cpp +++ b/src/qt/qtipcserver.cpp @@ -20,6 +20,14 @@ using namespace boost::posix_time; using namespace boost; using namespace std; +#ifdef MAC_OSX +// URI handling not implemented on OSX yet + +void ipcInit() { } +void ipcShutdown() { } + +#else + void ipcShutdown() { message_queue::remove(BITCOINURI_QUEUE_NAME); @@ -50,11 +58,6 @@ void ipcThread(void* parg) void ipcInit() { -#ifdef MAC_OSX - // TODO: implement bitcoin: URI handling the Mac Way - return; -#endif - message_queue* mq; char strBuf[257]; size_t nSize; @@ -86,3 +89,5 @@ void ipcInit() delete mq; } } + +#endif