wivrn: add clientLibOnly argument
This commit is contained in:
@@ -50,6 +50,9 @@
|
||||
vulkan-loader,
|
||||
x264,
|
||||
xrizer,
|
||||
# Only build the OpenXR client library. Useful for building the client library for a different architecture,
|
||||
# e.g. 32-bit library while running 64-bit service on host, so 32-bit apps can connect to the runtime
|
||||
clientLibOnly ? false,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "wivrn";
|
||||
@@ -98,6 +101,8 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
librsvg
|
||||
pkg-config
|
||||
python3
|
||||
]
|
||||
++ lib.optionals (!clientLibOnly) [
|
||||
qt6.wrapQtAppsHook
|
||||
]
|
||||
++ lib.optionals cudaSupport [
|
||||
@@ -105,14 +110,25 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
avahi
|
||||
boost
|
||||
cli11
|
||||
eigen
|
||||
ffmpeg
|
||||
freetype
|
||||
glm
|
||||
harfbuzz
|
||||
libGL
|
||||
libX11
|
||||
libXrandr
|
||||
openxr-loader
|
||||
shaderc
|
||||
systemd
|
||||
udev
|
||||
vulkan-headers
|
||||
vulkan-loader
|
||||
]
|
||||
++ lib.optionals (!clientLibOnly) [
|
||||
avahi
|
||||
boost
|
||||
cli11
|
||||
ffmpeg
|
||||
kdePackages.kcoreaddons
|
||||
kdePackages.ki18n
|
||||
kdePackages.kiconthemes
|
||||
@@ -121,32 +137,34 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
kdePackages.qqc2-desktop-style
|
||||
libarchive
|
||||
libdrm
|
||||
libGL
|
||||
libnotify
|
||||
libpulseaudio
|
||||
librsvg
|
||||
libva
|
||||
libX11
|
||||
libXrandr
|
||||
nlohmann_json
|
||||
openxr-loader
|
||||
pipewire
|
||||
qt6.qtbase
|
||||
qt6.qtsvg
|
||||
qt6.qttools
|
||||
shaderc
|
||||
spdlog
|
||||
systemd
|
||||
udev
|
||||
vulkan-headers
|
||||
vulkan-loader
|
||||
x264
|
||||
]
|
||||
++ lib.optionals cudaSupport [
|
||||
++ lib.optionals (cudaSupport && !clientLibOnly) [
|
||||
cudaPackages.cudatoolkit
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "WIVRN_BUILD_CLIENT" false)
|
||||
(lib.cmakeBool "WIVRN_BUILD_DASHBOARD" (!clientLibOnly))
|
||||
(lib.cmakeBool "WIVRN_BUILD_SERVER" (!clientLibOnly))
|
||||
(lib.cmakeBool "WIVRN_BUILD_SERVER_LIBRARY" true)
|
||||
(lib.cmakeBool "WIVRN_BUILD_WIVRNCTL" (!clientLibOnly))
|
||||
(lib.cmakeBool "FETCHCONTENT_FULLY_DISCONNECTED" true)
|
||||
(lib.cmakeFeature "WIVRN_OPENXR_MANIFEST_TYPE" "absolute")
|
||||
(lib.cmakeBool "WIVRN_OPENXR_MANIFEST_ABI" clientLibOnly)
|
||||
(lib.cmakeFeature "GIT_DESC" "v${finalAttrs.version}")
|
||||
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_MONADO" "${finalAttrs.monado}")
|
||||
]
|
||||
++ lib.optionals (!clientLibOnly) [
|
||||
(lib.cmakeBool "WIVRN_USE_NVENC" cudaSupport)
|
||||
(lib.cmakeBool "WIVRN_USE_VAAPI" true)
|
||||
(lib.cmakeBool "WIVRN_USE_VULKAN_ENCODE" true)
|
||||
@@ -154,26 +172,20 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
(lib.cmakeBool "WIVRN_USE_PIPEWIRE" true)
|
||||
(lib.cmakeBool "WIVRN_USE_PULSEAUDIO" true)
|
||||
(lib.cmakeBool "WIVRN_FEATURE_STEAMVR_LIGHTHOUSE" true)
|
||||
(lib.cmakeBool "WIVRN_BUILD_CLIENT" false)
|
||||
(lib.cmakeBool "WIVRN_BUILD_DASHBOARD" true)
|
||||
(lib.cmakeBool "FETCHCONTENT_FULLY_DISCONNECTED" true)
|
||||
(lib.cmakeFeature "WIVRN_OPENXR_MANIFEST_TYPE" "absolute")
|
||||
(lib.cmakeFeature "OVR_COMPAT_SEARCH_PATH" ovrCompatSearchPaths)
|
||||
(lib.cmakeFeature "GIT_DESC" "v${finalAttrs.version}")
|
||||
(lib.cmakeFeature "FETCHCONTENT_SOURCE_DIR_MONADO" "${finalAttrs.monado}")
|
||||
]
|
||||
++ lib.optionals cudaSupport [
|
||||
++ lib.optionals (cudaSupport && !clientLibOnly) [
|
||||
(lib.cmakeFeature "CUDA_TOOLKIT_ROOT_DIR" "${cudaPackages.cudatoolkit}")
|
||||
];
|
||||
|
||||
dontWrapQtApps = true;
|
||||
|
||||
preFixup = ''
|
||||
preFixup = lib.optional (!clientLibOnly) ''
|
||||
wrapQtApp "$out/bin/wivrn-dashboard" \
|
||||
--prefix LD_LIBRARY_PATH : ${lib.makeLibraryPath [ vulkan-loader ]}
|
||||
'';
|
||||
|
||||
desktopItems = [
|
||||
desktopItems = lib.optionals (!clientLibOnly) [
|
||||
(makeDesktopItem {
|
||||
name = "WiVRn Server";
|
||||
desktopName = "WiVRn Server";
|
||||
|
||||
Reference in New Issue
Block a user