File README.adoc renamed from README.md (similarity 58%) (mode: 100644) (index 8660a7b..190d354) |
1 |
|
# Chorus |
|
|
1 |
|
= Chorus |
|
2 |
|
Vladyslav Bondarenko <vladyslavbond@protonmail.com> |
|
3 |
|
0.6.1 (unstable), 2024-01-23 |
2 |
4 |
|
|
3 |
5 |
Chorus is a graphical user interface extension for a popular video game World |
Chorus is a graphical user interface extension for a popular video game World |
4 |
6 |
of Warcraft. It adds a custom raid frame. This is a work in progress. |
of Warcraft. It adds a custom raid frame. This is a work in progress. |
|
... |
... |
since Cataclysm expansion (interface 40000). |
19 |
21 |
This add-on will never feature key binding customization. This feature is |
This add-on will never feature key binding customization. This feature is |
20 |
22 |
specifically excluded to be the subject of a different add-on. |
specifically excluded to be the subject of a different add-on. |
21 |
23 |
|
|
22 |
|
## Install |
|
|
24 |
|
== Install |
23 |
25 |
|
|
24 |
26 |
The project is installed like any other World of Warcraft add-on. Exit the |
The project is installed like any other World of Warcraft add-on. Exit the |
25 |
27 |
game. Unpack the archive that contains the project's sources into |
game. Unpack the archive that contains the project's sources into |
26 |
|
"${gamedir}/Interface/AddOns/" directory, where ${gamedir} is the path to the |
|
|
28 |
|
`${DESTDIR}/Interface/AddOns/` directory, where `${DESTDIR}` is the path to the |
27 |
29 |
game installation directory. In the end it must look something like this. |
game installation directory. In the end it must look something like this. |
28 |
30 |
|
|
29 |
|
``` |
|
|
31 |
|
---- |
30 |
32 |
Interface/Addons/chorus/ |
Interface/Addons/chorus/ |
31 |
33 |
Interface/Addons/chorus/bin/ |
Interface/Addons/chorus/bin/ |
32 |
34 |
Interface/Addons/chorus/etc/ |
Interface/Addons/chorus/etc/ |
33 |
35 |
Interface/Addons/chorus/share/ |
Interface/Addons/chorus/share/ |
34 |
36 |
Interface/Addons/chorus/src/ |
Interface/Addons/chorus/src/ |
35 |
|
Interface/Addons/chorus/README.md |
|
|
37 |
|
Interface/Addons/chorus/README.adoc |
36 |
38 |
Interface/Addons/chorus/chorus.toc |
Interface/Addons/chorus/chorus.toc |
37 |
|
``` |
|
|
39 |
|
---- |
38 |
40 |
|
|
39 |
41 |
Experienced users may install the add-on with `git`. |
Experienced users may install the add-on with `git`. |
40 |
42 |
|
|
41 |
|
``` |
|
|
43 |
|
---- |
42 |
44 |
git clone --branch master https://rocketgit.com/user/vrtc/chorus "${gamedir}/Interface/AddOns/chorus" |
git clone --branch master https://rocketgit.com/user/vrtc/chorus "${gamedir}/Interface/AddOns/chorus" |
43 |
|
``` |
|
|
45 |
|
---- |
44 |
46 |
|
|
45 |
|
## Development |
|
|
47 |
|
== Development |
46 |
48 |
|
|
47 |
|
### Build dependencies |
|
|
49 |
|
=== Build dependencies |
48 |
50 |
|
|
49 |
51 |
The project does not require any building steps to work. It can be freely |
The project does not require any building steps to work. It can be freely |
50 |
52 |
distributed as sources only. However, the project was developed using certain |
distributed as sources only. However, the project was developed using certain |
|
... |
... |
Build dependencies: |
57 |
59 |
- luarocks (packaging and project management for Lua); |
- luarocks (packaging and project management for Lua); |
58 |
60 |
- ldoc (generate technical documentation from Lua sources); |
- ldoc (generate technical documentation from Lua sources); |
59 |
61 |
|
|
60 |
|
#### Build dependencies for Debian 12 |
|
|
62 |
|
==== Build dependencies for Debian 12 |
61 |
63 |
|
|
62 |
64 |
Install build dependencies for Debian 12. |
Install build dependencies for Debian 12. |
63 |
65 |
|
|
64 |
|
``` |
|
65 |
|
apt-get install libxml2-utils lua-check luarocks lua-ldoc |
|
66 |
|
``` |
|
|
66 |
|
---- |
|
67 |
|
apt-get install libxml2-utils lua-check lua-ldoc make git |
|
68 |
|
---- |
67 |
69 |
|
|
68 |
|
#### Build dependencies for Windows |
|
|
70 |
|
==== Build dependencies for Windows |
69 |
71 |
|
|
70 |
72 |
Insalling for Windows is much more tricky. The first step is to install |
Insalling for Windows is much more tricky. The first step is to install |
71 |
73 |
LuaRocks, then use LuaRocks to install LuaCheck and LDoc. xmllint can be |
LuaRocks, then use LuaRocks to install LuaCheck and LDoc. xmllint can be |
72 |
74 |
replaced with any XML parser that understands *.xsd. |
replaced with any XML parser that understands *.xsd. |
73 |
75 |
|
|
74 |
|
### Build package |
|
|
76 |
|
=== Build package |
75 |
77 |
|
|
76 |
|
Validate Lua snippets for sanity. |
|
|
78 |
|
Navigate to the source directory. |
77 |
79 |
|
|
78 |
|
``` |
|
79 |
|
luacheck --config etc/luacheckrc.lua src/ |
|
80 |
|
``` |
|
|
80 |
|
The source directory is where the distribution archive was unpacked to, where |
|
81 |
|
the repository was cloned to, or where the add-on was already installed to. |
81 |
82 |
|
|
82 |
|
Validate Blizzard UI XML snippets for sanity. |
|
|
83 |
|
The build is done with `make` utility. All example commands assume it's |
|
84 |
|
installed. |
83 |
85 |
|
|
84 |
|
``` |
|
85 |
|
xmllint --noout --scheme share/xml/FrameXML/UI.xsd |
|
86 |
|
``` |
|
|
86 |
|
Validate Lua snippets for sanity. Requires `luacheck`. The configuration is |
|
87 |
|
loaded from `etc/luacheckrc.lua`. |
87 |
88 |
|
|
88 |
|
Package a *.zip archive for redistribution. |
|
|
89 |
|
---- |
|
90 |
|
make check-lua |
|
91 |
|
---- |
89 |
92 |
|
|
90 |
|
``` |
|
91 |
|
luarocks pack chorus-dev-1.rockspec |
|
92 |
|
``` |
|
|
93 |
|
Validate Blizzard UI XML snippets for sanity. Requires `xmllint`. The schema is |
|
94 |
|
loaded from `etc/xml/FrameXML/UI.xsd`. The schema descriptor was exported from |
|
95 |
|
the game client, version 3.3.5a. |
93 |
96 |
|
|
94 |
|
`luarocks` produces a source "rock" package that is a *.zip archive with a |
|
95 |
|
conventional extension *.src.rock. The file can be safely renamed to a normal |
|
96 |
|
*.zip archive. |
|
|
97 |
|
---- |
|
98 |
|
make check-xml |
|
99 |
|
---- |
|
100 |
|
|
|
101 |
|
Do both. |
|
102 |
|
|
|
103 |
|
---- |
|
104 |
|
make check |
|
105 |
|
---- |
|
106 |
|
|
|
107 |
|
Package a `*.zip` archive for redistribution. Requires `git`. More importantly, |
|
108 |
|
it requires the project's source repository to be cloned. Therefore, it will |
|
109 |
|
not work if the project's was obtained from a distribution archive. |
|
110 |
|
|
|
111 |
|
---- |
|
112 |
|
make dist |
|
113 |
|
---- |
|
114 |
|
|
|
115 |
|
Minimal effort was made to make the `Makefile` adhere to `GNUmakefile` |
|
116 |
|
conventions. |