diff --git a/.codeql-prebuild-cpp-Linux.sh b/.codeql-prebuild-cpp-Linux.sh index 042ae12c..244c0531 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 98b49cc8..79158ebf 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 4e74c859..25a364c9 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 6ad4378e..6bfa7b13 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 90a71802..fe31f290 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 da164122..9fcba3b3 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 ab30a641..fb33d3bf 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 27df1249..68660cd1 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 00000000..6615a389 --- /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 191343fb..01065b38 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 00000000..4d0af70a --- /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 5b13bf60..1f5ffd3a 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 a7ecce39..0563e567 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 24592355..215b9fd8 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 4d9cfbce..4e596917 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 0e9532ed..078025e0 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 910e3755..3ffd483f 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 ef5d2b4b..48179057 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 d909b920..c2f6172a 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 6dd40092..63c311bf 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 d13bdf70..c97f81d2 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 b78fe0ec..70524cdf 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 a2f2e684..765a6b85 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 5e3d79b7..27a8f25d 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 1b874d71..c2a0adbb 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 084c492f..76cf6ac3 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 e994f0e3..bda90acd 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 fc946b51..ea20aa2a 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 baf59b36..e47fc77d 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 c41f0a31..dbb02829 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