Commit graph

819 commits

Author SHA1 Message Date
Peter Hutterer
c5aa2c0b60 doc/proto: address a few documentation issues
A few clarifications as suggested by Benjamin Tissoires.
2023-03-17 14:03:32 +10:00
Salman Malik
150ac5b4ac src/meson.build: Switch shared_library => library
This is the recommendation from meson documentation. The default
option is still to create a shared library but doing it this
way gives users an opportunity to create either a shared, static
or both type of libraries by setting up the meson build appropriately.

Here is the result with the default setup:

$ meson setup . _build
$ meson compile -C _build
$ find _build | egrep "(\.so|\.a)$"

_build/subprojects/munit/libmunit.so
_build/test/libunittest.a
_build/test/libeierpecken.a
_build/src/libei.so
_build/src/liboeffis.so
_build/src/libutil.a
_build/src/libeis.so

And here it is with the overridden flag:

_build/subprojects/munit/libmunit.a
_build/test/libunittest.a
_build/test/libeierpecken.a
_build/src/libei.a
_build/src/libeis.a
_build/src/liboeffis.a
_build/src/libutil.a

$ meson setup . _build  --default-library=static
$ meson compile -C _build
$ find _build | egrep "(\.so|\.a)$"
2023-03-15 00:47:15 +00:00
Peter Hutterer
1bc04bffa8 CI: add new workflow rules
Required for pipelines to run after some infrastructure changes, see
See https://gitlab.freedesktop.org/freedesktop/freedesktop/-/issues/438
2023-03-15 09:47:14 +10:00
Peter Hutterer
e6cb6b1998 Add a pre-commit hook
Moving my local hooks into a pre-commit hook set that others can find
useful too:
- remove trailing whitespaces and newlines
- don't allow commits to the "main" branch
- python black and python ruff (same args as in the CI)
2023-03-13 08:52:08 +10:00
Peter Hutterer
8954d96227 Remove empty trailing newlines from all files 2023-03-13 08:52:08 +10:00
Peter Hutterer
940f2778a9 CI: bump to the latest ci templates
This version includes a fix for ci-fairy to handle the trailing newlines
in a more predictable manner.
2023-03-13 08:51:52 +10:00
Peter Hutterer
37f4351a67 doc/proto: add a page for the ei-scanner
In case someone is actually planning to use that one
2023-03-10 14:25:59 +10:00
Peter Hutterer
d44de4e73e doc/proto: add a link to the git repo and issues page 2023-03-09 14:49:03 +10:00
Peter Hutterer
e8765f3042 doc/proto: add a page describing the libraries
Now that the API doc is behind a link, let's make it a bit more
prominent to find.
2023-03-09 14:28:30 +10:00
Peter Hutterer
2665224461 doc/proto: mirror the required directory structure
Might as well make this easier for us locally.
2023-03-09 14:28:30 +10:00
Peter Hutterer
3bcece1923 doc/proto: remove now unused files
Obsolete since 5258a559eb:
    doc/proto: remove the embedded docs from the proto, use static pages instead
2023-03-09 13:43:43 +10:00
Peter Hutterer
6b7424e821 doc/proto: fix a bug with the pages script
Removing the chapter pages means the directory no longer exists, so we
manually have to mkdir it.
2023-03-08 16:07:00 +10:00
Peter Hutterer
5258a559eb doc/proto: remove the embedded docs from the proto, use static pages instead 2023-03-08 11:09:58 +10:00
Peter Hutterer
56004836b9 proto: add the context-type attribute to events and requests
This allows us to mark/filter requests and events that are only
available on a given context type.
2023-03-08 09:01:03 +10:00
Peter Hutterer
fb5b607c13 doc/proto: put a standard blurb in for the destructor-type requests
Should eventually have a separate protocol documentation section for
this and point to it, but this will do for now.
2023-03-07 19:29:27 +10:00
Peter Hutterer
59ab84669f doc/proto: add some basic index pages
Better than the placeholders...
2023-03-07 19:22:00 +10:00
Peter Hutterer
ef430fceb0 doc/proto: add the generator script to the input files
So meson tracks the dependency better
2023-03-07 19:07:46 +10:00
Peter Hutterer
f97aa73c7c doc/proto: sort pages by occurrence in the protocol file 2023-03-07 19:05:52 +10:00
Peter Hutterer
f4f6dabbe2 proto: fix references to ei_handshake.interface_version 2023-03-07 18:58:58 +10:00
Peter Hutterer
3b30c38a39 protocol: more protocol documentation 2023-03-07 15:26:36 +10:00
Peter Hutterer
b05b256fd8 scanner: expand the regex to search for protocol names
This now finds nested ei_foo.bar.baz too (though it includes the
trailing full stop, if any).
2023-03-07 15:26:36 +10:00
Peter Hutterer
4ac13ac7a7 CI: fix the doxygen path
Adding the mkdir means we copy into that directory.
2023-03-07 15:26:36 +10:00
Peter Hutterer
8fad365f37 doc: split protocol and api builds into separate meson options 2023-03-07 15:26:36 +10:00
Peter Hutterer
2cf6df9cd0 meson: hook up the protocol documentation via meson
Since we want the generated documentation to be useful on-disk, drop the
baseURL and switch to relativeURLs = true for hugo.

This is arguably a bit nasty in that it git clones the theme into the
build directory. But oh well...
2023-03-07 14:14:58 +10:00
Peter Hutterer
248d08c6a5 doc: drop the doxygen protocol generation
This is better done with a separate system (e.g. hugo) and it's pretty
awful to read anyway.
2023-03-07 13:18:41 +10:00
Peter Hutterer
872e256759 doc: move the API documentation into its own directory 2023-03-07 13:17:12 +10:00
Peter Hutterer
d936e3e822 meson: make the header files variables to use within other meson files 2023-03-07 13:17:12 +10:00
Peter Hutterer
30aab5179e Merge branch 'main' into wip/drop-protobuf 2023-03-07 12:55:18 +10:00
Peter Hutterer
449d808b42 CI: always run the tests
Embarassingly, only the valgrind test would actually run tests because
it was the only one with a non-null MESON_TEST_ARGS. Let's fix this by
explicitly telling the build script to run the tests.
2023-03-07 11:57:46 +10:00
Peter Hutterer
367fa6384f test: fix the LD_LIBRARY_PATH to liboeffis
Make this dependent on liboeffis directly instead of hardcoding where it
should be.
2023-03-07 11:54:10 +10:00
Peter Hutterer
a2e60be0e6 meson: fix a typo 2023-03-07 11:50:09 +10:00
Peter Hutterer
442ce1edb8 proto: give a rough protocol overview as part of the docs 2023-03-07 11:33:35 +10:00
Peter Hutterer
4a3efa913a proto: more documentation improvements 2023-03-07 11:33:31 +10:00
Peter Hutterer
25e36eb24e meson: move the "build this?" checks into the subdirs
Let's decide on what to build in the doc/ and test/ directory rather
than in the main file.
2023-03-07 11:10:06 +10:00
Peter Hutterer
7810be8a80 meson: split into separate meson.build files for src/tools 2023-03-07 11:10:06 +10:00
Peter Hutterer
44295ab044 tools: add touch support to the ei-demo-client 2023-03-06 16:25:04 +10:00
Peter Hutterer
46bef9fe86 tools: add touchscreen support to the eis-demo-server 2023-03-06 16:11:55 +10:00
Peter Hutterer
8c2f51fcff tools: fix a debug message in the demo client 2023-03-06 16:11:53 +10:00
Peter Hutterer
ebd7d102cd proto: clarify that the ei_seat capabilities depend on ei_device
Regardless of the ei_seat version, ei_seat.bind will support all
capablities of the negotiated ei_device interface. This means we don't need
to bump ei_seat just to add a new capability to ei_device.
2023-03-06 14:57:18 +10:00
Peter Hutterer
717900f6fe Generate the protocol documentation in gitlab pages 2023-03-03 15:24:42 +10:00
Peter Hutterer
3d3b20f172 doc: add the templates and a script to generate hugo markdown
Intention here is to have the protocol in a readable manner somewhere.
Doxygen doesn't *quite* cut the bill.
2023-03-03 15:24:42 +10:00
Peter Hutterer
eb9fa07c10 scanner: add a filter to escape ei protocol names
By default escape them with backticks for markdown
2023-03-03 11:39:03 +10:00
Peter Hutterer
2fb1ff70e3 scanner: allow '-' for loading a template from stdin 2023-03-03 11:39:03 +10:00
Peter Hutterer
ea3ada1a80 proto: make the documentation an extractable set of XML tags
Instead of hiding this in a XML comment, let's make it a proper set of
tags so we can extract it and use it in generated documentation.
2023-03-03 11:38:40 +10:00
Peter Hutterer
c350ac2ee3 src: pass the headerfile as jinja extra data
This removes another special handling of the C bindings from the
scanner.
2023-03-03 11:38:40 +10:00
Peter Hutterer
d127f02f0a scanner: add ability to pass extra data to the jinja templates
This makes generation of files with the scanner a lot more flexible -
e.g. one can run the scanner with
  --jinja-extra-data='{ "interface": "ei_connection"}'
and then in the jinja template use an if condition to match on this
interface.
2023-03-03 11:38:40 +10:00
Peter Hutterer
2fa7792a33 scanner: drop duplicate import
We already import dedent globally
2023-03-03 11:27:01 +10:00
Peter Hutterer
2550a0b54d scanner: raise SystemExit instead of calling sys.exit
Bit nicer (no import sys required for that call) and that's what sys.exit
does that anyway.
2023-03-03 11:27:01 +10:00
Peter Hutterer
70e2a9fbc2 protocol: fix two cross-references 2023-03-03 11:27:01 +10:00
Peter Hutterer
5f9bfe7b7b client: drop seats when destroying the client
This *should* have happened when the client got disconnected but in some
race conditions a seat may be added after the client gets disconnected.
Reproducible (sometimes) by test_invalid_object_id with the
eis-demo-server:
- client connects, sends invalid object ID, gets disconnected
- server sees CONNECTED, adds a seat, then sees DISCONNECTED and drops
  the client.

From the demo-server's POV the seat is handled by the client, so it
expects the client to destroy it.
2023-03-03 11:27:01 +10:00