fix(macos): fix boost on macos (#2733)

Co-authored-by: ReenigneArcher <42013603+ReenigneArcher@users.noreply.github.com>
This commit is contained in:
Vithorio Polten
2024-06-21 16:38:52 -03:00
committed by GitHub
parent acd9ae606e
commit 13f94f113a
4 changed files with 33 additions and 3 deletions

View File

@@ -125,8 +125,8 @@ include_directories(
"${CMAKE_SOURCE_DIR}/third-party/moonlight-common-c/enet/include" "${CMAKE_SOURCE_DIR}/third-party/moonlight-common-c/enet/include"
"${CMAKE_SOURCE_DIR}/third-party/nanors" "${CMAKE_SOURCE_DIR}/third-party/nanors"
"${CMAKE_SOURCE_DIR}/third-party/nanors/deps/obl" "${CMAKE_SOURCE_DIR}/third-party/nanors/deps/obl"
${Boost_INCLUDE_DIRS}
${FFMPEG_INCLUDE_DIRS} ${FFMPEG_INCLUDE_DIRS}
${Boost_INCLUDE_DIRS} # has to be the last, or we get runtime error on macOS ffmpeg encoder
) )
list(APPEND SUNSHINE_EXTERNAL_LIBRARIES list(APPEND SUNSHINE_EXTERNAL_LIBRARIES

View File

@@ -15,7 +15,11 @@ option(SUNSHINE_REQUIRE_TRAY "Require system tray icon. Fail the build if tray r
option(SUNSHINE_SYSTEM_WAYLAND_PROTOCOLS "Use system installation of wayland-protocols rather than the submodule." OFF) option(SUNSHINE_SYSTEM_WAYLAND_PROTOCOLS "Use system installation of wayland-protocols rather than the submodule." OFF)
option(BOOST_USE_STATIC "Use static boost libraries." ON) if(APPLE)
option(BOOST_USE_STATIC "Use static boost libraries." OFF)
else()
option(BOOST_USE_STATIC "Use static boost libraries." ON)
endif()
option(CUDA_INHERIT_COMPILE_OPTIONS option(CUDA_INHERIT_COMPILE_OPTIONS
"When building CUDA code, inherit compile options from the the main project. You may want to disable this if "When building CUDA code, inherit compile options from the the main project. You may want to disable this if

View File

@@ -44,7 +44,8 @@ depends_lib port:avahi \
depends_test port:doxygen \ depends_test port:doxygen \
port:graphviz port:graphviz
configure.args -DBUILD_WERROR=ON \ configure.args -DBOOST_USE_STATIC=ON \
-DBUILD_WERROR=ON \
-DCMAKE_INSTALL_PREFIX=${prefix} \ -DCMAKE_INSTALL_PREFIX=${prefix} \
-DSUNSHINE_ASSETS_DIR=etc/sunshine/assets -DSUNSHINE_ASSETS_DIR=etc/sunshine/assets

View File

@@ -21,6 +21,9 @@ class @PROJECT_NAME@ < Formula
end end
end end
option "without-dynamic-boost", "Statically link Boost libraries" # default option
option "with-dynamic-boost", "Dynamically link Boost libraries"
depends_on "cmake" => :build depends_on "cmake" => :build
depends_on "node" => :build depends_on "node" => :build
depends_on "pkg-config" => :build depends_on "pkg-config" => :build
@@ -28,6 +31,7 @@ class @PROJECT_NAME@ < Formula
depends_on "miniupnpc" depends_on "miniupnpc"
depends_on "openssl" depends_on "openssl"
depends_on "opus" depends_on "opus"
depends_on "icu4c" => :recommended
on_linux do on_linux do
depends_on "libcap" depends_on "libcap"
@@ -64,6 +68,27 @@ class @PROJECT_NAME@ < Formula
-DSUNSHINE_ENABLE_TRAY=OFF -DSUNSHINE_ENABLE_TRAY=OFF
-DTESTS_ENABLE_PYTHON_TESTS=OFF -DTESTS_ENABLE_PYTHON_TESTS=OFF
] ]
if build.without? "dynamic-boost"
args << "-DBOOST_USE_STATIC=ON"
ohai "Statically linking Boost libraries"
unless Formula["icu4c"].any_version_installed?
odie <<~EOS
icu4c must be installed to link against static Boost libraries,
either install icu4c or use brew install sunshine --with-dynamic-boost instead
EOS
end
ENV.append "CXXFLAGS", "-I#{Formula["icu4c"].opt_include}"
icu4c_lib_path = Formula["icu4c"].opt_lib.to_s
ENV.append "LDFLAGS", "-L#{icu4c_lib_path}"
ENV["LIBRARY_PATH"] = icu4c_lib_path
ohai "Linking against ICU libraries at: #{icu4c_lib_path}"
else
args << "-DBOOST_USE_STATIC=OFF"
ohai "Dynamically linking Boost libraries"
end
system "cmake", "-S", ".", "-B", "build", *std_cmake_args, *args system "cmake", "-S", ".", "-B", "build", *std_cmake_args, *args
cd "build" do cd "build" do