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
Jakob Bornecrantz
c295c8e6c9
xrt: Refactor meson and cmake (most) to fix cmake build
2019-09-27 12:19:48 +01:00
Jakob Bornecrantz
d848ea010f
xrt: s/XRT_BUILD_*/XRT_BUILD_DRIVER_*/g
2019-09-27 12:03:36 +01:00
Jakob Bornecrantz
44d58037b7
t/gui: Add SDL2 based GUI target
2019-09-15 18:52:17 +00:00
Jakob Bornecrantz
79402d0081
aux/track: Add stub calibration tracker
2019-08-20 13:07:42 +01:00
Benjamin Saunders
c111f528b8
oxr: Optionally install as the default runtime
2019-08-19 12:09:49 -05:00
Ryan Pavlik
853f8ab68e
d/hdk: Port to internal HID wrapper.
...
Not entirely feature-complete due to lack of access to descriptor strings.
2019-08-15 12:36:01 +00:00
Ryan Pavlik
2cd28914c7
d/hydra: Initially-functional multi-device Razer Hydra driver.
...
Not pretty - no filtering on tracking, coordinate system
probably a little bit wrong still, no hemisphere tracking,
but enough to show movement and resizing in hello_xr.
2019-07-29 03:01:57 +00:00
Jakob Bornecrantz
718a81608a
d/v4l2: Add new frameserver
2019-07-23 17:41:34 +01:00
Ryan Pavlik
1f0b43632c
build: Adjust OpenCV components add JPEG and use libusb cmake file
2019-06-28 17:38:32 +01:00
Ryan Pavlik
0d75b465bd
build: Move enabled-driver defines to a header, instead of compiler options for every target.
2019-06-26 10:52:27 -05:00
Jakob Bornecrantz
ec69936890
build: Revert "Only show the XRT_BUILD_ defines where they're needed."
...
This reverts commit 334d62dfcd
.
2019-06-26 16:17:06 +01:00
Ryan Pavlik
334d62dfcd
build: Only show the XRT_BUILD_ defines where they're needed.
2019-06-21 13:17:55 -05:00
Benjamin Saunders
e5325d5a66
oxr: Use absolute path to runtime in manifest by default
2019-06-19 08:15:08 -07:00
Ryan Pavlik
c5fea837f3
oxr: Allow relative vs absolute manifest path to be selected at configure time.
2019-06-19 08:15:08 -07:00
Jakob Bornecrantz
b71e143eaa
d/psmv: Add PS Move driver
2019-06-18 17:56:10 +01:00
Jakob Bornecrantz
42cddb2580
d/psvr: Add a experimental PSVR driver
...
Hidden behind a env variable.
2019-05-06 16:46:10 +00:00
Jakob Bornecrantz
ade0594914
build: Add libudev on Linux
2019-05-02 14:08:11 +01:00
Jakob Bornecrantz
9c05e853cc
build: Refactor flags and definitions (and fix fallout)
...
Defines:
* XRT_HAVE_[name] is a external dep indicator.
* XRT_DRIVER_[name] if a internal driver is built.
CMake variables:
* BUILD_WITH_[name] is a external dep indicator.
* BUILD_DRIVER_[name] tells if we should build a specific driver.
2019-04-29 17:18:09 +01:00
Jakob Bornecrantz
6f41fbc43d
build: Tidy whitespace
2019-04-24 02:19:53 +01:00
Jakob Bornecrantz
dfe5e3935f
build: Make libusb, libuvc, FFMPEG and OpenCV usable in build
...
Only libusb is required.
2019-04-24 02:19:53 +01:00
Ryan Pavlik
87d13d9a00
build: Remove unused BUILD_TESTS option.
...
BUILD_TESTING is the normal one used in CMake projects,
as far as I can tell.
2019-04-08 19:11:04 +00:00
Ryan Pavlik
5cfa0907b6
build: Use and obey config options for driver selection.
...
We had BUILD_WITH_OPENHMD but it was unused,
while the HDK driver always built if the deps were found.
2019-04-08 19:11:04 +00:00
Ryan Pavlik
eec53ca35d
build: Use FindOpenHMD.
...
Fixes a gripe/todo in the build system, too :D
2019-04-08 19:11:04 +00:00
Lubosz Sarnecki
00afe442f8
comp: Introduce XRT_COMPOSITOR_VULKAN_VALIDATION.
...
For enabling Vulkan validation during runtime.
Add CMake option to disable Vulkan validation at build time.
By default the DEBUG extension is enabled but the validation layers
are not when the ENV variable is not set to true.
2019-03-29 10:59:41 +01:00
Benjamin Saunders
f016492a81
build: Add missing GLX dependency
...
Fixes loading by applications that do not themselves link GLX.
2019-03-22 20:11:51 -07:00
Jakob Bornecrantz
15a97422ba
xrt: Add all of Monado
2019-03-18 05:52:32 +00:00