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