Commit graph

276 commits

Author SHA1 Message Date
Ryan Pavlik add6ed34b6 fixup slam 2022-05-04 11:37:49 -05:00
Ryan Pavlik 3287c984aa cmake: Reorganize options, renaming some.
Rename XRT_HAVE_SLAM to XRT_FEATURE_SLAM,
moving it from xrt_config_have.h to xrt_config_build.h
accordingly.
2022-05-04 11:24:02 -05:00
Ryan Pavlik 097eeb4f29 cmake: Switch to a new way of setting options more in line with expectations.
If you explicitly request an option, and it's not available due to dependencies,
we now error out instead of silently changing the value.
2022-05-04 11:24:02 -05:00
Ryan Pavlik 1abf73dfbe cmake: Remove debug print, allow renderdoc on Windows. 2022-05-03 22:45:10 +01:00
Ryan Pavlik b487b4d753 cmake: Skip find modules on Windows that don't make sense.
CMake is really slow on Windows...
2022-04-21 17:19:22 -05:00
Ryan Pavlik eec020cc96 cmake: Adjust default manifest options on Windows 2022-04-21 17:17:16 -05:00
Ryan Pavlik aa4f43b049 cmake: Improve manifest installation, allowing relative paths to be generated. 2022-04-20 11:47:04 -05:00
Jakob Bornecrantz b4f2bc88c8 cmake: Introduce XRT_HAVE_HIDAPI to make HIDAPI controllable 2022-03-28 22:35:01 +00:00
Christoph Haag c162ff655b st/oxr: add renderdoc API to xrBeginFrame/xrEndFrame
Usually renderdoc captures frames by hooking the present functions to
recognize when an application is finished rendering a frame.

OpenXR applications might not present to a window. Therefore use the
renderdoc API to capture application frames between xrBeginFrame and
and xrEndFrame.

This allows renderdoc to capture application frames without the need
to modify the application.
2022-02-18 13:44:15 +01:00
Ryan Pavlik 09603144f9 cmake: Don't build the WMR driver on Windows.
Ironically, it needs a Linux-only byte order header in its current
incarnation.
2022-01-21 20:26:48 +00:00
Mateo de Mayo 6070da19be cmake: Fix realsense build macro not being exported 2021-12-08 12:29:59 -03:00
Jakob Bornecrantz 3e38ada9a5 build: s/rs/realsense/g 2021-12-07 11:26:20 +00:00
Jakob Bornecrantz 849f401a6a cmake: Add XRT_HAVE_REALSENSE to control RealSense usage 2021-12-07 11:26:20 +00:00
Jakob Bornecrantz 986cde6750 cmake: Build the IPC irrespectively of the service or not 2021-11-24 21:30:01 +00:00
Ryan Pavlik cc4007a69e cmake: Substantial cleanups and simplifications
We now have a cmake-format config file.
We no longer use list variables for sources, instead using
target_sources when we need to add, in accordance with current
best practice. (This makes it a lot easier to edit too.) There's no more
include_directories(), add_definitions(), or other gently-deprecated
directory-scoped commands, nor any CMake scripts that include
a parent directory reference (named targets instead)
2021-11-12 09:48:37 -06:00
Ryan Pavlik 3bd0a07aa2 cmake: Split out finding GLX from the rest of OpenGL on Linux.
Fixes #132.
2021-11-04 15:36:58 +00:00
Ryan Pavlik ebde5344a1 cmake: Make compilation of the sample driver optional. 2021-11-03 17:04:05 -05:00
Ryan Pavlik babda5311a cmake: Fix outdated comment 2021-11-03 17:00:28 -05:00
Ryan Pavlik 86a708cee5 cmake: Allow overriding package version 2021-10-28 11:35:47 +00:00
Ryan Pavlik 72995a8298 build: Fix config message spacing 2021-10-19 15:27:01 -05:00
Mateo de Mayo ab2da01631 build: Add Basalt as an external SLAM system 2021-10-16 17:02:27 -03:00
Mateo de Mayo 7f247604e3 build: Use pkg-config for finding SLAM systems in CMake and other minor improvements 2021-10-07 14:33:10 -03:00
Moses Turner 1ee4e0c304 cmake: always export compile commands 2021-10-01 10:25:13 +00:00
Jakob Bornecrantz 5e66533751 cmake: Move XRT_HAVE_PERCETTO to before it's first use 2021-09-29 21:38:33 +00:00
Ryan Pavlik 995866a576 cmake: Improve use of percetto 2021-09-27 09:26:15 -05:00
Ryan Pavlik 7dc61f8d51 cmake: Move where we search for pkgconfig 2021-09-27 09:26:14 -05:00
Ryan Pavlik 524d6f73c3 cmake: Explicitly specify whether we expect a module or a config. 2021-09-27 09:25:15 -05:00
Ryan Pavlik 0fec29687a cmake: Switch to a new FindPercetto module. 2021-09-27 09:23:09 -05:00
Jakob Bornecrantz 4c58d377c1 cmake: Use . instead of comma for version 2021-09-17 11:54:57 +00:00
Christoph Haag 616c04458c build/cmake: Don't build slam if OpenCV is disabled
Fixes build with -DXRT_HAVE_OPENCV=OFF
2021-09-16 23:33:05 +02:00
Mateo de Mayo 8e8a9c14a9 external: Add slam_tracker.hpp and SLAM build flow 2021-09-15 19:03:55 +00:00
Simon Zeni 47be806428 c/main: Implement WINDOW_DIRECT_WAYLAND 2021-09-15 18:44:18 +00:00
Moses Turner 4b5f4b9721 cmake: Add ONNX Runtime as a dependency for the handtracking driver
Co-authored-by: Ryan Pavlik <ryan.pavlik@collabora.com>

cmake-rebase
2021-09-03 21:06:18 +00:00
Mateo de Mayo 97c59bd59f d/euroc: Add EuRoC dataset reader driver.
A squash of the following commits.

d/euroc: Add Euroc driver initial boilerplate

d/euroc: Implement xrt_frame_node interface

d/euroc: Implement mainloop thread start flow

d/euroc: Parse samples from data.csv files

d/euroc: Determine dataset information at start

Also use that information to provide a xrt_fs mode and to know if
right camera images are available to use.

d/euroc: Produce frames for left and right sinks

d/euroc: Implement xrt_imu_sink

d/euroc: Implement playback properties

d/euroc: Implement pausing with UI state machine

d/euroc: Show IMU and progress data in UI

d/euroc: Make sure to give in nullptr or valid pointers to wrapL8

d/euroc: Unreference frames when done with them

d/euroc: Fix leaks with debug sinks, and work around free issue

d/euroc: Refactor playback to produce samples with current timestamps

d/euroc: Fix double free by separating debug sinks from downstream sinks
2021-08-27 18:38:40 +01:00
Moses Turner 8c9483d193 cmake: Add address sanitizers 2021-08-16 21:18:52 +01:00
Moses Turner 7461c57043 cmake: make ulv2 build a little better 2021-06-23 23:40:43 +01:00
Moses Turner 960e68a976 cmake: option for forcing coloured compiler output 2021-06-23 23:39:16 +01:00
Moses Turner 37cbbb6660 d/dai: Add simple DepthAI driver
Co-authored-by: Jakob Bornecrantz <jakob@collabora.com>
2021-06-10 14:32:07 -05:00
Jakob Bornecrantz b4dac8d6fc cmake: Tidy whitespace and remove last mention of XRT_HAVE_VF (NFC) 2021-05-26 14:08:57 +01:00
Jakob Bornecrantz 64e1dd3127 cmake: Print out if we have GStreamer (NFC) 2021-05-26 13:42:26 +01:00
Jakob Bornecrantz b3455555c2 u/trace_marker: Use Percetto/Perfetto for tracing 2021-05-05 17:00:35 +01:00
Ryan Pavlik e82fafb186 cmake: Allow C++17 mode on all platforms, all modules.
Remove per-module C++17 settings.
2021-04-30 15:37:04 -05:00
Ryan Pavlik 3e127a1fa3 build: Move finding Python earlier, so it builds in Android Studio on Linux. 2021-04-27 16:43:38 -05:00
nima01 027ce21bd5 d/wmr: Initial 3DoF WinMR driver
Only supports HP Reverb G1 and G2 for now.

Squash of the following commits:

Initial boilerplate code for HP Reverb G1 driver implementation
Detect and open MS HoloLens Sensors interface
Power up HMD display when headset is detected, and som general code cleanup
Add Reverb G2 PID
reverb_g1: Fix defines
reverb_g1: Run clang format
wmr: Rename Reverb G1 driver to WMR driver
d/wmr: Code style
d/wmr: Flesh out driver a bit more
d/wmr: Code style
Add basic 3dof rotational tracking
d/wmr: Code style
d/wmr: More tidy
xrt: Remove XRT_DEVICE_REVERB_G1
d/wmr: Even more tidy
d/wmr: Changes for Reverb G2
d/wmr: Fixes since last commit
wmr: Fix the meson build and auto-enable the driver
d/wmr: Sleep for compositor to get modes
d/wmr: Use os_hid for control device
d/wmr: Remove hidapi as a dependancy
d/wmr: Move sensor reading to own thread and fix locking
d/wmr: Read from control device and handle more unknown messages
d/wmr: Decode IPD value from control device
d/wmr: Remove all left over dummy driver fields

Co-author: nima01 <nima_zero_one@protonmail.com>
Co-author: Jakob Bornecrantz <jakob@collabora.com>
Co-author: Jan Schmidt <jan@centricular.com>
2021-04-19 13:33:01 +00:00
Christoph Haag 4ea68b89a4 xrt: Add u_process, backed by libbsd's pidfile
Delete stale ipc files in ipc server when not already running.

If built without libbsd, fall back to previous behavior of complaining about existing ipc files and exit.
2021-04-15 21:42:06 +00:00
Moses Turner 55b86fe815 d/ulv2: Create the driver.
Co-authored-by: Moses Turner <mosesturner@protonmail.com>
Co-authored-by: Christoph Haag <christoph.haag@collabora.com>
2021-04-01 02:10:33 +02:00
Mateo de Mayo 0340ae3cc8 d/qwerty: Add Qwerty driver initial boilerplate
The Qwerty driver will emulate an HMD and controllers through the use
of mouse and keyboard, and in particular, using the SDL key events
generated from the debug GUI.
2021-03-29 15:41:25 -03:00
Christoph Haag 66c1fdaf1f build: Depend XRT_FEATURE_SERVICE on XRT_FEATURE_OPENXR 2021-03-18 19:23:14 +01:00
Christoph Haag 9b5a5ae30d build: XRT_FEATURE_SERVICE requires XRT_FEATURE_OPENXR
Avoid silently building when XRT_FEATURE_SERVICE is enabled, but XRT_FEATURE_OPENXR is not.
2021-03-18 19:19:53 +01:00
Christoph Haag fb0e1ab0ce build/cmake: Print if systemd is found 2021-03-10 01:58:41 +01:00
Jakob Bornecrantz 3077660f1d u/tracing: Add trace marker code 2021-03-08 11:20:52 +00:00
Jakob Bornecrantz d52c120c13 cmake: Output XRT_FEATURE_COLOR_LOG status 2021-02-24 01:23:55 +00:00
Christoph Haag 2fcce7380f build/cmake: Don't use PythonInterp on old cmake
It literally does not work to find python 3.

https://cmake.org/cmake/help/latest/module/FindPythonInterp.html

> Note
> A call to find_package(PythonInterp ${V}) for python version V may find a python executable
> with no version suffix. In this case no attempt is made to avoid python executables from other
> versions. Use FindPython3, FindPython2 or FindPython instead.

Fixes build on Ubuntu 18.04
2021-02-03 00:19:15 +01:00
Jakob Bornecrantz 35da4a51ea d/vf: Refactor code to add videotestsrc capability and break out gstreamer detection 2021-02-02 13:53:48 +00:00
Jakob Bornecrantz 8c6075e3b6 monado: Update version 2021-01-28 16:02:50 +00:00
Jakob Bornecrantz 1c1a93df58 cmake: Tidy 2021-01-27 16:09:07 +00:00
Christoph Haag 9481013081 comp: add VkDisplayKHR window backend
Must be activated/selected with an env var for now: XRT_COMPOSITOR_FORCE_VK_DISPLAY=2
2021-01-19 17:00:46 +00:00
Lubosz Sarnecki 0e4e4efe79 cmake: Turn on XRT_FEATURE_OPENXR_LAYER_EQUIRECT1 by default. 2021-01-14 13:54:19 +01:00
Christoph Haag 345e9eab56 build/cmake: Enable survive driver when libsurvive is installed
The same change was recently done in meson in 8c4b6cef

closes #111
2021-01-05 22:56:00 +01:00
Jae Lee a71de192e0 illixr: Add initial integration. 2020-12-29 23:44:57 +00:00
Lubosz Sarnecki 8bdff9a61a u/logging: Implement optional color logging.
Check if stderr is a tty.
2020-12-28 13:04:11 +00:00
Lubosz Sarnecki c8bdfae83e src: Consistently append 1 to equirect1 code.
Rename XRT_FEATURE_OPENXR_LAYER_EQUIRECT_LEGACY to XRT_FEATURE_OPENXR_LAYER_EQUIRECT1.
Use correct define in verify_equirect1_layer function.
Rename equirect to equirect1.
meson: enable equirect1 by default.
2020-12-14 18:59:28 +00:00
Lubosz Sarnecki f334b8b6c7 src: Consistently append 2 to equirect2 code.
Rename XRT_FEATURE_OPENXR_LAYER_EQUIRECT to XRT_FEATURE_OPENXR_LAYER_EQUIRECT2.
Rename equirect to equirect2.
Rename shader files.
2020-12-14 18:59:28 +00:00
Jakob Bornecrantz 1e995dbbe3 cmake: Turn error into warning 2020-12-09 21:03:50 +00:00
Jakob Bornecrantz 23f8991fb8 cmake: Make sure we have XRANDR if we have XLIB 2020-12-09 19:15:16 +00:00
Christoph Haag f0d21c1dcc d/vf: Add video file playback driver 2020-12-07 12:30:26 +00:00
Christoph Haag 717d3a27ef d/ht: Add hand tracking driver code skeleton 2020-12-07 12:30:26 +00:00
Ryan Pavlik a6bedb9bb8 cmake: Handle SDL2 static builds 2020-12-06 23:07:05 +00:00
Ryan Pavlik 0cb64ce5bd comp/main: Windows work - got a window to appear! 2020-12-06 23:07:05 +00:00
Ryan Pavlik db3e368249 cmake: Do not build SteamVR plugin on Android. 2020-11-10 18:44:03 +00:00
Ryan Pavlik 0fa4b58acd build: Disable IPC on Windows. 2020-11-10 03:09:07 +00:00
Ryan Pavlik 8f838c7dbd cmake: Disable remote driver on things other than Linux and Android for now. 2020-11-10 03:09:07 +00:00
Christoph Haag cb62514fd0 steamvr: Implement basic SteamVR driver
v3:
  targets: Add Monado-SteamVR driver target
  st/ovrd: Add OpenVR driver header
  build: Factor out sdl hack into lib_sdl2_hack and update steamvr build
  build: Revert lib_sdl2_refactor
  steamvr: Emulate Index Controller by default
  steamvr: Use oxr_handle_destroy instead of exposing oxr_instance_destroy
  steamvr: don't use oxr internals
  steamvr: communicate 3dof tracking to steamvr
  steamvr: use util functions for device assignment and tracking origin setup
  steamvr: Install plugin to <prefix>/share/steamvr-monado
  steamvr: Use thread for updating poses every 1ms

Makes a big difference for the Index @144Hz on the vive driver.
Still somewhat choppy on survive driver - prediction should solve it.

Main-author: Christoph Haag <christoph.haag@collabora.com>
Co-author: Jakob Bornecrantz <jakob@collabora.com>
2020-11-09 19:21:27 +00:00
Jakob Bornecrantz 151a03fb48 monado: Update version 2020-11-04 13:40:50 +00:00
Jakob Bornecrantz 3dfa7167b2 monado: Update version 2020-11-02 20:24:48 +00:00
Jakob Bornecrantz d9e90863d3 cmake: Make sure we are looking for Python 3.8 and 3.9 2020-11-02 16:35:43 +00:00
Lubosz Sarnecki f4113ef15b d/android: Add Android sensors driver. 2020-10-30 18:20:35 -05:00
Ryan Pavlik a0bbca572d comp: Basic Android compositor window.
Also makes the service feature not depend on other options:
it can be used without those other parts.

comp/window_android: Remove unused EGL code for now, as it is crashing.

comp/window_android: Use MonadoView async method to create surface.

comp/window_android: Use custom surface as intended

Co-authored-by: Lubosz Sarnecki <lubosz.sarnecki@collabora.com>
2020-10-28 09:41:30 -05:00
Ryan Pavlik 0f43bbe924 inc/xrt: Add Android config header to store package name. 2020-10-28 09:32:49 -05:00
Ryan Pavlik 69b35f9857 build: Actually search for Python 3 interpreter before using it. 2020-10-28 09:32:49 -05:00
Ryan Pavlik 59d2285c8e aux/util: Port logging for Android.
Now if u_logging is used, it goes to logcat.
2020-10-28 09:32:49 -05:00
Jakob Bornecrantz cc10a9368d cmake: Enable equirect2 2020-10-26 01:34:10 +00:00
Jakob Bornecrantz 2528583c55 xrt: Add git tag/description 2020-10-20 17:43:11 +01:00
Jakob Bornecrantz 3483a7286d d/remote: Add remote driver 2020-10-15 21:07:40 +00:00
Ryan Pavlik 8b416da12b xrt: Add Win32 Vulkan platform define when needed 2020-10-08 17:26:22 -05:00
Jakob Bornecrantz 942ba178a0 st/oxr: Add extension support for XR_KHR_composition_layer_equirect2 2020-10-05 16:45:48 +01:00
Ryan Pavlik c0cb04d59a build: Make Vive driver Linux-only for now.
Uses Linux byteorder includes.
2020-09-18 18:25:27 +01:00
Ryan Pavlik 6ad46cb1b2 build: Be able to build against pthreads4w 2020-09-18 18:25:27 +01:00
Ryan Pavlik 4894aaa8db build: Only set the layer type config variables if they aren't already set. 2020-08-26 11:27:10 -05:00
Ryan Pavlik b7e9c9cc67 build: Don't look for packages with pkg-config on Android.
Things like ffmpeg aren't there but were found on the host.
2020-08-26 16:31:30 +01:00
Ryan Pavlik 51d693b66a cmake: Reduce requirement to allow Android build 2020-08-26 16:31:11 +01:00
Christoph Haag 7295cfd2d5 Revert "xrt: Disable cylinder layers for now as the causes GPU hangs (NFC)"
This reverts commit 8c7aed827f.
2020-08-26 16:00:02 +02:00
Jakob Bornecrantz 8c7aed827f xrt: Disable cylinder layers for now as the causes GPU hangs (NFC) 2020-08-26 14:26:46 +01:00
Christoph Haag 316e6f957f build: Enable depth layer in CMake build 2020-08-24 10:30:23 +02:00
Jakob Bornecrantz 6ae15ca5ab build: Enable cylinder layer in CMake build 2020-08-21 12:18:09 +01:00
Jakob Bornecrantz 4a8ac6ebed cmake: Add build flags for OpenXR layers 2020-08-11 01:48:31 +01:00
Ryan Pavlik 663f5467b4 build: More strict build flags 2020-08-05 20:50:00 +00:00
Ryan Pavlik 47a66e1bdf build: Use OpenGLES CMake module to gate OpenGL|ES support 2020-07-17 15:17:42 -05:00
Ryan Pavlik 6f56d91c05 xrt: Add separate build config for OpenGL ES 2020-07-17 15:17:42 -05:00
Ryan Pavlik e2cb7578bc build: Increase strictness of warnings. 2020-07-17 13:53:39 -05:00
Ryan Pavlik 1476d396f8 build: Enable the Android Vulkan platform when applicable. 2020-07-17 11:46:22 -05:00
Ryan Pavlik 9379248268 build: Add FindEigen3.cmake from upstream, to support pointing at the include dir. 2020-07-16 10:04:01 -05:00
Jakob Bornecrantz 0b2faa5ab9 build: Sort drivers in status message 2020-07-16 12:50:36 +01:00
Jakob Bornecrantz 75816ee4e6 build: Dump config vars 2020-07-16 12:01:02 +01:00
Jakob Bornecrantz 47606194da build: Fix dependent option for compositor 2020-07-16 12:00:37 +01:00
Ryan Pavlik 1aa2cdb89a build: Move determination of Vulkan usage to build system.
Vulkan is still required for most actual uses of Monado, but this
makes the coupling weaker.
2020-07-16 10:17:30 +00:00
Ryan Pavlik 44fe0e7709 build: Handle Android NDK better. 2020-07-14 16:37:55 -05:00
Jakob Bornecrantz d1f30e4a5a monado: Update version 2020-07-10 16:43:47 +01:00
Ryan Pavlik 1a5d31b82b st/oxr: New input transform implementation, fixes conformance failures.
Includes unit tests for oxr_input_transform, add to CI

This is a revised implementation using "variants" instead of
"inheritance" in a linked-list.
2020-06-17 10:03:32 +00:00
Ryan Pavlik bbe702475a build: Tell CMake when we expect a config file rather than a find module.
This silences some very large annoying warnings at configure time.
2020-06-09 15:35:45 -05:00
Ryan Pavlik 435f6c5c89 build: Allow enabling inter-procedural optimization in CMake builds, if supported. 2020-06-09 12:03:08 -05:00
Lubosz Sarnecki 435d5a9b9e c/comp: Remove internal Vulkan validation init.
Instead of maintaining this chunk of code and build options, the Vulkan
loader can be used to load up validation. This has the advantage that no
layer name needs to be hard coded inside Monado, which was subject of
change recently.

Instead of using our own environment variable we can easily set the one
from the loader, e.g. `VK_INSTANCE_LAYERS=VK_LAYER_KHRONOS_validation`.
2020-06-03 11:17:51 +00:00
Jakob Bornecrantz 8e6592338f monado: Update version 2020-05-29 11:00:22 +01:00
Ryan Pavlik 4638b0af7b build: Switch all CMake options to XRT_... to match what's used in source.
Also revise other small related parts of the build to make them more clear and consistent.
2020-05-12 11:52:51 -05:00
Ryan Pavlik aa809a99ea build: Small tweak to conditional build flags 2020-05-12 11:46:53 -05:00
Christoph Haag 5908c33439 d/survive: Add survive driver 2020-05-09 13:12:06 +00:00
Ryan Pavlik acbac4f1a6 t/service: Add ability to generate, link, install systemd unit files 2020-05-07 16:54:17 -05:00
Ryan Pavlik 5935fad73b ipc: Add ability for service to be launched by systemd socket activation. 2020-05-07 16:54:11 -05:00
Jakob Bornecrantz 7c8a8a3f87 ipc: Add code to enable a service process
This enables out of process compositing.
2020-04-29 14:58:24 +01:00
Ryan Pavlik 47710e0532 t/openxr: Fix build without OpenGL 2020-04-28 21:36:46 +00:00
Ryan Pavlik 7fab448cf0 build: Support building with system cJSON.
Fixes #62.
2020-04-24 20:34:53 +00:00
Lubosz Sarnecki d752759cd2 cmake: Add pedantic warnings for C++. 2020-04-07 15:00:17 +02:00
Lubosz Sarnecki 4d0c49096d comp/window_direct_mode: Use XCB/Xlib interop.
Since there currently is no Vulkan extension that takes XCB handles to
aqcuire the display Xlib interop needs to be used.

Before this patch Monado was opening connections for both APIs, which
introduced overhead.

Even though all XCB handles can be casted to Xlib ones, this cannot be
done with the main xcb_connection_t / Display. In it's design the
interop between both APIs can create a xcb_connection_t from a XCB
handle, but not the other way round. So in an interop case the Xlib
connection is the main one, since it's on a higher level.
More information on this can be found here:
https://xcb.freedesktop.org/MixingCalls/

Unfortunately the clean solution for this would be to specify a Vulkan
extension that takes XCB handles. This would make sense since Vulkan
is aware of XCB in other parts of the API as well. In Mesa the Xlib
structs will be ultimately casted to XCB.
2020-03-31 17:47:17 +02:00
Jakob Bornecrantz a8a4d8c3dd d/arduino: Add new flexible arduino based input device 2020-03-27 10:22:19 +00:00
Ryan Pavlik 09c189b6ba build: Install more targets 2020-03-23 17:29:43 -05:00
Pete Black b6613db5d4 d/dd: Add Daydream driver 2020-03-11 21:36:49 +00:00
Pete Black 6b4ec70d14 aux/os: Add D-Bus based BLE code 2020-03-11 21:36:49 +00:00
Ryan Pavlik 6b2b9c4ff4 build: Adjust usage of pkgconfig.
The existing thing would find pkg-config when cross-building for 32-bit,
but then immediately complain it wasn't found.
2020-03-03 17:30:45 -06:00
Ryan Pavlik 81d9983398 build: Improve handling of common dependencies, and portability 2020-03-03 10:33:14 +00:00
Ryan Pavlik fdaede836c build: Make it possible to turn off the main compositor lib and runtime target. 2020-03-03 10:33:14 +00:00
Jakob Bornecrantz 0619190d2b build: Refactor how config defines are handled
With loads of changes from Ryan.
2020-03-03 10:33:14 +00:00
Jakob Bornecrantz 09aa8794b2 aux/vk: Refactor out helper code into own library 2020-03-02 11:58:40 +00:00
Jakob Bornecrantz 5a49fa9bc8 cmake: Build minimum version
Ubuntu 18.04 is the only debian based distro currently that doesn't have
cmake 3.13 packaged. And Ubuntu 18.04 is not supported for other reasons.

Closes #50
2020-02-13 09:46:54 +00:00
Jakob Bornecrantz 53201debdc d/rs: Add a simple pure 6DOF device, for the T26[1|5] devices 2020-02-10 20:07:31 +00:00
Nova 981fe55a27 d/ns: Add North Star stub driver 2020-01-25 17:06:51 +00:00
Jakob Bornecrantz 356e4c18c1 d/dummy: Add dummy HMD driver 2020-01-25 14:42:02 +00:00
Ryan Pavlik 130a649f92 build: Move checking of sufficient enabled drivers to the drivers dir 2020-01-14 11:51:12 -06:00
Ryan Pavlik 639b524ec9 build: Adjust looking for OpenGL and EGL 2020-01-14 11:51:12 -06:00
Ryan Pavlik 286e11921c build: Adjust options to be more complete. 2019-12-07 18:25:37 +00:00
Ryan Pavlik 60460c9c5e build: Pass -Wl,--no-undefined when linking 2019-12-07 18:25:37 +00:00
Jakob Bornecrantz 76d6133142 cmake: Fix v4l2 flag not being set 2019-11-10 01:36:46 +00:00
Ryan Pavlik e8660a18bd build: Use CMAKE_POSITION_INDEPENDENT_CODE instead of target props.
Reduces repetitive code.
2019-11-01 16:51:54 -05:00
Christoph Haag dfd6691d71 cmake: Add cmake option for psvr driver
Removes BUILD_WITH_HIDAPI option since only the psvr driver uses hidapi.
2019-10-31 02:12:27 +01:00
Christoph Haag 9f6b5ad841 cmake: Expand enabled drivers sanity check
Makes it possible to build monado with only one native driver enabled.
2019-10-31 01:50:30 +01:00
Christoph Haag a9e6c24eb2 cmake: Add cmake option for hdk, psmv and hydra driver 2019-10-31 01:50:30 +01:00
Christoph Haag 0a39bd8600 cmake: Add cmake option for native vive driver 2019-10-31 01:17:11 +01:00
Lubosz Sarnecki e063e8245e d/vive: Add native driver for the Vive.
This adds a driver for the Vive family of devices based on Philipp
Zabel's ouvrt.
The driver currently only handles the IMU and main board report streams,
but is able to acquire the JSON configuration and utilize it for IMU
calibration as well as distortion configuration.
2019-10-22 19:18:47 +02:00
Jakob Borncrantz 0bc91ab1cd cmake: Make sure to link to pthreads 2019-10-15 21:00:12 +02:00
Lubosz Sarnecki 979536dd4b xrt/comp/cmake: Enable build of Wayland backend.
Add pkgconfig based Wayland build including protocol generation.
2019-10-02 12:22:42 +02:00
Lubosz Sarnecki 871f6bfc87 cmake: Remove unused and deprecated FindWayland.cmake script.
Martin Gräßlin's script from 2013 does not look for the
Wayland protocols directory and the scanner.
2019-10-02 12:22:36 +02:00