diff options
| author | Erik Kundiman <erik@megapahit.org> | 2025-06-03 17:10:49 +0800 | 
|---|---|---|
| committer | Erik Kundiman <erik@megapahit.org> | 2025-06-03 17:10:49 +0800 | 
| commit | 2bf9d234aac30ed4a85282730da0ffc83acf9adf (patch) | |
| tree | f33bddabd207a3e4295ff86dd61b0149b64d1a56 | |
| parent | 36842acf763d664002cd89b8a76679ab8bbcda24 (diff) | |
Use LL's prebuilt Windows Boost for now
I got "definition of dllimport function not allowed" errors when using
vcpkg's Boost.
Someone else got this problem too:
https://github.com/boostorg/serialization/issues/278
Hopefully later we can get back to using vcpkg's Boost.
| -rw-r--r-- | README.md | 2 | ||||
| -rw-r--r-- | indra/cmake/Boost.cmake | 52 | 
2 files changed, 28 insertions, 26 deletions
| @@ -121,7 +121,7 @@ $ megapahit  ### Windows  ``` -$ vcpkg install pkgconf python3 freealut apr-util boost freetype glm hunspell libjpeg-turbo meshoptimizer minizip nghttp2 openjpeg libvorbis libxml2[tools] xxhash +$ vcpkg install pkgconf python3 freealut apr-util freetype glm hunspell libjpeg-turbo meshoptimizer minizip nghttp2 openjpeg libvorbis libxml2[tools] xxhash  $ export LL_BUILD="/MD /O2 /Ob2 /std:c++20 /Zc:wchar_t- /Zi /GR /DLL_RELEASE=1 /DLL_RELEASE_FOR_DOWNLOAD=1 /DNDEBUG /D_SECURE_STL=0 /D_HAS_ITERATOR_DEBUGGING=0 /DWIN32 /D_WINDOWS /DLL_WINDOWS=1 /DUNICODE /D_UNICODE /DWINVER=0x0602 /D_WIN32_WINNT=0x0602"  $ export PATH="/c/Program Files/Microsoft Visual Studio/2022/Community/Common7/IDE/CommonExtensions/Microsoft/CMake/CMake/bin:/c/Program Files/Microsoft Visual Studio/2022/Community/MSBuild/Current/Bin:$VCPKG_ROOT/downloads/tools/msys2/21caed2f81ec917b/mingw64/bin:$VCPKG_ROOT/installed/`uname -m|sed 's/86_//'`-windows/tools/libxml2:$PATH"  $ export PKG_CONFIG_LIBDIR="$VCPKG_ROOT/installed/`uname -m|sed 's/86_//'`-windows/lib/pkgconfig" diff --git a/indra/cmake/Boost.cmake b/indra/cmake/Boost.cmake index 9ea1f6c9a6..2c4ec193e7 100644 --- a/indra/cmake/Boost.cmake +++ b/indra/cmake/Boost.cmake @@ -4,38 +4,40 @@ include(Prebuilt)  include_guard()  add_library( ll::boost INTERFACE IMPORTED ) - -if (DARWIN) -  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) -  set(sfx -mt) -elseif (WINDOWS) -  target_include_directories( ll::boost SYSTEM INTERFACE ${prefix_result}/../include) -  target_link_directories( ll::boost INTERFACE ${prefix_result}) -  set(sfx -vc143-mt-x64-1_88) -else () -  find_package( Boost REQUIRED ) -endif () -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() -  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()  endif() +if (WINDOWS)  use_prebuilt_binary(boost) +  target_include_directories( ll::boost SYSTEM INTERFACE ${LIBS_PREBUILT_DIR}/include) +else () +  if (DARWIN) +    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) +    set(sfx -mt) +  elseif (WINDOWS) +    target_include_directories( ll::boost SYSTEM INTERFACE ${prefix_result}/../include) +    target_link_directories( ll::boost INTERFACE ${prefix_result}) +    set(sfx -vc143-mt-x64-1_88) +  else () +    find_package( Boost REQUIRED ) +  endif () +  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 ()  # As of sometime between Boost 1.67 and 1.72, Boost libraries are suffixed  # with the address size. | 
