ref:f9d1aca72e9b5633e93b340d14fc870bc8f38a2e

build(macos): configure C++ standard and ICU root (#5101)

SHA: f9d1aca72e9b5633e93b340d14fc870bc8f38a2e
Author: martona <marton@anka.me>
Date: 2026-05-13 23:01
Parents: 0709990
7 files changed +23 -13
Type
.github/workflows/ci-macos.yml +1 −0
@@ -97,6 +97,7 @@
-S . \
-DBUILD_WERROR=ON \
-DCMAKE_BUILD_TYPE=Release \
-DICU_ROOT="$(brew --prefix icu4c@78 2>/dev/null)" \
-DOPENSSL_ROOT_DIR="$(brew --prefix openssl@3 2>/dev/null)" \
-DOpus_ROOT_DIR="$(brew --prefix opus 2>/dev/null)" \
-DSUNSHINE_PUBLISHER_NAME="${GITHUB_REPOSITORY_OWNER}" \
cmake/targets/common.cmake +0 −7
@@ -23,15 +23,8 @@
endif()
endif()
# todo - is this necessary? ... for anything except linux?
if(NOT DEFINED CMAKE_CUDA_STANDARD)
set(CMAKE_CUDA_STANDARD 17)
set(CMAKE_CUDA_STANDARD_REQUIRED ON)
endif()
target_link_libraries(sunshine ${SUNSHINE_EXTERNAL_LIBRARIES} ${EXTRA_LIBS})
target_compile_definitions(sunshine PUBLIC ${SUNSHINE_DEFINITIONS})
set_target_properties(sunshine PROPERTIES CXX_STANDARD 23)
# CLion complains about unknown flags after running cmake, and cannot add symbols to the index for cuda files
if(CUDA_INHERIT_COMPILE_OPTIONS)
CMakeLists.txt +7 −0
@@ -8,6 +8,13 @@
DESCRIPTION "Self-hosted game stream host for Moonlight"
HOMEPAGE_URL "https://app.lizardbyte.dev/Sunshine")
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(NOT DEFINED CMAKE_CUDA_STANDARD)
set(CMAKE_CUDA_STANDARD 17)
set(CMAKE_CUDA_STANDARD_REQUIRED ON)
endif()
set(PROJECT_LICENSE "GPL-3.0-only")
set(PROJECT_FQDN "dev.lizardbyte.app.Sunshine")
packaging/sunshine.rb +0 −1
@@ -167,7 +167,6 @@
def base_cmake_args
args = %W[
-DBUILD_WERROR=ON
-DCMAKE_CXX_STANDARD=23
-DCMAKE_INSTALL_PREFIX=#{prefix}
-DGLAD_SKIP_PIP_INSTALL=ON
-DHOMEBREW_ALLOW_FETCHCONTENT=ON
scripts/macos_build.sh +1 −0
@@ -98,6 +98,7 @@
"-DBUILD_TESTS=${build_tests}"
"-DBUILD_WERROR=ON"
"-DCMAKE_BUILD_TYPE=${build_type}"
"-DICU_ROOT=$(brew --prefix icu4c@78 2>/dev/null)"
"-DOPENSSL_ROOT_DIR=$(brew --prefix openssl@3 2>/dev/null)"
"-DOpus_ROOT_DIR=$(brew --prefix opus 2>/dev/null)"
"-DSUNSHINE_ENABLE_TRAY=ON"
tests/CMakeLists.txt +7 −2
@@ -3,6 +3,13 @@
project(test_sunshine)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(NOT DEFINED CMAKE_CUDA_STANDARD)
set(CMAKE_CUDA_STANDARD 17)
set(CMAKE_CUDA_STANDARD_REQUIRED ON)
endif()
include_directories("${CMAKE_SOURCE_DIR}")
enable_testing()
@@ -150,8 +157,6 @@
# Ensure locale files are synchronized before building the test executable
add_dependencies(${PROJECT_NAME} sync_locale_files)
set_target_properties(${PROJECT_NAME} PROPERTIES CXX_STANDARD 23)
# Build the list of libraries to link
set(TEST_LINK_LIBRARIES
tools/CMakeLists.txt +7 −3
@@ -2,6 +2,13 @@
project(sunshine_tools)
set(CMAKE_CXX_STANDARD 23)
set(CMAKE_CXX_STANDARD_REQUIRED ON)
if(NOT DEFINED CMAKE_CUDA_STANDARD)
set(CMAKE_CUDA_STANDARD 17)
set(CMAKE_CUDA_STANDARD_REQUIRED ON)
endif()
include_directories(
"${CMAKE_SOURCE_DIR}"
"${FFMPEG_INCLUDE_DIRS}" # this is included only for logging
@@ -13,7 +20,6 @@
)
add_executable(dxgi-info dxgi.cpp ${TOOL_SOURCES})
set_target_properties(dxgi-info PROPERTIES CXX_STANDARD 23)
target_link_libraries(dxgi-info
${Boost_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT}
@@ -25,7 +31,6 @@
target_compile_options(dxgi-info PRIVATE ${SUNSHINE_COMPILE_OPTIONS})
add_executable(audio-info audio.cpp ${TOOL_SOURCES})
set_target_properties(audio-info PROPERTIES CXX_STANDARD 23)
target_link_libraries(audio-info
${Boost_LIBRARIES}
${CMAKE_THREAD_LIBS_INIT}
@@ -37,7 +42,6 @@
target_compile_options(audio-info PRIVATE ${SUNSHINE_COMPILE_OPTIONS})
add_executable(sunshinesvc sunshinesvc.cpp)
set_target_properties(sunshinesvc PROPERTIES CXX_STANDARD 23)
target_link_libraries(sunshinesvc
${CMAKE_THREAD_LIBS_INIT}
wtsapi32