diff options
Diffstat (limited to 'net-misc/sunshine/files/sunshine-find-npm.patch')
-rw-r--r-- | net-misc/sunshine/files/sunshine-find-npm.patch | 106 |
1 files changed, 49 insertions, 57 deletions
diff --git a/net-misc/sunshine/files/sunshine-find-npm.patch b/net-misc/sunshine/files/sunshine-find-npm.patch index 42b91299cca5..ab25b4527b78 100644 --- a/net-misc/sunshine/files/sunshine-find-npm.patch +++ b/net-misc/sunshine/files/sunshine-find-npm.patch @@ -1,36 +1,65 @@ -From 0fa3273af349089b7d62c996fcaea67b10ed2a0c Mon Sep 17 00:00:00 2001 +From 66740900522f42564a2b0bd4e8a435ed24a61725 Mon Sep 17 00:00:00 2001 From: James Le Cuirot <chewi@gentoo.org> -Date: Sat, 4 May 2024 23:32:29 +0100 -Subject: [PATCH 1/2] build: Unify asset building by leveraging CMake's env - command +Date: Sun, 12 May 2024 17:26:14 +0100 +Subject: [PATCH] Unify asset building and use find_program to find NPM (#2522) -`add_custom_target` can also accept multiple commands to be run in -sequence. It isn't clear how quoting applies here, but I've tested it, -and it seems to be behave as expected when spaces are present. --- - cmake/targets/common.cmake | 7 +++++++ - cmake/targets/unix.cmake | 6 ------ - cmake/targets/windows.cmake | 6 ------ - 3 files changed, 7 insertions(+), 12 deletions(-) + cmake/targets/common.cmake | 33 +++++++++++++++++++++------------ + cmake/targets/unix.cmake | 6 ------ + cmake/targets/windows.cmake | 6 ------ + 3 files changed, 21 insertions(+), 24 deletions(-) diff --git a/cmake/targets/common.cmake b/cmake/targets/common.cmake -index ee79528c..04d8e954 100644 +index ee79528c..941ef0b7 100644 --- a/cmake/targets/common.cmake +++ b/cmake/targets/common.cmake -@@ -15,6 +15,13 @@ else() - set(NPM_BUILD_HOMEBREW "") - endif() +@@ -3,18 +3,6 @@ + add_executable(sunshine ${SUNSHINE_TARGET_FILES}) + +-# Homebrew build fails the vite build if we set these environment variables +-# this block must be before the platform specific code +-if(${SUNSHINE_BUILD_HOMEBREW}) +- set(NPM_SOURCE_ASSETS_DIR "") +- set(NPM_ASSETS_DIR "") +- set(NPM_BUILD_HOMEBREW "true") +-else() +- set(NPM_SOURCE_ASSETS_DIR ${SUNSHINE_SOURCE_ASSETS_DIR}) +- set(NPM_ASSETS_DIR ${CMAKE_BINARY_DIR}) +- set(NPM_BUILD_HOMEBREW "") +-endif() +- + # platform specific target definitions + if(WIN32) + include(${CMAKE_MODULE_PATH}/targets/windows.cmake) +@@ -49,6 +37,27 @@ endif() + + target_compile_options(sunshine PRIVATE $<$<COMPILE_LANGUAGE:CXX>:${SUNSHINE_COMPILE_OPTIONS}>;$<$<COMPILE_LANGUAGE:CUDA>:${SUNSHINE_COMPILE_OPTIONS_CUDA};-std=c++17>) # cmake-lint: disable=C0301 + ++# Homebrew build fails the vite build if we set these environment variables ++if(${SUNSHINE_BUILD_HOMEBREW}) ++ set(NPM_SOURCE_ASSETS_DIR "") ++ set(NPM_ASSETS_DIR "") ++ set(NPM_BUILD_HOMEBREW "true") ++else() ++ set(NPM_SOURCE_ASSETS_DIR ${SUNSHINE_SOURCE_ASSETS_DIR}) ++ set(NPM_ASSETS_DIR ${CMAKE_BINARY_DIR}) ++ set(NPM_BUILD_HOMEBREW "") ++endif() ++ +#WebUI build ++find_program(NPM npm REQUIRED) +add_custom_target(web-ui ALL + WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" + COMMENT "Installing NPM Dependencies and Building the Web UI" -+ COMMAND npm install -+ COMMAND "${CMAKE_COMMAND}" -E env "SUNSHINE_BUILD_HOMEBREW=${NPM_BUILD_HOMEBREW}" "SUNSHINE_SOURCE_ASSETS_DIR=${NPM_SOURCE_ASSETS_DIR}" "SUNSHINE_ASSETS_DIR=${NPM_ASSETS_DIR}" npm run build) # cmake-lint: disable=C0301 ++ COMMAND "$<$<BOOL:${WIN32}>:cmd;/C>" "${NPM}" install ++ COMMAND "${CMAKE_COMMAND}" -E env "SUNSHINE_BUILD_HOMEBREW=${NPM_BUILD_HOMEBREW}" "SUNSHINE_SOURCE_ASSETS_DIR=${NPM_SOURCE_ASSETS_DIR}" "SUNSHINE_ASSETS_DIR=${NPM_ASSETS_DIR}" "$<$<BOOL:${WIN32}>:cmd;/C>" "${NPM}" run build # cmake-lint: disable=C0301 ++ COMMAND_EXPAND_LISTS ++ VERBATIM) + - # platform specific target definitions - if(WIN32) - include(${CMAKE_MODULE_PATH}/targets/windows.cmake) + # tests + if(BUILD_TESTS) + add_subdirectory(tests) diff --git a/cmake/targets/unix.cmake b/cmake/targets/unix.cmake index 5527a987..047a0b3d 100644 --- a/cmake/targets/unix.cmake @@ -61,40 +90,3 @@ index e429feaa..341d7c2e 100644 -- 2.44.0 - -From f7f93c787bc7c6e82296f0b28c1684ba93cb0956 Mon Sep 17 00:00:00 2001 -From: James Le Cuirot <chewi@gentoo.org> -Date: Sun, 5 May 2024 23:30:36 +0100 -Subject: [PATCH 2/2] build: Use find_program to find NPM so it can be - overridden - -This is useful for Gentoo, which needs to be able to do entirely offline -builds, because it can override this with `true` while shipping -pre-compiled assets. Gentoo has tried to ship cached NPM modules -instead, but it turns out these are very sensitive to the NPM version. ---- - cmake/targets/common.cmake | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/cmake/targets/common.cmake b/cmake/targets/common.cmake -index 04d8e954..5c489551 100644 ---- a/cmake/targets/common.cmake -+++ b/cmake/targets/common.cmake -@@ -16,11 +16,12 @@ else() - endif() - - #WebUI build -+find_program(NPM npm REQUIRED) - add_custom_target(web-ui ALL - WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}" - COMMENT "Installing NPM Dependencies and Building the Web UI" -- COMMAND npm install -- COMMAND "${CMAKE_COMMAND}" -E env "SUNSHINE_BUILD_HOMEBREW=${NPM_BUILD_HOMEBREW}" "SUNSHINE_SOURCE_ASSETS_DIR=${NPM_SOURCE_ASSETS_DIR}" "SUNSHINE_ASSETS_DIR=${NPM_ASSETS_DIR}" npm run build) # cmake-lint: disable=C0301 -+ COMMAND "${NPM}" install -+ COMMAND "${CMAKE_COMMAND}" -E env "SUNSHINE_BUILD_HOMEBREW=${NPM_BUILD_HOMEBREW}" "SUNSHINE_SOURCE_ASSETS_DIR=${NPM_SOURCE_ASSETS_DIR}" "SUNSHINE_ASSETS_DIR=${NPM_ASSETS_DIR}" "${NPM}" run build) # cmake-lint: disable=C0301 - - # platform specific target definitions - if(WIN32) --- -2.44.0 - |