summaryrefslogtreecommitdiff
path: root/indra/cmake/Boost.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'indra/cmake/Boost.cmake')
-rw-r--r--indra/cmake/Boost.cmake186
1 files changed, 131 insertions, 55 deletions
diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake
index c9688d0fe0..25d673e49a 100644
--- a/indra/cmake/Boost.cmake
+++ b/indra/cmake/Boost.cmake
@@ -4,34 +4,45 @@ include(Prebuilt)
include_guard()
add_library( ll::boost INTERFACE IMPORTED )
+
+if (DARWIN)
+ target_include_directories( ll::boost SYSTEM INTERFACE /opt/local/libexec/boost/1.88/include)
+ target_link_directories( ll::boost INTERFACE /opt/local/libexec/boost/1.88/lib)
+ set(sfx -mt)
+elseif (WINDOWS)
+ target_include_directories( ll::boost SYSTEM INTERFACE ${prefix_result}/../include)
+ target_link_directories( ll::boost INTERFACE ${prefix_result})
+ if ($ENV{MSYSTEM_CARCH} MATCHES aarch64)
+ set(sfx -vc143-mt-a64-1_91)
+ else ()
+ set(sfx -vc143-mt-x64-1_91)
+ endif ()
+else ()
+ find_package( Boost )
+endif ()
+target_link_libraries( ll::boost INTERFACE
+ boost_context${sfx}
+ boost_fiber${sfx}
+ boost_filesystem${sfx}
+ boost_program_options${sfx}
+ boost_thread${sfx}
+ boost_url${sfx}
+ )
+if (WINDOWS)
+ target_link_libraries( ll::boost INTERFACE boost_json${sfx})
+else ()
+ target_link_libraries( ll::boost INTERFACE boost_regex${sfx})
+endif ()
+if (${LINUX_DISTRO} MATCHES debian OR (${LINUX_DISTRO} MATCHES fedora) OR DARWIN)
+ target_link_libraries( ll::boost INTERFACE boost_system${sfx})
+endif ()
+target_compile_definitions( ll::boost INTERFACE BOOST_BIND_GLOBAL_PLACEHOLDERS )
+return()
+
if( USE_CONAN )
target_link_libraries( ll::boost INTERFACE CONAN_PKG::boost )
target_compile_definitions( ll::boost INTERFACE BOOST_ALLOW_DEPRECATED_HEADERS BOOST_BIND_GLOBAL_PLACEHOLDERS )
return()
-elseif( NOT USE_AUTOBUILD_3P )
- if (WINDOWS)
- set(sfx -mt)
- target_include_directories( ll::boost SYSTEM INTERFACE /opt/local/x86_64-w64-mingw32/include)
- target_link_directories( ll::boost INTERFACE /opt/local/x86_64-w64-mingw32/lib)
- elseif (DARWIN)
- set(sfx -mt)
- target_include_directories( ll::boost SYSTEM INTERFACE /opt/local/libexec/boost/1.87/include)
- target_link_directories( ll::boost INTERFACE /opt/local/libexec/boost/1.87/lib)
- else (WINDOWS)
- find_package( Boost REQUIRED )
- endif (WINDOWS)
- target_link_libraries( ll::boost INTERFACE
- boost_context${sfx}
- boost_fiber${sfx}
- boost_filesystem${sfx}
- boost_program_options${sfx}
- boost_regex${sfx}
- boost_system${sfx}
- boost_thread${sfx}
- boost_url${sfx}
- )
- target_compile_definitions( ll::boost INTERFACE BOOST_BIND_GLOBAL_PLACEHOLDERS )
- return()
endif()
use_prebuilt_binary(boost)
@@ -41,39 +52,104 @@ use_prebuilt_binary(boost)
set(addrsfx "-x${ADDRESS_SIZE}")
if (WINDOWS)
- target_link_libraries( ll::boost INTERFACE
- libboost_context-mt${addrsfx}
- libboost_fiber-mt${addrsfx}
- libboost_filesystem-mt${addrsfx}
- libboost_program_options-mt${addrsfx}
- libboost_regex-mt${addrsfx}
- libboost_system-mt${addrsfx}
- libboost_thread-mt${addrsfx}
- libboost_url-mt${addrsfx})
-elseif (LINUX)
- target_link_libraries( ll::boost INTERFACE
- boost_fiber-mt${addrsfx}
- boost_context-mt${addrsfx}
- boost_filesystem-mt${addrsfx}
- boost_program_options-mt${addrsfx}
- boost_regex-mt${addrsfx}
- boost_system-mt${addrsfx}
- boost_thread-mt${addrsfx}
- boost_url-mt${addrsfx})
-elseif (DARWIN)
- target_link_libraries( ll::boost INTERFACE
- boost_context-mt${addrsfx}
- boost_fiber-mt${addrsfx}
- boost_filesystem-mt${addrsfx}
- boost_program_options-mt${addrsfx}
- boost_regex-mt${addrsfx}
- boost_system-mt${addrsfx}
- boost_thread-mt${addrsfx}
- boost_url-mt${addrsfx})
+
+ find_library(BOOST_CONTEXT_LIBRARY
+ NAMES
+ libboost_context
+ libboost_context-mt
+ libboost_context-mt${addrsfx}
+ PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
+
+ find_library(BOOST_FIBER_LIBRARY
+ NAMES
+ libboost_fiber
+ libboost_fiber-mt
+ libboost_fiber-mt${addrsfx}
+ PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
+
+ find_library(BOOST_FILESYSTEM_LIBRARY
+ NAMES
+ libboost_filesystem
+ libboost_filesystem-mt
+ libboost_filesystem-mt${addrsfx}
+ PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
+
+ find_library(BOOST_PROGRAMOPTIONS_LIBRARY
+ NAMES
+ libboost_program_options
+ libboost_program_options-mt
+ libboost_program_options-mt${addrsfx}
+ PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
+
+ find_library(BOOST_THREAD_LIBRARY
+ NAMES
+ libboost_thread
+ libboost_thread-mt
+ libboost_thread-mt${addrsfx}
+ PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
+
+ find_library(BOOST_URL_LIBRARY
+ NAMES
+ libboost_url
+ libboost_url-mt
+ libboost_url-mt${addrsfx}
+ PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
+
+else (WINDOWS)
+
+ find_library(BOOST_CONTEXT_LIBRARY
+ NAMES
+ boost_context
+ boost_context-mt
+ boost_context-mt${addrsfx}
+ PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
+
+ find_library(BOOST_FIBER_LIBRARY
+ NAMES
+ boost_fiber
+ boost_fiber-mt
+ boost_fiber-mt${addrsfx}
+ PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
+
+ find_library(BOOST_FILESYSTEM_LIBRARY
+ NAMES
+ boost_filesystem
+ boost_filesystem-mt
+ boost_filesystem-mt${addrsfx}
+ PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
+
+ find_library(BOOST_PROGRAMOPTIONS_LIBRARY
+ NAMES
+ boost_program_options
+ boost_program_options-mt
+ boost_program_options-mt${addrsfx}
+ PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
+
+ find_library(BOOST_THREAD_LIBRARY
+ NAMES
+ boost_thread
+ boost_thread-mt
+ boost_thread-mt${addrsfx}
+ PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
+
+ find_library(BOOST_URL_LIBRARY
+ NAMES
+ boost_url
+ boost_url-mt
+ boost_url-mt${addrsfx}
+ PATHS "${ARCH_PREBUILT_DIRS_RELEASE}" REQUIRED NO_DEFAULT_PATH)
+
endif (WINDOWS)
+target_link_libraries(ll::boost INTERFACE
+ ${BOOST_FIBER_LIBRARY}
+ ${BOOST_CONTEXT_LIBRARY}
+ ${BOOST_FILESYSTEM_LIBRARY}
+ ${BOOST_PROGRAMOPTIONS_LIBRARY}
+ ${BOOST_THREAD_LIBRARY}
+ ${BOOST_URL_LIBRARY})
+
if (LINUX)
- set(BOOST_SYSTEM_LIBRARY ${BOOST_SYSTEM_LIBRARY} rt)
- set(BOOST_THREAD_LIBRARY ${BOOST_THREAD_LIBRARY} rt)
+ target_link_libraries(ll::boost INTERFACE rt)
endif (LINUX)