summaryrefslogtreecommitdiff
path: root/indra/cmake
diff options
context:
space:
mode:
authorNat Goodspeed <nat@lindenlab.com>2013-02-21 01:13:24 -0500
committerNat Goodspeed <nat@lindenlab.com>2013-02-21 01:13:24 -0500
commit54e2d2b000f36b35ab5ab53cf3aeee922e54fbe3 (patch)
treea59ddcdc09f34345b305a7acbd44fc5601808a08 /indra/cmake
parente87000ba0750e55d9d6b55feccc4124f5d2b4b74 (diff)
MAINT-2389: Change viewer to Boost package without ucontext.h.
In autobuild.xml, specify today's build of the Boost package that includes the Boost.Context library, and whose boost::dcoroutines library uses Boost.Context exclusively instead of its previous context-switching underpinnings (source of the ucontext.h dependency). Add BOOST_CONTEXT_LIBRARY to Boost.cmake and Copy3rdPartyLibs.cmake. Link it with the viewer and with the lllogin.cpp test executable. Track new Boost package convention that our (early, unofficial) Boost.Coroutine library is now accessed as boost/dcoroutine/etc.h and boost::dcoroutines::etc. Remove #include <boost/coroutine/coroutine.hpp> from llviewerprecompiledheaders.h and lllogin.cpp: old rule that Boost.Coroutine header must be #included before anything else that might use ucontext.h is gone now that we no longer depend on ucontext.h. In fact remove -D_XOPEN_SOURCE in 00-Common.cmake because that was inserted specifically to work around a known problem with the ucontext.h facilities.
Diffstat (limited to 'indra/cmake')
-rw-r--r--indra/cmake/00-Common.cmake7
-rw-r--r--indra/cmake/Boost.cmake54
-rw-r--r--indra/cmake/Copy3rdPartyLibs.cmake5
3 files changed, 42 insertions, 24 deletions
diff --git a/indra/cmake/00-Common.cmake b/indra/cmake/00-Common.cmake
index 452fd5f356..084ba7ea98 100644
--- a/indra/cmake/00-Common.cmake
+++ b/indra/cmake/00-Common.cmake
@@ -192,12 +192,7 @@ endif (LINUX)
if (DARWIN)
- # NOTE (per http://lists.apple.com/archives/darwin-dev/2008/Jan/msg00232.html):
- # > Why the bus error? What am I doing wrong?
- # This is a known issue where getcontext(3) is writing past the end of the
- # ucontext_t struct when _XOPEN_SOURCE is not defined (rdar://problem/5578699 ).
- # As a workaround, define _XOPEN_SOURCE before including ucontext.h.
- add_definitions(-DLL_DARWIN=1 -D_XOPEN_SOURCE)
+ add_definitions(-DLL_DARWIN=1)
set(CMAKE_CXX_LINK_FLAGS "-Wl,-headerpad_max_install_names,-search_paths_first")
set(CMAKE_SHARED_LINKER_FLAGS "${CMAKE_CXX_LINK_FLAGS}")
set(DARWIN_extra_cstar_flags "-mlong-branch -g")
diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake
index 1acb2bbbfd..cff762e1f0 100644
--- a/indra/cmake/Boost.cmake
+++ b/indra/cmake/Boost.cmake
@@ -7,11 +7,12 @@ set(Boost_FIND_REQUIRED ON)
if (STANDALONE)
include(FindBoost)
+ set(BOOST_CONTEXT_LIBRARY boost_context-mt)
+ set(BOOST_FILESYSTEM_LIBRARY boost_filesystem-mt)
set(BOOST_PROGRAM_OPTIONS_LIBRARY boost_program_options-mt)
set(BOOST_REGEX_LIBRARY boost_regex-mt)
set(BOOST_SIGNALS_LIBRARY boost_signals-mt)
set(BOOST_SYSTEM_LIBRARY boost_system-mt)
- set(BOOST_FILESYSTEM_LIBRARY boost_filesystem-mt)
set(BOOST_THREAD_LIBRARY boost_thread-mt)
else (STANDALONE)
use_prebuilt_binary(boost)
@@ -20,6 +21,12 @@ else (STANDALONE)
if (WINDOWS)
if(MSVC80)
+ set(BOOST_CONTEXT_LIBRARY
+ optimized libboost_context-vc80-mt-${BOOST_VERSION}
+ debug libboost_context-vc80-mt-gd-${BOOST_VERSION})
+ set(BOOST_FILESYSTEM_LIBRARY
+ optimized libboost_filesystem-vc80-mt-${BOOST_VERSION}
+ debug libboost_filesystem-vc80-mt-gd-${BOOST_VERSION})
set(BOOST_PROGRAM_OPTIONS_LIBRARY
optimized libboost_program_options-vc80-mt-${BOOST_VERSION}
debug libboost_program_options-vc80-mt-gd-${BOOST_VERSION})
@@ -32,59 +39,74 @@ else (STANDALONE)
set(BOOST_SYSTEM_LIBRARY
optimized libboost_system-vc80-mt-${BOOST_VERSION}
debug libboost_system-vc80-mt-gd-${BOOST_VERSION})
- set(BOOST_FILESYSTEM_LIBRARY
- optimized libboost_filesystem-vc80-mt-${BOOST_VERSION}
- debug libboost_filesystem-vc80-mt-gd-${BOOST_VERSION})
+ set(BOOST_THREAD_LIBRARY
+ optimized libboost_thread-vc80-mt-${BOOST_VERSION}
+ debug libboost_thread-vc80-mt-gd-${BOOST_VERSION})
else(MSVC80)
# MSVC 10.0 config
+ set(BOOST_CONTEXT_LIBRARY
+ optimized libboost_context-mt
+ debug libboost_context-mt-gd)
+ set(BOOST_FILESYSTEM_LIBRARY
+ optimized libboost_filesystem-mt
+ debug libboost_filesystem-mt-gd)
set(BOOST_PROGRAM_OPTIONS_LIBRARY
optimized libboost_program_options-mt
debug libboost_program_options-mt-gd)
set(BOOST_REGEX_LIBRARY
optimized libboost_regex-mt
debug libboost_regex-mt-gd)
+ set(BOOST_SIGNALS_LIBRARY
+ optimized libboost_signals-mt
+ debug libboost_signals-mt-gd)
set(BOOST_SYSTEM_LIBRARY
optimized libboost_system-mt
debug libboost_system-mt-gd)
- set(BOOST_FILESYSTEM_LIBRARY
- optimized libboost_filesystem-mt
- debug libboost_filesystem-mt-gd)
set(BOOST_THREAD_LIBRARY
optimized libboost_thread-mt
debug libboost_thread-mt-gd)
endif (MSVC80)
elseif (LINUX)
+ set(BOOST_CONTEXT_LIBRARY
+ optimized boost_context-mt
+ debug boost_context-mt-d)
+ set(BOOST_FILESYSTEM_LIBRARY
+ optimized boost_filesystem-mt
+ debug boost_filesystem-mt-d)
set(BOOST_PROGRAM_OPTIONS_LIBRARY
optimized boost_program_options-mt
debug boost_program_options-mt-d)
set(BOOST_REGEX_LIBRARY
optimized boost_regex-mt
debug boost_regex-mt-d)
+ set(BOOST_SIGNALS_LIBRARY
+ optimized boost_signals-mt
+ debug boost_signals-mt-d)
set(BOOST_SYSTEM_LIBRARY
optimized boost_system-mt
debug boost_system-mt-d)
- set(BOOST_FILESYSTEM_LIBRARY
- optimized boost_filesystem-mt
- debug boost_filesystem-mt-d)
set(BOOST_THREAD_LIBRARY
optimized boost_thread-mt
debug boost_thread-mt-d)
elseif (DARWIN)
- set(BOOST_PROGRAM_OPTIONS_LIBRARY
- optimized boost_program_options-mt
- debug boost_program_options-mt-d)
+ set(BOOST_CONTEXT_LIBRARY
+ optimized boost_context-mt
+ debug boost_context-mt-d)
+ set(BOOST_FILESYSTEM_LIBRARY
+ optimized boost_filesystem-mt
+ debug boost_filesystem-mt-d)
set(BOOST_PROGRAM_OPTIONS_LIBRARY
optimized boost_program_options-mt
debug boost_program_options-mt-d)
set(BOOST_REGEX_LIBRARY
optimized boost_regex-mt
debug boost_regex-mt-d)
+ set(BOOST_SIGNALS_LIBRARY
+ optimized boost_signals-mt
+ debug boost_signals-mt-d)
set(BOOST_SYSTEM_LIBRARY
optimized boost_system-mt
debug boost_system-mt-d)
- set(BOOST_FILESYSTEM_LIBRARY
- optimized boost_filesystem-mt
- debug boost_filesystem-mt-d)
set(BOOST_THREAD_LIBRARY
optimized boost_thread-mt
debug boost_thread-mt-d)
diff --git a/indra/cmake/Copy3rdPartyLibs.cmake b/indra/cmake/Copy3rdPartyLibs.cmake
index c32e357da3..8457cf5359 100644
--- a/indra/cmake/Copy3rdPartyLibs.cmake
+++ b/indra/cmake/Copy3rdPartyLibs.cmake
@@ -254,12 +254,13 @@ elseif(LINUX)
libapr-1.so.0
libaprutil-1.so.0
libatk-1.0.so
+ libboost_context-mt.so.${BOOST_VERSION}.0
+ libboost_filesystem-mt.so.${BOOST_VERSION}.0
libboost_program_options-mt.so.${BOOST_VERSION}.0
libboost_regex-mt.so.${BOOST_VERSION}.0
- libboost_thread-mt.so.${BOOST_VERSION}.0
- libboost_filesystem-mt.so.${BOOST_VERSION}.0
libboost_signals-mt.so.${BOOST_VERSION}.0
libboost_system-mt.so.${BOOST_VERSION}.0
+ libboost_thread-mt.so.${BOOST_VERSION}.0
libbreakpad_client.so.0
libcollada14dom.so
libcrypto.so.1.0.0