Commit Graph
100 Commits
Author SHA1 Message Date
Vasily dbecf100b8 Change CircleCI to use g++-9 instead of g++-7 2019-07-04 16:44:31 +02:00
Vasily 614278d7ec Add compiler check for g++-9 to qmake 2019-07-04 16:44:31 +02:00
Vasily b68ce1a583 Remove clang --version from CircleCI
It is not guaranteed that the `clang` binary is used (`clang-8` instead,
for example) and versions are output by QMAKE anyway.
2019-07-04 16:44:31 +02:00
Vasily 8df1eb6f19 Add versioning to Linux artifacts and change CI image
The circleci/buildpack-deps:xenial contains python, which is needed for
the version changing script.
2019-07-04 16:44:31 +02:00
Vasily 329b4e7331 Add SVG support to AppImage, move files instead of copying 2019-07-04 16:44:31 +02:00
Vasily 0121e75947 Manually add QtQuick.Dialogs to Linux AppImage
https://github.com/probonopd/linuxdeployqt/issues/25

As detailed there QtQuick/Dialogs and QtQuick/LocalStorage are not
automatically packaged.
2019-07-04 16:44:31 +02:00
Vasily ad05b29392 Add qml path to AppImage
This should solve problem

https://github.com/probonopd/linuxdeployqt/issues/25

with error message

QML Error:
file:///tmp/.mount_OpenVRtQNnT6/usr/bin/res/qml/common/mainwidget.qml:1:1:
module "QtQuick" is not installed
2019-07-04 16:44:31 +02:00
Vasily c08ab71e63 Remove AppImage new glibc switch 2019-07-04 16:44:31 +02:00
Vasily 6a7e5804bf Add CircleCI AppImage building
This builds on GCC for no reason in particular.
2019-07-04 16:44:31 +02:00
Vasily 201cb40359 Add variable for clang-tidy name when building on Linux
Travis has the correct clang-tidy version of 7, while CircleCI needs
clang-tidy-7.
2019-06-24 19:21:14 +02:00
Vasily ec5a575d93 Add g++-8 specific version support. 2019-06-24 19:21:14 +02:00
Vasily e8af73db28 Make CircleCI have feature parity with TravisCI and update docs
Unnecessary line from Bionic 18.04 was removed.

A proper version guard was included for clang. Xenial currently ships
3.8.
2019-06-24 19:21:14 +02:00
Vasily 89eb37ed15 Add clang-tidy to circleci 2019-06-24 19:21:14 +02:00
Vasily b65657b371 Add clang passing build
CircleCI Xenial does not come with an up to date version of Clang. It is
therefore required to get the newest version (8). The .pri file has
quickly been edited to be similar to the g++ version check.
2019-06-24 19:21:14 +02:00
Vasily aade86ed47 Add circleci g++ passing build
CircleCI does not compile with --jobs.
2019-06-24 19:21:14 +02:00
Vasily 73e1878e59 Remove X11 logging calls 2019-06-15 10:00:46 +02:00
Vasily 97009aa39a Convert KeySym to KeyCode
Previously KeySyms were sent when KeyCodes should have been sent.
2019-06-15 10:00:46 +02:00
Vasily e2f41fce37 Remove unused param for X11 input sender 2019-06-15 10:00:46 +02:00
Vasily 589b759c77 Linux Keyboard Input: Make KeySym conv explicit 2019-06-15 10:00:46 +02:00
Vasily 9703917a19 Fix bug in Linux keyboard input sender
Held modifiers weren't being released again.
2019-06-15 10:00:46 +02:00
Vasily 061509eff6 Add casts to logging calls 2019-06-15 10:00:46 +02:00
Vasily f68413d651 Add logging calls to X11 key sending 2019-06-15 10:00:46 +02:00
Vasily 674a28eb96 Add general readme fixes 2019-06-14 20:58:01 +02:00
Vasily 9f0790e1d2 Update SteamVR input guide 2019-06-14 20:58:01 +02:00
Vasily adf2f33c3c Fix types and weirdly capitalized words in SteamVR Input Guide 2019-06-14 20:58:01 +02:00
Vasily 182b6ec6b4 Update Readme feature list
Some of the bullets do not make sense without context.
2019-06-14 20:58:01 +02:00
Vasily d7deb4ae8c Move TOC in readme above initial header 2019-06-14 20:58:01 +02:00
Vasily a0c3b1f92a Remove colons from TOC in readme 2019-06-14 20:58:01 +02:00
Vasily b60f4eb254 Remove colons from some headers 2019-06-14 20:58:01 +02:00
Vasily f3895f223e Convert readme Table Of Contents to not use HTML tags
GitHub works fine with just headers and the tags are a pain to maintain.

TOC created with https://ecotrust-canada.github.io/markdown-toc/.
2019-06-14 20:58:01 +02:00
Vasily 4118885821 Update documentation on keyboard input 2019-06-14 20:58:01 +02:00
Vasily 8e34e9edca Update documentation for DBUS on Linux 2019-06-05 19:57:44 +02:00
Vasily f958026453 Add DBUS support for media keys 2019-06-05 19:57:44 +02:00
Vasily a228cf0d5b Change .txt to .md 2019-05-25 18:49:42 +02:00
Vasily 0b16eeffa7 Add further explanation to docs on keyboard input 2019-05-25 18:49:42 +02:00
Vasily f70e66277b Add dereference to logging call 2019-05-25 18:49:42 +02:00
Vasily 3f8f757ead Add error logging for keyboard input 2019-05-25 18:49:42 +02:00
Vasily 6009fcbfd0 Change keyboard_manager spec extension to .md
It's actually markdown, not text.
2019-05-25 18:49:42 +02:00
Vasily c88b1db92b Create documentation for keyboard input 2019-05-25 18:49:42 +02:00
Vasily 66d2a77cfb Make VR->keyboard bindings appear in .ini on startup 2019-05-25 18:49:42 +02:00
Vasily 1429e833fe Update readme for bindings->keyboard keys 2019-05-25 18:49:42 +02:00
Vasily 7d37ec9c0d Add bindings to keyboard shortcuts
The default binding for keyboardOne is the default combination
for muting on Discord. This was explicitly chosen as a use case, and it
    might make people not have to tangle with creating custom
    keybindings in the .ini file.
2019-05-25 18:49:42 +02:00
Vasily ef124ee225 Add dummy media_keys file
This allows Linux (and MacOS) to compile correctly again. The previous
behavior was an intended middle step.
2019-05-25 18:49:42 +02:00
Vasily 5f30095ec8 Readd media keys for Windows
This intentionally does not compile on Linux.
2019-05-25 18:49:42 +02:00
Vasily 9fe1f3dc50 Separate media keys from keyboard shortcuts
The media keys were only in the keyboard shortcuts file because their
implementation was the same. With Linux support incoming their
implementations are not necessarily the same.
2019-05-25 18:49:42 +02:00
Vasily 55a3830787 Fix keyboard input implementation error and replace old system 2019-05-25 18:49:42 +02:00
Vasily d48f74b314 Fix clang-tidy errors 2019-05-25 18:49:42 +02:00
Vasily 1cd259bf9b Add inline to sendStringAsInput
Definition in function header led to linker errors.
2019-05-25 18:49:42 +02:00
Vasily 2d8f5a1b40 Add Enter button to spec and keyboard_input
It was mistakenly left out.
2019-05-25 18:49:42 +02:00
Vasily eb25656eeb Fix typo in keyboard_input function name 2019-05-25 18:49:42 +02:00
Vasily 6a3a58361d Add Linux keyboard_input support 2019-05-25 18:49:42 +02:00
Vasily 9fa42842cd Add top level stringToInput sender in header
This is the same for all platforms, so thers' no reason to duplicate it
in platform specific sections.
2019-05-25 18:49:42 +02:00
Vasily 0c7c339e3e Add sending inputs for keyboard_input on Windows 2019-05-25 18:49:42 +02:00
Vasily 6290221853 Remove AltGr support from keyboard input
Was removed in spec for being Alt + Ctrl.
2019-05-25 18:49:42 +02:00
Vasily 3173c4999c Remove AltGr button from keyboard input spec
AltGr is just implemented as Alt + Ctrl. This means it's unnecessary and
is only going to complicate the spec.
2019-05-25 18:49:42 +02:00
Vasily b4cf5d3cb7 Add removing duplicate tokens to input_parser 2019-05-25 18:49:42 +02:00
Vasily bc060bec96 Add removing extra new-sequence tokens 2019-05-25 18:49:42 +02:00
Vasily 2c0f49d8d6 Add noexcept specifiers to keyboard_input functions 2019-05-25 18:49:42 +02:00
Vasily f72e1b2541 Add capital literal parsing and tests 2019-05-25 18:49:42 +02:00
Vasily d5cb19cea1 Add tests for capital literals 2019-05-25 18:49:42 +02:00
Vasily ef0e679344 Add support for space token to keyboard_input 2019-05-25 18:49:42 +02:00
Vasily e40058e58a Fix keyboard_input SEGFAULT 2019-05-25 18:49:42 +02:00
Vasily d6c7b52a47 Add initial keyboard_input parser and tests
The current implementation SEGFAULTs when F characters are followed by
end of string.
2019-05-25 18:49:42 +02:00
Vasily 49b16ebc8f Remove F10, F11 and F12 function keys from keyboard spec
There is no way to tell if they are meant to be one or two keys and in
this case simplicity of use wins out.
2019-05-25 18:49:42 +02:00
Vasily d2127e53aa Add specification for keyboard input parser 2019-05-25 18:49:42 +02:00
Vasily bf5ccd69ca Update Linux build docs for Ubuntu 19.04 2019-04-22 09:56:50 +02:00
Vasily f6c2bab116 Add Linux build docs describing qtchooser for official installer
The official installer does not add itself to qtchooser.
2019-04-22 09:56:50 +02:00
Vasily dafc977bbe Add Linux sendKeyboardInput
This implementation has several problems.
1) It only really deals with Latin1 characters. This is the same as the
Windows implementatino.
2) It doesn't handle modifier keys at all. This is also a problem with
the Win implementation.

This is an interim solution until a unified strategy can be made for
both Windows/Linux.
2019-04-22 09:56:50 +02:00
Vasily 4ec1fbf201 Add noX11 flag to Linux compilations
This allows users that are not using X11 to still compile the
application.
2019-04-22 09:56:50 +02:00
Vasily d0a2e15dbf Remove run-with-library.sh file from Linux builds
No longer necessary after adding '-Wl,-rpath,\'\$$ORIGIN\''.
2019-04-22 09:56:50 +02:00
Vasily b60113fb8e Replace GCC version regex with simpler solution 2019-04-22 09:56:50 +02:00
Vasily 9cfaf68a92 Update GCC compiler to not use hardcoded g++-7
Newer versions of Ubuntu ship with >g++-7, so there will be less of a
need as time goes on to perform this hack.
2019-04-22 09:56:50 +02:00
Vasily d139c34a67 Give clang/gcc explicit path to third-party libs
Qt Creator on Linux does not recognize the previous solution. Adding the
$$PWD makes the IDE work.
2019-04-22 09:56:50 +02:00
Vasily bdf66a658b Make Linux look in current folder for OpenVR lib 2019-04-22 09:56:50 +02:00
Vasily 381fe3aee3 Add Ctrl+C/Ctrl+V keybinds to X11 version 2019-04-22 09:56:50 +02:00
Vasily 1536059a4b Replace X11 enter key
Tester @Goofybud on Debian reported that the enter button did not work.
There are apparently 4 different enter buttons in X11:
    XK_Linefeed
    XK_Return
    XK_KP_Enter
    XK_ISO_Enter

I am attempting XK_Return because it seems like the most obvious next
attempt.
2019-04-22 09:56:50 +02:00
Vasily 30ef80d19c Update X11 package on Travis, clarify qt build specs
macx is also unix, apparently meaning it's necessary to distinguish
between the two.
2019-04-22 09:56:50 +02:00
Vasily 86ec4975fc Add Linux impl of some keyboard inputs 2019-04-22 09:56:50 +02:00
Vasily 860eca1956 Add compiling on Ubuntu for X11 funcs 2019-04-22 09:56:50 +02:00
Vasily 7a3737e0de Initial X11 groundwork 2019-04-22 09:56:50 +02:00
Vasily 78d715ed4c Update documentation for version strings 2019-04-20 09:52:18 +02:00
Vasily b4e7b4cc8d Change version hash suffix to be first 8 characters
Github shows the first 8 instead of the last 8, this will make
comparison easier.
2019-04-20 09:12:56 +02:00
Vasily 7bf53cf081 Add more documentation on version strings 2019-04-20 08:57:36 +02:00
Vasily 13b3ba7a56 Update docs on version numbers for new system 2019-04-19 22:30:04 +02:00
Vasily 0e8e26d553 Change version name to 3.1.0-dev
The previous -new appendix was just to make sure the old name wasn't
being used instead.
2019-04-19 22:30:04 +02:00
Vasily 4450b9b38a Add version number to Windows exe file description
The "real" version number doesn't accept non-integers. This should make
debugging easier.
2019-04-19 22:30:04 +02:00
Vasily bb1d3e16fb Convert executable icon to new method
Manually creating an RC file was the Qt 4 way. The Qt 5 way is just
giving it an icon.

When an RC_FILE isn't manually created Qt will attempt to create one. If
there are non-integers in the version number the compilation will crash.

AdvancedSettings_resource.rc is a build artifact on Windows.
2019-04-19 22:30:04 +02:00
Vasily 164158330e Convert C++ version string to be define instead of include
This allows Qmake to use the version number as well as not requiring all
other uses of the version string to strip double quotes from it. This
also reduces the fragility of the version string as it was required to
be a valid C++ char*, even in contexts where that wouldn't matter.
2019-04-19 22:30:04 +02:00
Vasily 9bebfe3067 Add build directory to .gitignore
The Linux build process creates this directory and uses it. It should
not be committed.
2019-04-19 22:29:21 +02:00
Vasily 5c4e8a3486 Make version append script respect release builds
Users do not care about commit numbers and it only serves to confuse
them. Release builds should not contain build metadata since there
should only be one definitive version.
2019-04-19 22:29:21 +02:00
Vasily c36dd70f60 Change build metadata separator from - to +
SemVer 2.0.0 requires a plus for build metadata.

https://semver.org/
`Build metadata MAY be denoted by appending a plus sign and a series of
dot separated identifiers immediately following the patch or pre-release
version. Identifiers MUST comprise only ASCII alphanumerics and hyphen
[0-9A-Za-z-]. Identifiers MUST NOT be empty. Build metadata SHOULD be
ignored when determining version precedence. Thus two versions that
differ only in the build metadata, have the same precedence. Examples:
1.0.0-alpha+001, 1.0.0+20130313144700, 1.0.0-beta+exp.sha.5114f85.`
2019-04-19 22:29:21 +02:00
Vasily 5eea5d7e93 Make AppVeyor only use last 8 digits of hash 2019-04-19 22:29:21 +02:00
Vasily 0ec39f7714 Add double quotes around new version string 2019-04-19 22:29:21 +02:00
Vasily 3d13c68303 Move AppVeyor version string script to build section
It does not work in the init section for some reason, with python giving

python .\\build_scripts\\append_to_version_file.py
%APPVEYOR_REPO_COMMIT%
python: can't open file '.\\build_scripts\\append_to_version_file.py':
[Errno 2] No such file or directory
2019-04-19 22:29:21 +02:00
Vasily 72a319bc1e Make Python replace version file responsible for file writes
While the initial idea of having cmd/PS/bash actually write the changes
to file, the integration with the AppVeyor YAML just made it really
frustrating.
2019-04-19 22:29:21 +02:00
Vasily 4e781fa74a Make append version file more cross platform 2019-04-19 22:29:21 +02:00
Vasily af98c357fc Add version number to start of build script 2019-04-19 22:29:20 +02:00
Vasily 9303d93f27 Make appveyor able to inject git commit into version 2019-04-19 22:29:20 +02:00
Vasily a74f0cad49 Make NSIS and Win build scripts remove " character
It is not strictly necessary in the Python version because it's being
appended to a batch command, but in order to have things make sense if
the mechanism of dispatching commands changes the program will strip
double quotes.
2019-04-19 22:29:20 +02:00
Vasily 6cf009e915 Convert C++ code to read version string from file
This is definitely not a pretty thing. Double quotes are required around
the string which means they'll need to be removed in the NSIS and Python
scripts.
2019-04-19 22:29:20 +02:00