aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: ec6db54d5efd9e8045b8e04fda422a999c16f2b8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# Neptune 3 UI

Neptune 3 is a reference implementation of a multiprocess System UI using Qt Automotive Suite.

You can easily fetch, build and install it along with all its dependencies using the qtauto-admin tool which can be found here:
https://gitlab.com/jryannel/qauto-admin

Otherwise you can read on for information on how to fetch its dependencies and build it yourself.

## Prerequisites and dependencies

### Multi-process UI (preferred)

When in multi process mode, application run as independent processes, as wayland clients,
and the System UI acts as a wayland server, compositing the application windows in its own
QML scene, as regular QML items.

* Linux (e.g. Ubuntu 16.04)
* Qt5 (branch 5.12) with qtwayland submodule and built with Open GL ES (-opengl es2 -opengles3)
* QtIvi (git://code.qt.io/qt/qtivi.git, branch dev)
* Qt Application Manager (git://code.qt.io/qt/qtapplicationmanager.git, branch dev)

### Single-process UI (fallback option)

When in single process mode, all application code run in the same QML scene and
process as the System UI itself.

* Linux (e.g. Ubuntu 16.04) or macOS
* Qt5 (branch 5.12)
* QtIvi (git://code.qt.io/qt/qtivi.git, branch 5.11)
* Qt Application Manager (git://code.qt.io/qt/qtapplicationmanager.git, branch dev)

## Clone Repository

The repo uses git-lfs. You need to install [https://git-lfs.github.com/](git-lfs) first. To not enter every time the credentials you can use the git credential cache. The GitLab server uses a self-signed certification, so we need to override the ssl verification.

Here are the commands:

    $ git lfs install
    $ git clone git://code.qt.io/qt-apps/neptune3-ui.git
    $ cd neptune3-ui
    $ git config credential.helper cache
    $ git config http.sslverify false

## Build and install neptune3-ui

    $ qmake --version

This should report a Qt 5.12 version

    $ qmake INSTALL_PREFIX=/path/to/install/folder && make && make install

This will install all qml files and plugins into the neptune subfolder of '/path/to/install/folder'. If INSTALL_PREFIX is not defined, then this will build all neptune3-ui plugins and installs the complete neptune3-ui to /opt/neptune3 folder.

You should have the Open Sans font installed in your system (see the ttf files in imports/assets/fonts). Its installation is *not* being done automatically.

The installation part is optional.

* (Optional) Run scripts within the plugins/scripts folder to scan the media on the system

## Run entire UI

Building Neptune will make 'neptune3-ui' executable which will be then run:

    $ neptune3-ui --start-session-dbus -r

To get more detailed log output, run:

    $ neptune3-ui --start-session-dbus -r --verbose

*macOS Fix*: The RPATh feature is not currently working and libraries (esp. settings lib) are not found by default. Please use this workaround:

    $ DYLD_LIBRARY_PATH=$PWD/lib ./neptune3-ui -r

This will lookup the settings lib from the `./lib` folder.

To run the settings server, just run the executable RemoteSettings_server

# Run the UI without QtIVI

In case QtIVI is not installed, 'dummyimports' folder contains QML dummy implementation of QtIVI:

    $ QML2_IMPORT_PATH=/path/to/dummyimports neptune3-ui -r

# Building the settings app for Android

The NeptuneControlApp may also be built and run on android. For building just the app for android, there is a separate project file, settings_app_android.pro, in the root directory. The project includes only the app and its dependencies. This requires the android build of qt 5.12 with the qtivi built for android.