diff --git a/.codeql-prebuild-cpp-Linux.sh b/.codeql-prebuild-cpp-Linux.sh index 042ae12c8..244c0531b 100644 --- a/.codeql-prebuild-cpp-Linux.sh +++ b/.codeql-prebuild-cpp-Linux.sh @@ -24,10 +24,6 @@ sudo apt-get install -y \ g++-10 \ libayatana-appindicator3-dev \ libavdevice-dev \ - libboost-filesystem-dev \ - libboost-locale-dev \ - libboost-log-dev \ - libboost-program-options-dev \ libcap-dev \ libcurl4-openssl-dev \ libdrm-dev \ diff --git a/.codeql-prebuild-cpp-Windows.sh b/.codeql-prebuild-cpp-Windows.sh index 98b49cc8d..79158ebf6 100644 --- a/.codeql-prebuild-cpp-Windows.sh +++ b/.codeql-prebuild-cpp-Windows.sh @@ -19,7 +19,6 @@ pacman -Syu --noconfirm --ignore=mingw-w64-ucrt-x86_64-curl \ gcc \ git \ make \ - mingw-w64-ucrt-x86_64-boost \ mingw-w64-ucrt-x86_64-cmake \ mingw-w64-ucrt-x86_64-cppwinrt \ mingw-w64-ucrt-x86_64-graphviz \ diff --git a/.codeql-prebuild-cpp-macOS.sh b/.codeql-prebuild-cpp-macOS.sh index 4e74c8599..25a364c98 100644 --- a/.codeql-prebuild-cpp-macOS.sh +++ b/.codeql-prebuild-cpp-macOS.sh @@ -13,7 +13,9 @@ brew install \ # build mkdir -p build cd build || exit 1 -cmake -G "Unix Makefiles" .. +cmake \ + -DBOOST_USE_STATIC=OFF \ + -G "Unix Makefiles" .. make -j"$(sysctl -n hw.logicalcpu)" # skip autobuild diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 6ad4378eb..6bfa7b133 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -255,10 +255,6 @@ jobs: g++-10 \ libayatana-appindicator3-dev \ libavdevice-dev \ - libboost-filesystem-dev \ - libboost-locale-dev \ - libboost-log-dev \ - libboost-program-options-dev \ libcap-dev \ libcurl4-openssl-dev \ libdrm-dev \ @@ -979,7 +975,6 @@ jobs: pacman -Syu --noconfirm --ignore=mingw-w64-ucrt-x86_64-curl \ doxygen \ git \ - mingw-w64-ucrt-x86_64-boost \ mingw-w64-ucrt-x86_64-cmake \ mingw-w64-ucrt-x86_64-cppwinrt \ mingw-w64-ucrt-x86_64-graphviz \ diff --git a/cmake/compile_definitions/common.cmake b/cmake/compile_definitions/common.cmake index 90a71802c..fe31f290f 100644 --- a/cmake/compile_definitions/common.cmake +++ b/cmake/compile_definitions/common.cmake @@ -125,8 +125,8 @@ include_directories( "${CMAKE_SOURCE_DIR}/third-party/moonlight-common-c/enet/include" "${CMAKE_SOURCE_DIR}/third-party/nanors" "${CMAKE_SOURCE_DIR}/third-party/nanors/deps/obl" + ${Boost_INCLUDE_DIRS} ${FFMPEG_INCLUDE_DIRS} - ${PLATFORM_INCLUDE_DIRS} ) list(APPEND SUNSHINE_EXTERNAL_LIBRARIES diff --git a/cmake/compile_definitions/linux.cmake b/cmake/compile_definitions/linux.cmake index da1641223..9fcba3b37 100644 --- a/cmake/compile_definitions/linux.cmake +++ b/cmake/compile_definitions/linux.cmake @@ -117,43 +117,7 @@ elseif(NOT LIBDRM_FOUND) endif() # evdev -pkg_check_modules(PC_EVDEV libevdev) -if(PC_EVDEV_FOUND) - find_path(EVDEV_INCLUDE_DIR libevdev/libevdev.h - HINTS ${PC_EVDEV_INCLUDE_DIRS} ${PC_EVDEV_INCLUDEDIR}) - find_library(EVDEV_LIBRARY - NAMES evdev libevdev) -else() - include(ExternalProject) - - set(LIBEVDEV_VERSION libevdev-1.13.2) - - ExternalProject_Add(libevdev - URL http://www.freedesktop.org/software/libevdev/${LIBEVDEV_VERSION}.tar.xz - PREFIX ${LIBEVDEV_VERSION} - CONFIGURE_COMMAND /configure --prefix= - BUILD_COMMAND "make" - INSTALL_COMMAND "" - ) - - ExternalProject_Get_Property(libevdev SOURCE_DIR) - message(STATUS "libevdev source dir: ${SOURCE_DIR}") - set(EVDEV_INCLUDE_DIR "${SOURCE_DIR}") - - ExternalProject_Get_Property(libevdev BINARY_DIR) - message(STATUS "libevdev binary dir: ${BINARY_DIR}") - set(EVDEV_LIBRARY "${BINARY_DIR}/libevdev/.libs/libevdev.a") - - # compile libevdev before sunshine - set(SUNSHINE_TARGET_DEPENDENCIES ${SUNSHINE_TARGET_DEPENDENCIES} libevdev) -endif() - -if(EVDEV_INCLUDE_DIR AND EVDEV_LIBRARY) - include_directories(SYSTEM ${EVDEV_INCLUDE_DIR}) - list(APPEND PLATFORM_LIBRARIES ${EVDEV_LIBRARY}) -else() - message(FATAL_ERROR "Couldn't find or fetch libevdev") -endif() +include(dependencies/libevdev_Sunshine) # vaapi if(${SUNSHINE_ENABLE_VAAPI}) @@ -274,7 +238,6 @@ list(APPEND PLATFORM_TARGET_FILES "${CMAKE_SOURCE_DIR}/third-party/glad/include/glad/egl.h") list(APPEND PLATFORM_LIBRARIES - Boost::dynamic_linking dl pulse pulse-simple) diff --git a/cmake/compile_definitions/macos.cmake b/cmake/compile_definitions/macos.cmake index ab30a641b..fb33d3bf2 100644 --- a/cmake/compile_definitions/macos.cmake +++ b/cmake/compile_definitions/macos.cmake @@ -13,7 +13,9 @@ foreach(dir ${MACOS_LINK_DIRECTORIES}) endif() endforeach() -ADD_DEFINITIONS(-DBOOST_LOG_DYN_LINK) +if(NOT BOOST_USE_STATIC AND NOT FETCH_CONTENT_BOOST_USED) + ADD_DEFINITIONS(-DBOOST_LOG_DYN_LINK) +endif() list(APPEND SUNSHINE_EXTERNAL_LIBRARIES ${APP_KIT_LIBRARY} @@ -24,9 +26,6 @@ list(APPEND SUNSHINE_EXTERNAL_LIBRARIES ${FOUNDATION_LIBRARY} ${VIDEO_TOOLBOX_LIBRARY}) -set(PLATFORM_INCLUDE_DIRS - ${Boost_INCLUDE_DIR}) - set(APPLE_PLIST_FILE "${SUNSHINE_SOURCE_ASSETS_DIR}/macos/assets/Info.plist") # todo - tray is not working on macos diff --git a/cmake/compile_definitions/unix.cmake b/cmake/compile_definitions/unix.cmake index 27df12495..68660cd1b 100644 --- a/cmake/compile_definitions/unix.cmake +++ b/cmake/compile_definitions/unix.cmake @@ -2,7 +2,6 @@ # put anything here that applies to both linux and macos list(APPEND SUNSHINE_EXTERNAL_LIBRARIES - Boost::log ${CURL_LIBRARIES}) # add install prefix to assets path if not already there diff --git a/cmake/dependencies/Boost_Sunshine.cmake b/cmake/dependencies/Boost_Sunshine.cmake new file mode 100644 index 000000000..6615a389e --- /dev/null +++ b/cmake/dependencies/Boost_Sunshine.cmake @@ -0,0 +1,89 @@ +# +# Loads the boost library giving the priority to the system package first, with a fallback to FetchContent. +# +include_guard(GLOBAL) + +set(BOOST_VERSION 1.85) +set(BOOST_COMPONENTS + filesystem + locale + log + program_options + system) # system is not used by Sunshine, but by Simple-Web-Server, added here for convenience + +if(BOOST_USE_STATIC) + set(Boost_USE_STATIC_LIBS ON) # cmake-lint: disable=C0103 +endif() + +find_package(Boost ${BOOST_VERSION} COMPONENTS ${BOOST_COMPONENTS}) +if(NOT Boost_FOUND) + message(STATUS "Boost v${BOOST_VERSION}.x package not found in the system. Falling back to FetchContent.") + include(FetchContent) + + # Avoid warning about DOWNLOAD_EXTRACT_TIMESTAMP in CMake 3.24: + if (CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0") + cmake_policy(SET CMP0135 NEW) + endif() + + # more components required for compiling boost targets + list(APPEND BOOST_COMPONENTS + asio + crc + format + process + property_tree) + + set(BOOST_ENABLE_CMAKE ON) + + # Limit boost to the required libraries only + set(BOOST_INCLUDE_LIBRARIES + ${BOOST_COMPONENTS}) + set(BOOST_URL + "https://github.com/boostorg/boost/releases/download/boost-1.85.0/boost-1.85.0-cmake.tar.xz") + set(BOOST_HASH + "MD5=BADEA970931766604D4D5F8F4090B176") + + if(CMAKE_VERSION VERSION_LESS "3.24.0") + FetchContent_Declare( + Boost + URL ${BOOST_URL} + URL_HASH ${BOOST_HASH} + ) + elseif(APPLE AND CMAKE_VERSION VERSION_GREATER_EQUAL "3.25.0") + # add SYSTEM to FetchContent_Declare, this fails on debian bookworm + FetchContent_Declare( + Boost + URL ${BOOST_URL} + URL_HASH ${BOOST_HASH} + SYSTEM # requires CMake 3.25+ + OVERRIDE_FIND_PACKAGE # requires CMake 3.24+, but we have a macro to handle it for other versions + ) + elseif(CMAKE_VERSION VERSION_GREATER_EQUAL "3.24.0") + FetchContent_Declare( + Boost + URL ${BOOST_URL} + URL_HASH ${BOOST_HASH} + OVERRIDE_FIND_PACKAGE # requires CMake 3.24+, but we have a macro to handle it for other versions + ) + endif() + + FetchContent_MakeAvailable(Boost) + set(FETCH_CONTENT_BOOST_USED TRUE) + + set(Boost_FOUND TRUE) # cmake-lint: disable=C0103 + set(Boost_INCLUDE_DIRS # cmake-lint: disable=C0103 + "$;$") + + if(WIN32) + # Windows build is failing to create .h file in this directory + file(MAKE_DIRECTORY ${Boost_BINARY_DIR}/libs/log/src/windows) + endif() + + set(Boost_LIBRARIES "") # cmake-lint: disable=C0103 + foreach(component ${BOOST_COMPONENTS}) + list(APPEND Boost_LIBRARIES "Boost::${component}") + endforeach() +endif() + +message(STATUS "Boost include dirs: ${Boost_INCLUDE_DIRS}") +message(STATUS "Boost libraries: ${Boost_LIBRARIES}") diff --git a/cmake/dependencies/common.cmake b/cmake/dependencies/common.cmake index 191343fbf..01065b387 100644 --- a/cmake/dependencies/common.cmake +++ b/cmake/dependencies/common.cmake @@ -1,9 +1,12 @@ # load common dependencies # this file will also load platform specific dependencies +# boost, this should be before Simple-Web-Server as it also depends on boost +include(dependencies/Boost_Sunshine) + # submodules # moonlight common library -set(ENET_NO_INSTALL ON CACHE BOOL "Don't install any libraries build for enet") +set(ENET_NO_INSTALL ON CACHE BOOL "Don't install any libraries built for enet") add_subdirectory("${CMAKE_SOURCE_DIR}/third-party/moonlight-common-c/enet") # web server diff --git a/cmake/dependencies/libevdev_Sunshine.cmake b/cmake/dependencies/libevdev_Sunshine.cmake new file mode 100644 index 000000000..4d0af70a0 --- /dev/null +++ b/cmake/dependencies/libevdev_Sunshine.cmake @@ -0,0 +1,44 @@ +# +# Loads the libevdev library giving the priority to the system package first, with a fallback to ExternalProject +# +include_guard(GLOBAL) + +set(LIBEVDEV_VERSION libevdev-1.13.2) + +pkg_check_modules(PC_EVDEV libevdev) +if(PC_EVDEV_FOUND) + find_path(EVDEV_INCLUDE_DIR libevdev/libevdev.h + HINTS ${PC_EVDEV_INCLUDE_DIRS} ${PC_EVDEV_INCLUDEDIR}) + find_library(EVDEV_LIBRARY + NAMES evdev libevdev) +else() + include(ExternalProject) + + ExternalProject_Add(libevdev + URL http://www.freedesktop.org/software/libevdev/${LIBEVDEV_VERSION}.tar.xz + PREFIX ${LIBEVDEV_VERSION} + CONFIGURE_COMMAND /configure --prefix= + BUILD_COMMAND "make" + INSTALL_COMMAND "" + ) + + ExternalProject_Get_Property(libevdev SOURCE_DIR) + message(STATUS "libevdev source dir: ${SOURCE_DIR}") + set(EVDEV_INCLUDE_DIR "${SOURCE_DIR}") + + ExternalProject_Get_Property(libevdev BINARY_DIR) + message(STATUS "libevdev binary dir: ${BINARY_DIR}") + set(EVDEV_LIBRARY "${BINARY_DIR}/libevdev/.libs/libevdev.a") + + # compile libevdev before sunshine + set(SUNSHINE_TARGET_DEPENDENCIES ${SUNSHINE_TARGET_DEPENDENCIES} libevdev) + + set(EXTERNAL_PROJECT_LIBEVDEV_USED TRUE) +endif() + +if(EVDEV_INCLUDE_DIR AND EVDEV_LIBRARY) + include_directories(SYSTEM ${EVDEV_INCLUDE_DIR}) + list(APPEND PLATFORM_LIBRARIES ${EVDEV_LIBRARY}) +else() + message(FATAL_ERROR "Couldn't find or fetch libevdev") +endif() diff --git a/cmake/dependencies/unix.cmake b/cmake/dependencies/unix.cmake index 5b13bf604..1f5ffd3ad 100644 --- a/cmake/dependencies/unix.cmake +++ b/cmake/dependencies/unix.cmake @@ -1,4 +1,2 @@ # unix specific dependencies # put anything here that applies to both linux and macos - -find_package(Boost COMPONENTS locale log filesystem program_options REQUIRED) diff --git a/cmake/dependencies/windows.cmake b/cmake/dependencies/windows.cmake index a7ecce396..0563e5678 100644 --- a/cmake/dependencies/windows.cmake +++ b/cmake/dependencies/windows.cmake @@ -1,7 +1,4 @@ # windows specific dependencies -set(Boost_USE_STATIC_LIBS ON) # cmake-lint: disable=C0103 -find_package(Boost 1.71.0 COMPONENTS locale log filesystem program_options REQUIRED) - # nlohmann_json pkg_check_modules(NLOHMANN_JSON nlohmann_json REQUIRED IMPORTED_TARGET) diff --git a/cmake/macros/common.cmake b/cmake/macros/common.cmake index 24592355f..215b9fd8d 100644 --- a/cmake/macros/common.cmake +++ b/cmake/macros/common.cmake @@ -13,3 +13,31 @@ elseif(UNIX) include(${CMAKE_MODULE_PATH}/macros/linux.cmake) endif() endif() + +# override find_package function +macro(find_package) # cmake-lint: disable=C0103 + string(TOLOWER "${ARGV0}" ARGV0_LOWER) + if( + (("${ARGV0_LOWER}" STREQUAL "boost") AND DEFINED FETCH_CONTENT_BOOST_USED) OR + (("${ARGV0_LOWER}" STREQUAL "libevdev") AND DEFINED FETCH_CONTENT_LIBEVDEV_USED) + ) + # Do nothing, as the package has already been fetched + else() + # Call the original find_package function + _find_package(${ARGV}) + endif() +endmacro() + +# override pkg_check_modules function +macro(pkg_check_modules) # cmake-lint: disable=C0103 + string(TOLOWER "${ARGV0}" ARGV0_LOWER) + if( + (("${ARGV0_LOWER}" STREQUAL "boost") AND DEFINED FETCH_CONTENT_BOOST_USED) OR + (("${ARGV0_LOWER}" STREQUAL "libevdev") AND DEFINED FETCH_CONTENT_LIBEVDEV_USED) + ) + # Do nothing, as the package has already been fetched + else() + # Call the original pkg_check_modules function + _pkg_check_modules(${ARGV}) + endif() +endmacro() diff --git a/cmake/packaging/linux.cmake b/cmake/packaging/linux.cmake index 4d9cfbcec..4e5969174 100644 --- a/cmake/packaging/linux.cmake +++ b/cmake/packaging/linux.cmake @@ -28,10 +28,6 @@ set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${SUNSHINE_SOURCE_ASSETS_DIR}/linux/misc set(CPACK_DEB_COMPONENT_INSTALL ON) set(CPACK_DEBIAN_PACKAGE_DEPENDS "\ ${CPACK_DEB_PLATFORM_PACKAGE_DEPENDS} \ - libboost-filesystem${Boost_VERSION}, \ - libboost-locale${Boost_VERSION}, \ - libboost-log${Boost_VERSION}, \ - libboost-program-options${Boost_VERSION}, \ libcap2, \ libcurl4, \ libdrm2, \ @@ -48,10 +44,6 @@ set(CPACK_DEBIAN_PACKAGE_DEPENDS "\ openssl | libssl3") set(CPACK_RPM_PACKAGE_REQUIRES "\ ${CPACK_RPM_PLATFORM_PACKAGE_REQUIRES} \ - boost-filesystem >= ${Boost_VERSION}, \ - boost-locale >= ${Boost_VERSION}, \ - boost-log >= ${Boost_VERSION}, \ - boost-program-options >= ${Boost_VERSION}, \ libcap >= 2.22, \ libcurl >= 7.0, \ libdrm >= 2.4.97, \ @@ -66,6 +58,21 @@ set(CPACK_RPM_PACKAGE_REQUIRES "\ openssl >= 3.0.2, \ pulseaudio-libs >= 10.0") +if(NOT BOOST_USE_STATIC) + set(CPACK_DEBIAN_PACKAGE_DEPENDS "\ + ${CPACK_DEBIAN_PACKAGE_DEPENDS}, \ + libboost-filesystem${Boost_VERSION}, \ + libboost-locale${Boost_VERSION}, \ + libboost-log${Boost_VERSION}, \ + libboost-program-options${Boost_VERSION}") + set(CPACK_RPM_PACKAGE_REQUIRES "\ + ${CPACK_RPM_PACKAGE_REQUIRES}, \ + boost-filesystem >= ${Boost_VERSION}, \ + boost-locale >= ${Boost_VERSION}, \ + boost-log >= ${Boost_VERSION}, \ + boost-program-options >= ${Boost_VERSION}") +endif() + # This should automatically figure out dependencies, doesn't work with the current config set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) diff --git a/cmake/prep/options.cmake b/cmake/prep/options.cmake index 0e9532edb..078025e07 100644 --- a/cmake/prep/options.cmake +++ b/cmake/prep/options.cmake @@ -15,6 +15,8 @@ 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(BOOST_USE_STATIC "Use static boost libraries." ON) + option(CUDA_INHERIT_COMPILE_OPTIONS "When building CUDA code, inherit compile options from the the main project. You may want to disable this if your IDE throws errors about unknown flags after running cmake." ON) @@ -24,7 +26,7 @@ if(UNIX) "Enable a Homebrew build." OFF) option(SUNSHINE_CONFIGURE_HOMEBREW "Configure Homebrew formula. Recommended to use with SUNSHINE_CONFIGURE_ONLY" OFF) -endif () +endif() if(APPLE) option(SUNSHINE_CONFIGURE_PORTFILE diff --git a/docker/clion-toolchain.dockerfile b/docker/clion-toolchain.dockerfile index 910e37559..3ffd483fd 100644 --- a/docker/clion-toolchain.dockerfile +++ b/docker/clion-toolchain.dockerfile @@ -33,10 +33,6 @@ apt-get install -y --no-install-recommends \ git \ graphviz \ libayatana-appindicator3-dev \ - libboost-filesystem-dev=1.74.* \ - libboost-locale-dev=1.74.* \ - libboost-log-dev=1.74.* \ - libboost-program-options-dev=1.74.* \ libcap-dev \ libcurl4-openssl-dev \ libdrm-dev \ diff --git a/docker/debian-bookworm.dockerfile b/docker/debian-bookworm.dockerfile index ef5d2b4bd..481790577 100644 --- a/docker/debian-bookworm.dockerfile +++ b/docker/debian-bookworm.dockerfile @@ -36,10 +36,6 @@ apt-get install -y --no-install-recommends \ git \ graphviz \ libayatana-appindicator3-dev \ - libboost-filesystem-dev=1.74.* \ - libboost-locale-dev=1.74.* \ - libboost-log-dev=1.74.* \ - libboost-program-options-dev=1.74.* \ libcap-dev \ libcurl4-openssl-dev \ libdrm-dev \ diff --git a/docker/debian-bullseye.dockerfile b/docker/debian-bullseye.dockerfile index d909b9201..c2f6172af 100644 --- a/docker/debian-bullseye.dockerfile +++ b/docker/debian-bullseye.dockerfile @@ -37,10 +37,6 @@ apt-get install -y --no-install-recommends \ git \ graphviz \ libayatana-appindicator3-dev \ - libboost-filesystem-dev=1.74.* \ - libboost-locale-dev=1.74.* \ - libboost-log-dev=1.74.* \ - libboost-program-options-dev=1.74.* \ libcap-dev \ libcurl4-openssl-dev \ libdrm-dev \ diff --git a/docker/fedora-39.dockerfile b/docker/fedora-39.dockerfile index 6dd400925..63c311bf2 100644 --- a/docker/fedora-39.dockerfile +++ b/docker/fedora-39.dockerfile @@ -30,7 +30,6 @@ set -e dnf -y update dnf -y group install "Development Tools" dnf -y install \ - boost-devel-1.81.0* \ cmake-3.27.* \ doxygen \ gcc-13.2.* \ diff --git a/docker/fedora-40.dockerfile b/docker/fedora-40.dockerfile index d13bdf709..c97f81d2f 100644 --- a/docker/fedora-40.dockerfile +++ b/docker/fedora-40.dockerfile @@ -30,7 +30,6 @@ set -e dnf -y update dnf -y group install "Development Tools" dnf -y install \ - boost-devel-1.83.0* \ cmake-3.28.* \ doxygen \ gcc-14.1.* \ diff --git a/docker/ubuntu-22.04.dockerfile b/docker/ubuntu-22.04.dockerfile index b78fe0ec7..70524cdf4 100644 --- a/docker/ubuntu-22.04.dockerfile +++ b/docker/ubuntu-22.04.dockerfile @@ -37,10 +37,6 @@ apt-get install -y --no-install-recommends \ git \ graphviz \ libayatana-appindicator3-dev \ - libboost-filesystem-dev=1.74.* \ - libboost-locale-dev=1.74.* \ - libboost-log-dev=1.74.* \ - libboost-program-options-dev=1.74.* \ libcap-dev \ libcurl4-openssl-dev \ libdrm-dev \ diff --git a/docker/ubuntu-24.04.dockerfile b/docker/ubuntu-24.04.dockerfile index a2f2e6844..765a6b85f 100644 --- a/docker/ubuntu-24.04.dockerfile +++ b/docker/ubuntu-24.04.dockerfile @@ -39,10 +39,6 @@ apt-get install -y --no-install-recommends \ git \ graphviz \ libayatana-appindicator3-dev \ - libboost-filesystem-dev=1.83.* \ - libboost-locale-dev=1.83.* \ - libboost-log-dev=1.83.* \ - libboost-program-options-dev=1.83.* \ libcap-dev \ libcurl4-openssl-dev \ libdrm-dev \ diff --git a/docs/source/building/linux.rst b/docs/source/building/linux.rst index 5e3d79b76..27a8f25d1 100644 --- a/docs/source/building/linux.rst +++ b/docs/source/building/linux.rst @@ -16,10 +16,6 @@ Install Requirements build-essential \ cmake \ libayatana-appindicator3-dev \ - libboost-filesystem-dev \ - libboost-locale-dev \ - libboost-log-dev \ - libboost-program-options-dev \ libcap-dev \ # KMS libcurl4-openssl-dev \ libdrm-dev \ # KMS @@ -54,7 +50,6 @@ Install Requirements sudo dnf update && \ sudo dnf group install "Development Tools" && \ sudo dnf install \ - boost-devel \ cmake \ gcc \ gcc-c++ \ @@ -95,10 +90,6 @@ Install Requirements build-essential \ cmake \ libappindicator3-dev \ - libboost-filesystem-dev \ - libboost-locale-dev \ - libboost-log-dev \ - libboost-program-options-dev \ libcap-dev \ # KMS libcurl4-openssl-dev \ libdrm-dev \ # KMS @@ -135,10 +126,6 @@ Install Requirements gcc-11 \ g++-11 \ libappindicator3-dev \ - libboost-filesystem-dev \ - libboost-locale-dev \ - libboost-log-dev \ - libboost-program-options-dev \ libcap-dev \ # KMS libcurl4-openssl-dev \ libdrm-dev \ # KMS diff --git a/docs/source/building/macos.rst b/docs/source/building/macos.rst index 1b874d71a..c2a0adbbd 100644 --- a/docs/source/building/macos.rst +++ b/docs/source/building/macos.rst @@ -12,14 +12,14 @@ MacPorts Install Requirements .. code-block:: bash - sudo port install avahi boost180 cmake curl doxygen graphviz libopus miniupnpc npm9 pkgconfig python311 py311-pip + sudo port install avahi cmake curl doxygen graphviz libopus miniupnpc npm9 pkgconfig python311 py311-pip Homebrew """""""" Install Requirements .. code-block:: bash - brew install boost cmake doxygen graphviz miniupnpc node opus pkg-config python@3.11 + brew install cmake doxygen graphviz icu4c miniupnpc node openssl@3 opus pkg-config python@3.11 If there are issues with an SSL header that is not found: .. tab:: Intel diff --git a/docs/source/building/windows.rst b/docs/source/building/windows.rst index 084c492f5..76cf6ac3f 100644 --- a/docs/source/building/windows.rst +++ b/docs/source/building/windows.rst @@ -17,7 +17,6 @@ Install dependencies: pacman -S \ doxygen \ git \ - mingw-w64-ucrt-x86_64-boost \ mingw-w64-ucrt-x86_64-cmake \ mingw-w64-ucrt-x86_64-cppwinrt \ mingw-w64-ucrt-x86_64-curl \ diff --git a/packaging/linux/Arch/PKGBUILD b/packaging/linux/Arch/PKGBUILD index e994f0e3a..bda90acde 100644 --- a/packaging/linux/Arch/PKGBUILD +++ b/packaging/linux/Arch/PKGBUILD @@ -13,7 +13,6 @@ install=sunshine.install _gcc_version=13 depends=('avahi' - 'boost-libs' 'curl' 'libayatana-appindicator' 'libcap' @@ -37,8 +36,7 @@ depends=('avahi' 'udev') checkdepends=('doxygen' 'graphviz') -makedepends=('boost' - 'cmake' +makedepends=('cmake' "gcc${_gcc_version}" 'git' 'make' diff --git a/packaging/linux/flatpak/dev.lizardbyte.sunshine.yml b/packaging/linux/flatpak/dev.lizardbyte.sunshine.yml index fc946b51a..ea20aa2a8 100644 --- a/packaging/linux/flatpak/dev.lizardbyte.sunshine.yml +++ b/packaging/linux/flatpak/dev.lizardbyte.sunshine.yml @@ -36,25 +36,6 @@ build-options: modules: - "org.flatpak.Builder.BaseApp/xvfb.json" - - name: boost - disabled: false - buildsystem: simple - build-commands: - - cd tools/build && bison -y -d -o src/engine/jamgram.cpp src/engine/jamgram.y - - ./bootstrap.sh --prefix=$FLATPAK_DEST --with-libraries=locale,log,program_options,system,thread - - ./b2 install variant=release link=shared runtime-link=shared cxxflags="$CXXFLAGS" linkflags="$LDFLAGS" - -j $FLATPAK_BUILDER_N_JOBS - sources: - - type: archive - url: http://archive.ubuntu.com/ubuntu/pool/main/b/boost1.74/boost1.74_1.74.0.orig.tar.xz - sha256: 2467be4af625b5ae4b3c93fc7af196a09eba39c11a7338cd9e8b356fa44d2f45 - - type: archive - url: http://archive.ubuntu.com/ubuntu/pool/main/b/boost1.74/boost1.74_1.74.0-18.1ubuntu3.debian.tar.xz - sha256: d5660bdce3ea4ac66194b0c4bc6dc3b9d43d41cc16af8bc6024980d965e40ae2 - - type: shell - commands: - - for n in $(cat patches/series); do if [[ $n != "#"* ]]; then patch -Np1 -i "patches/$n" -d .; fi; done - - name: avahi disabled: false cleanup: diff --git a/packaging/macos/Portfile b/packaging/macos/Portfile index baf59b36b..e47fc77d3 100644 --- a/packaging/macos/Portfile +++ b/packaging/macos/Portfile @@ -5,7 +5,6 @@ PortSystem 1.0 PortGroup cmake 1.1 PortGroup github 1.0 -PortGroup boost 1.0 name @PROJECT_NAME@ version @PROJECT_VERSION@ @@ -45,8 +44,6 @@ depends_lib port:avahi \ depends_test port:doxygen \ port:graphviz -boost.version 1.81 - configure.args -DBUILD_WERROR=ON \ -DCMAKE_INSTALL_PREFIX=${prefix} \ -DSUNSHINE_ASSETS_DIR=etc/sunshine/assets diff --git a/packaging/sunshine.rb b/packaging/sunshine.rb index c41f0a31d..dbb028295 100644 --- a/packaging/sunshine.rb +++ b/packaging/sunshine.rb @@ -21,7 +21,6 @@ class @PROJECT_NAME@ < Formula end end - depends_on "boost" => :build depends_on "cmake" => :build depends_on "node" => :build depends_on "pkg-config" => :build