package created using the webbuild interface [release 2.5.1-1mamba;Mon May 06 2024]
This commit is contained in:
parent
2345e0ffbd
commit
30f4a11cf7
110
openvr-2.5.1-pr-use-system-jsoncpp.patch
Normal file
110
openvr-2.5.1-pr-use-system-jsoncpp.patch
Normal file
@ -0,0 +1,110 @@
|
||||
From 54a58e479f4d63e62e9118637cd92a2013a4fb95 Mon Sep 17 00:00:00 2001
|
||||
From: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
||||
Date: Thu, 15 Aug 2019 16:07:01 +0200
|
||||
Subject: [PATCH 1/2] cmake: Add option to build with system jsoncpp.
|
||||
|
||||
This patch adds the CMake build option `USE_SYSTEM_JSONCPP`,
|
||||
which instead of using the internal `jsoncpp.cpp` links against
|
||||
the system installed jsoncpp library.
|
||||
|
||||
This results in a `libopenvr_api.so` that is only 115K instead of 301K
|
||||
on my system.
|
||||
|
||||
Distributions like Debian will prefer this behaviour, since it will give
|
||||
them the possibility to maintain version and security issues for jsoncpp
|
||||
in one place.
|
||||
|
||||
This behaviour can be enabled by
|
||||
|
||||
```
|
||||
cmake -DUSE_SYSTEM_JSONCPP=True .
|
||||
```
|
||||
|
||||
When the flag is not set, the build will behave like it did before.
|
||||
|
||||
I tested this patch using the system wide jsoncpp successfully
|
||||
with xrdesktop.
|
||||
---
|
||||
CMakeLists.txt | 1 +
|
||||
src/CMakeLists.txt | 12 +++++++++++-
|
||||
2 files changed, 12 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 8956cdad..1150c53d 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -28,6 +28,7 @@ option(BUILD_UNIVERSAL "Builds the shared or framework as a universal (fat, 32-
|
||||
option(BUILD_OSX_I386 "Builds the shared or framework as a 32-bit binary, even on a 64-bit platform" OFF)
|
||||
option(USE_LIBCXX "Uses libc++ instead of libstdc++" ON)
|
||||
option(USE_CUSTOM_LIBCXX "Uses a custom libc++" OFF)
|
||||
+option(USE_SYSTEM_JSONCPP "Uses the system installed jsoncpp." OFF)
|
||||
|
||||
add_definitions( -DVR_API_PUBLIC )
|
||||
|
||||
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
|
||||
index b83710af..a7b64db9 100644
|
||||
--- a/src/CMakeLists.txt
|
||||
+++ b/src/CMakeLists.txt
|
||||
@@ -34,8 +34,14 @@ endif()
|
||||
# Set the source group and files.
|
||||
set(CORE_FILES
|
||||
openvr_api_public.cpp
|
||||
- jsoncpp.cpp
|
||||
)
|
||||
+
|
||||
+if(NOT USE_SYSTEM_JSONCPP)
|
||||
+ set(JSON_CPP_DIR ${CMAKE_CURRENT_SOURCE_DIR}/../thirdparty/jsoncpp)
|
||||
+ include_directories(${JSON_CPP_DIR})
|
||||
+ list(APPEND CORE_FILES ${JSON_CPP_DIR}/jsoncpp.cpp)
|
||||
+endif()
|
||||
+
|
||||
set(VRCORE_FILES
|
||||
vrcore/dirtools_public.cpp
|
||||
vrcore/envvartools_public.cpp
|
||||
@@ -100,6 +106,10 @@ if(USE_CUSTOM_LIBCXX)
|
||||
set(EXTRA_LIBS ${EXTRA_LIBS} c++ c++abi)
|
||||
endif()
|
||||
|
||||
+if(USE_SYSTEM_JSONCPP)
|
||||
+ list(APPEND EXTRA_LIBS jsoncpp)
|
||||
+endif()
|
||||
+
|
||||
target_link_libraries(${LIBNAME} ${EXTRA_LIBS} ${CMAKE_DL_LIBS})
|
||||
target_include_directories(${LIBNAME} PUBLIC ${OPENVR_HEADER_DIR})
|
||||
|
||||
|
||||
From a7a6995d1d6f9ee1a17a3741661156f9706c40ce Mon Sep 17 00:00:00 2001
|
||||
From: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
|
||||
Date: Thu, 15 Aug 2019 15:05:34 +0200
|
||||
Subject: [PATCH 2/2] thirdparty: Move jsoncpp to thridparty directory.
|
||||
|
||||
Even though the previous patch in this patch set enabled the build with
|
||||
a system wide jsoncpp and worked for me, it still left the internal
|
||||
jsoncpp includes in the include path, since the includes were placed
|
||||
in `CMAKE_CURRENT_SOURCE_DIR`. This could cause problems on other systems
|
||||
when trying to build with a system wide jsoncpp.
|
||||
|
||||
In order to remove the internal json.h from the include path,
|
||||
I moved all jsoncpp files into a thridparty directory amd include
|
||||
it in the case of `USE_SYSTEM_JSONCPP` not being set.
|
||||
---
|
||||
{src => thirdparty/jsoncpp}/json/json-forwards.h | 0
|
||||
{src => thirdparty/jsoncpp}/json/json.h | 0
|
||||
{src => thirdparty/jsoncpp}/jsoncpp.cpp | 0
|
||||
3 files changed, 0 insertions(+), 0 deletions(-)
|
||||
rename {src => thirdparty/jsoncpp}/json/json-forwards.h (100%)
|
||||
rename {src => thirdparty/jsoncpp}/json/json.h (100%)
|
||||
rename {src => thirdparty/jsoncpp}/jsoncpp.cpp (100%)
|
||||
|
||||
diff --git a/src/json/json-forwards.h b/thirdparty/jsoncpp/json/json-forwards.h
|
||||
similarity index 100%
|
||||
rename from src/json/json-forwards.h
|
||||
rename to thirdparty/jsoncpp/json/json-forwards.h
|
||||
diff --git a/src/json/json.h b/thirdparty/jsoncpp/json/json.h
|
||||
similarity index 100%
|
||||
rename from src/json/json.h
|
||||
rename to thirdparty/jsoncpp/json/json.h
|
||||
diff --git a/src/jsoncpp.cpp b/thirdparty/jsoncpp/jsoncpp.cpp
|
||||
similarity index 100%
|
||||
rename from src/jsoncpp.cpp
|
||||
rename to thirdparty/jsoncpp/jsoncpp.cpp
|
23
openvr-2.5.1-pr-use_correct_definition_of_vsprintf_s.patch
Normal file
23
openvr-2.5.1-pr-use_correct_definition_of_vsprintf_s.patch
Normal file
@ -0,0 +1,23 @@
|
||||
From 0fa21ba17748efcca1816536e27bdca70141b074 Mon Sep 17 00:00:00 2001
|
||||
From: Christoph Haag <haagch@frickel.club>
|
||||
Date: Tue, 25 Jul 2017 02:07:09 +0200
|
||||
Subject: [PATCH] Use correct definition for vsprintf_s
|
||||
|
||||
defining it to sprintf actually segfaults in a release build.
|
||||
---
|
||||
samples/shared/compat.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/samples/shared/compat.h b/samples/shared/compat.h
|
||||
index 154f8b07..28002d99 100644
|
||||
--- a/samples/shared/compat.h
|
||||
+++ b/samples/shared/compat.h
|
||||
@@ -12,7 +12,7 @@
|
||||
#include <unistd.h>
|
||||
|
||||
#define sprintf_s snprintf
|
||||
-#define vsprintf_s sprintf
|
||||
+#define vsprintf_s vsprintf
|
||||
#define _stricmp strcmp
|
||||
#define stricmp strcmp
|
||||
#define strnicmp strncasecmp
|
84
openvr.spec
Normal file
84
openvr.spec
Normal file
@ -0,0 +1,84 @@
|
||||
Name: openvr
|
||||
Version: 2.5.1
|
||||
Release: 1mamba
|
||||
Summary: Open VR hardware access library
|
||||
Group: System/Libraries
|
||||
Vendor: openmamba
|
||||
Distribution: openmamba
|
||||
Packager: Silvan Calarco <silvan.calarco@mambasoft.it>
|
||||
URL: https://www.steamvr.com/en/
|
||||
Source: https://github.com/ValveSoftware/openvr.git/v%{version}/openvr-%{version}.tar.bz2
|
||||
Patch0: openvr-2.5.1-pr-use-system-jsoncpp.patch
|
||||
Patch1: openvr-2.5.1-pr-use_correct_definition_of_vsprintf_s.patch
|
||||
License: BSD
|
||||
## AUTOBUILDREQ-BEGIN
|
||||
BuildRequires: glibc-devel
|
||||
BuildRequires: libgcc
|
||||
BuildRequires: libstdc++6-devel
|
||||
## AUTOBUILDREQ-END
|
||||
BuildRequires: cmake
|
||||
Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release}
|
||||
|
||||
%description
|
||||
Open VR hardware access library.
|
||||
|
||||
%package -n lib%{name}
|
||||
Group: System/Libraries
|
||||
Summary: Open VR hardware access library
|
||||
|
||||
%description -n lib%{name}
|
||||
Open Virtual Reality library.
|
||||
This package contains shared libraries for %{name}.
|
||||
|
||||
%package -n lib%{name}-devel
|
||||
Group: Development/Libraries
|
||||
Summary: Development files for %{name}
|
||||
Requires: lib%{name} = %{?epoch:%epoch:}%{version}-%{release}
|
||||
|
||||
%description -n lib%{name}-devel
|
||||
This package contains libraries and header files for developing applications that use %{name}.
|
||||
|
||||
%debug_package
|
||||
|
||||
%prep
|
||||
%setup -q
|
||||
%patch 0 -p1 -b .pr-use-system-jsoncpp
|
||||
%patch 1 -p1 -b .pr-use_correct_definition_of_vsprintf_s
|
||||
|
||||
sed -i "s|DESTINATION lib)|DESTINATION %{_lib})|" src/CMakeLists.txt
|
||||
|
||||
%build
|
||||
%cmake \
|
||||
-DBUILD_SHARED=1
|
||||
|
||||
# FIXME:
|
||||
# -DUSE_SYSTEM_JSONCPP=True
|
||||
|
||||
%cmake_build
|
||||
|
||||
%install
|
||||
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
||||
%cmake_install
|
||||
|
||||
%clean
|
||||
[ "%{buildroot}" != / ] && rm -rf "%{buildroot}"
|
||||
|
||||
%post -n lib%{name} -p /sbin/ldconfig
|
||||
%postun -n lib%{name} -p /sbin/ldconfig
|
||||
|
||||
%files -n lib%{name}
|
||||
%defattr(-,root,root)
|
||||
%{_libdir}/libopenvr_api.so
|
||||
%doc LICENSE
|
||||
|
||||
%files -n lib%{name}-devel
|
||||
%defattr(-,root,root)
|
||||
%dir %{_includedir}/openvr
|
||||
%{_includedir}/openvr/*
|
||||
%{_datadir}/pkgconfig/openvr.pc
|
||||
%doc README.md
|
||||
|
||||
|
||||
%changelog
|
||||
* Mon May 06 2024 Silvan Calarco <silvan.calarco@mambasoft.it> 2.5.1-1mamba
|
||||
- package created using the webbuild interface
|
Loading…
Reference in New Issue
Block a user