[build] Generate drules at build

Signed-off-by: x7z4w <x7z4w@noreply.codeberg.org>
This commit is contained in:
x7z4w
2025-06-16 09:42:57 +00:00
parent dd7739a8b2
commit 45ec96dd3c
24 changed files with 35 additions and 849773 deletions

7
.gitignore vendored
View File

@@ -19,7 +19,6 @@ data/resources-*_design/*
# symbols png/sdf are now generated at build
data/resources-*_*/symbols.png
data/resources-*_*/symbols.sdf
data/drules_proto_default_design.bin
data/colors_design.txt
data/patterns_design.txt
data/bookmarks
@@ -28,6 +27,12 @@ data/World.mwm
data/WorldCoasts.mwm
data/world_mwm/*
data/*_hash
data/drules_proto*
data/classificator.txt
data/types.txt
data/visibility.txt
data/colors.txt
data/patterns.txt
# Compiled Python
*.pyc

View File

@@ -5,10 +5,11 @@
SKIP_MAP_DOWNLOAD=$SKIP_MAP_DOWNLOAD
SKIP_GENERATE_SYMBOLS=$SKIP_GENERATE_SYMBOLS
SKIP_GENERATE_DRULES=$SKIP_GENERATE_DRULES
############################# PROCESS OPTIONS ################################
TEMP=$(getopt -o ms --long skip-map-download,skip-generate-symbols \
TEMP=$(getopt -o ms --long skip-map-download,skip-generate-symbols,skip-generate-drules \
-n 'configure' -- "$@")
if [ $? != 0 ] ; then echo "Terminating..." >&2 ; exit 1 ; fi
@@ -19,6 +20,7 @@ while true; do
case "$1" in
-m | --skip-map-download ) SKIP_MAP_DOWNLOAD=1; shift ;;
-s | --skip-generate-symbols ) SKIP_GENERATE_SYMBOLS=1; shift ;;
-d | --skip-generate-drules ) SKIP_GENERATE_DRULES=1; shift ;;
* ) break ;;
esac
done
@@ -87,3 +89,14 @@ if [ -z "$SKIP_GENERATE_SYMBOLS" ]; then
else
echo "Skipping generate symbols..."
fi
if [ -z "$SKIP_GENERATE_DRULES" ]; then
if Diff data/drules_hash data/styles/*/*/*.mapcss data/styles/*/*/*.prio.txt data/mapcss-mapping.csv; then
echo "Generating drules..."
bash ./tools/unix/generate_drules.sh
fi
else
echo "Skipping generate drules..."
fi
echo "The repository is configured for development."

File diff suppressed because it is too large Load Diff

View File

@@ -1,775 +0,0 @@
0
6425
8738
9758
13615
13655
19033
19738
19776
21569
26316
26972
34815
39468
42380
49061
87963
145999
152955
160412
240116
328965
352205
394752
462602
593674
854541
855309
929809
990018
1118464
1118481
1184274
1248273
1272880
1317888
1359565
1381632
1449728
1642503
1643545
1643785
1644825
1651584
1717629
1728193
1775649
1793568
1842204
1913758
1973790
2004720
2038026
2038555
2171142
2171163
2171169
2236962
2301728
2302755
2364429
2367520
2374579
2399474
2496790
2498323
2499106
2500128
2592674
2631706
2695475
2706568
2763300
2827062
2828327
2836760
3155515
3156522
3158064
3183362
3351066
3354413
3354929
3355443
3393339
3418688
3428943
3434779
3542630
3552308
3629602
3677972
3681605
3682365
3684408
3773998
3832097
3874837
3881273
3881787
3968060
4007447
4016230
4065802
4073251
4285507
4311295
4340748
4342338
4408131
4470602
4473924
4495803
4536109
4605510
4612472
4666933
4671303
4794651
4809033
4854924
4933187
4985359
4991511
4991513
4991515
5054731
5064516
5072410
5131837
5196359
5286655
5378955
5389875
5395026
5459435
5592405
5666134
5717555
5845795
5862272
5918280
5991734
6052945
6164237
6173981
6247213
6291544
6381914
6381921
6510384
6645086
6645094
6687291
6699455
6702131
6702352
6710886
6834797
6908265
6967599
7105644
7224647
7353344
7434609
7542806
7551546
7566195
7631988
7763302
7763574
7829367
8000018
8026746
8033996
8060972
8079449
8163038
8263442
8327953
8355711
8391449
8399890
8406579
8408320
8421504
8440772
8487025
8505220
8550167
8561591
8916559
8947848
9145087
9153470
9163744
9211020
9326109
9404166
9482692
9614535
9682745
9718290
9746121
9868939
9868950
9877964
10066329
10167040
10167474
10197647
10242335
10255717
10278878
10340289
10395294
10413298
10426903
10592406
10605751
10664526
10671280
10790054
10927445
10936534
11053224
11057133
11112295
11184810
11190108
11198148
11250586
11263426
11321953
11518306
11519079
11579812
11711154
11720246
11720952
11770767
11780969
11781741
11836942
11841150
11898395
11984581
12000284
12039862
12044403
12105912
12115392
12175727
12307315
12314088
12504182
12504184
12517551
12837073
12895428
12898689
13030021
13031851
13163437
13227146
13229526
13407549
13420474
13424014
13538264
13555607
13621402
13685196
13818270
13947850
13949600
13952918
14013333
14014162
14015375
14079128
14081171
14209512
14210459
14212247
14212502
14275263
14409117
14560552
14802147
14806505
14933676
14934482
14951168
15000550
15001506
15014691
15022389
15037299
15066325
15066596
15086900
15094016
15128239
15214341
15260347
15263452
15263939
15265772
15524822
15590858
15590859
15592411
15592899
15656370
15656651
15658734
15690752
15720923
15754290
15763456
15790320
15898392
15900208
15902016
16027569
16049608
16056407
16064048
16087552
16088855
16103246
16113596
16115926
16116442
16117459
16118756
16119285
16169823
16173957
16372627
16391736
16431936
16433750
16440736
16445409
16557154
16577252
16577510
16579836
16728450
16733986
16740096
16746306
16747109
16748864
16750080
16750592
16756055
16760320
16762880
16763432
16763913
16764506
16765952
16766323
16767702
16774560
16776442
16776958
16777215
218112546
218113566
221978645
222898459
223036995
223300167
228382686
228517106
233867264
234004016
234880250
234881023
307054404
318766330
318767103
436217374
436602368
437326080
438572045
438705939
439885588
441002267
441140803
441199131
441272132
441403975
442905727
443115881
443432263
445352703
445533725
445925906
446486494
447655326
451800027
452107824
452109632
452321212
452377439
452764770
452984058
452984574
452984831
609045837
654706176
658186261
659106075
659244611
670074880
670211632
670398976
671088382
671088639
855647774
856032768
856756480
856756497
856822290
857223704
857282841
857551774
858002445
858401316
858466343
858532890
858992429
859315988
859519289
859519803
859645463
860111940
860432667
860571203
860629531
860834375
861027891
861097451
861483811
861690961
861690972
861885229
862076287
862148400
862348902
862862663
863203947
863664762
863850275
864585864
864783103
864835622
864964125
865356306
865445970
865871792
865916894
867350728
868514559
869585866
869590934
869652178
870704341
871230427
871536408
871540032
871741262
871807839
871811973
872195170
872215006
872414458
872414974
872415231
1074136576
1077616661
1078536475
1089642032
1089829376
1090519039
1216522952
1291845632
1292174597
1292240384
1292700173
1292700941
1292964096
1293431320
1293490457
1293753629
1294082594
1294210061
1294608932
1294673959
1294738992
1294740506
1295200045
1295200561
1295201075
1295397940
1295523604
1295527997
1295658816
1295727419
1295853079
1295855912
1296316234
1296319556
1296381741
1296640283
1296778819
1296837145
1296837147
1296845900
1296910148
1296977469
1297109072
1297235507
1297305067
1297438037
1297563187
1297898577
1297898588
1298019613
1298092845
1298131758
1298227553
1298283903
1298356016
1298359132
1298556518
1299070279
1299411563
1299872378
1300057891
1300267136
1300332657
1300793480
1300990719
1301043238
1301056384
1301171741
1301433013
1301563922
1301653586
1301714310
1301714571
1302101349
1302438038
1303425444
1303556514
1304148906
1304722175
1304938175
1305793482
1305798550
1305859794
1306645694
1306647779
1306780114
1307438043
1307504366
1307744024
1307747648
1307961558
1307962074
1307964388
1308015455
1308019589
1308218259
1308422622
1308425468
1308576652
1308591910
1308594496
1308601687
1308604747
1308622590
1308622847
1511594265
1523897290
1545508592
1560281087
1711276032
1711670784
1711677478
1713184029
1714046273
1714104359
1714631475
1714860223
1715089216
1715157819
1715283479
1715287582
1715749956
1716070683
1716085065
1716276300
1716665907
1716868437
1716933887
1717150383
1717328977
1717523245
1717714303
1717786416
1717789532
1718500679
1719302778
1719488291
1720223880
1720473638
1720486784
1720602141
1720994322
1721144710
1721782290
1724152575
1724368575
1725290194
1727174424
1728053247
1931024665
1943327690
2147483648
2147812613
2147878400
2148141581
2148214779
2149069336
2149713445
2149720610
2150377008
2150839091
2151296832
2151493928
2151825986
2151957572
2152292681
2152416835
2152483916
2152615485
2153076053
2153149782
2153536593
2153769774
2153921919
2153997148
2154984050
2155510394
2155695907
2155839359
2155905152
2156431496
2156681254
2156694400
2157291602
2157352326
2157739365
2159194530
2159483932
2160360191
2161168844
2162044200
2162418130
2162506037
2163123456
2164002331
2164214668
2164260606
2164260863
2566914048
2567571981
2567645179
2568240148
2568499736
2568822045
2569143845
2569151010
2570269491
2570486556
2571387972
2571723081
2571847235
2572580182
2573200174
2573352319
2575126307
2575861896
2576111654
2576722002
2576782726
2579790591
2580006591
2582553856
2583432731
2583691006
2583691263
2787649562
2789826889
2790683990
2801593470
3003121664
3003473869
3003715338
3003779597
3003852795
3004447764
3005351461
3005358626
3006477107
3006694172
3007595588
3007930697
3008054851
3008113177
3008787798
3009559935
3012069512
3015998207
3016153515
3018761472
3019640347
3019870528
3019898622
3019898879
3226034505
3226891606
3227511598
3258727484
3422763904
3425648640
3427361097
3428218198
3428990335
3430649653
3431500856
3432785840
3435428607
3640664610
3641313805
3641387003
3642885669
3642892834
3644011315
3647094143
3651069170
3653532415
3657174555
3942645760
4000533798
4043309055
4278401920
4278542285
4278584832
4281545523
4287137928
4287393810
4288423856
4288578070
4294761984
4294921100
4294960384
4294967295

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@@ -1,117 +0,0 @@
2.5 15.0
3.0 30.0
4.0 45.0
1.0 10.0
1.0 15.0
1.0 22.0
3.0 3.0 1.5 3.0
4.0 4.0 1.9 4.0
6.0 6.0 2.5 6.0
8.0 8.0 3.0 8.0
0.9 0.9
2.8 1.4 1.4 1.0
4.0 2.0 2.0 1.2
6.0 3.0 3.0 1.5
0.9 0.4
1.3 0.9
1.8 0.9
2.7 1.26
3.6 1.8
4.5 1.8
7.2 2.7
9.0 3.6
2.0 2.0
10.8 4.5
13.5 5.4
18.0 6.2
5.0 1.5
6.0 1.8
8.0 2.3
10.0 2.7
6.0 9.0
8.0 10.0
10.0 11.0
15.0 15.0
20.0 20.0
4.0 1.0
6.0 1.3
8.0 1.5
9.0 1.8
11.0 2.3
13.0 2.7
5.0 5.0
4.0 4.0
3.5 2.0
4.0 2.5
6.0 3.5
8.0 4.5
3.5 2.7
4.0 3.2
6.0 4.7
8.0 6.2
1.0 2.0
1.8 2.5
2.8 3.5
1.0 4.0
1.6 6.0
2.8 8.0
1.5 1.3
1.8 1.6
2.5 2.2
3.2 2.8
4.0 3.5
6.0 2.5
7.0 3.0
9.0 3.5
12.0 3.5
4.0 2.0 2.0 1.5
6.0 3.0 3.0 2.0
8.0 4.0 4.0 3.0
1.4 1.4
1.5 1.5
3.0 3.5 4.5 1.2
3.5 5.0 6.0 1.4
4.0 6.0 8.0 1.5
5.0 7.0 10.0 1.9
1.0 80.0
6.3 6.3
1.8 5.4
4.5 4.5
8.1 8.1
10.0 10.0
13.0 13.0
16.0 16.0
5.4 2.7
2.7 2.7
4.95 4.95
6.0 1.0
7.0 1.2
9.0 1.7
12.0 2.2
2.0 6.0
3.0 7.0
4.0 8.0
3.5 2.5
4.0 3.0
6.0 4.5
8.0 6.0
1.5 2.5
2.5 4.0
3.6 5.0
1.4 5.0
2.3 9.0
3.5 11.0
12.0 4.0
6.0 8.5 12.0 2.3
1.0 50.0
8.0 8.0
1.8 5.5
2.5 7.0
5.2 5.2
3.5 3.5
5.0 2.0
10.1 10.1
0.8 12.0
1.15 14.0
1.25 16.0
1.5 19.0

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -34,7 +34,7 @@ cd comaps
Install required packages (Ubuntu/Debian):
```bash
sudo apt install build-essential cmake qt6-base-dev qt6-svg-dev qt6-positioning-dev libicu-dev libfreetype-dev libharfbuzz-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev optipng
sudo apt install build-essential cmake qt6-base-dev qt6-svg-dev qt6-positioning-dev libicu-dev libfreetype-dev libharfbuzz-dev libxrandr-dev libxinerama-dev libxcursor-dev libxi-dev optipng python3-protobuf
```
If you plan to publish the app privately in stores check [special options](#special-cases-options).
@@ -82,6 +82,7 @@ xcode-select --install
#### Homebrew packages
```bash
brew install wget optipng cmake qt
pip3 install "protobuf<3.21"
```
#### Clone the repository

View File

@@ -41,6 +41,7 @@ sudo apt update && sudo apt install -y \
libxinerama-dev \
libxcursor-dev \
libxi-dev \
python3-protobuf \
zlib1g-dev
```
@@ -79,6 +80,7 @@ sudo dnf install -y \
qt6-qtpositioning \
qt6-qtpositioning-devel \
qt6-qtsvg-devel \
python3-protobuf \
sqlite-devel
```
@@ -96,6 +98,7 @@ sudo apk add \
qt6-qtpositioning-dev \
qt6-qtsvg-dev \
samurai \
py3-protobuf \
sqlite-dev
```
@@ -103,6 +106,7 @@ sudo apk add \
```bash
brew install cmake ninja qt@6
pip3 install "protobuf<3.21"
```
### Windows

View File

@@ -2,13 +2,12 @@
Here is the basic workflow to update styles:
1. Edit the styles file you want, e.g. [`Roads.mapcss`](../data/styles/default/include/Roads.mapcss)
2. Run the `tools/unix/generate_drules.sh` script
2. Rebuild the app or run the `tools/unix/generate_drules.sh` script
3. Test how your changes look in the app
4. Commit your edits and files changed by the script
4. Commit your edits
5. Send a pull request!
Please prepend `[styles]` to your commit message and add [Developers Certificate of Origin](CONTRIBUTING.md#legal-requirements) to it.
Files changed by the script should be added as a separate `[styles] Regenerated` commit.
Please check [a list of current styling issues](https://codeberg.org/comaps/comaps/issues?q=&type=all&sort=&labels=410439)
and ["icons" issues](https://codeberg.org/comaps/comaps/issues?q=&type=all&sort=&labels=446883).
@@ -58,8 +57,8 @@ Icons are stored in [`data/styles/default/light/symbols/`](../data/styles/defaul
1. Add an svg icon to `data/styles/default/light/symbols/` (and to `dark` too)
preferably look for icons in [collections CoMaps uses already](../data/copyright.html#icons)
2. Add icon rendering/visibility rules into `data/styles/default/include/Icons.mapcss` and to "navigation style" `data/styles/vehicle/include/Icons.mapcss`
3. Run `tools/unix/generate_symbols.sh` to add new icons into skin files
4. Run `tools/unix/generate_drules.sh` to generate drawing rules for the new icons
3. Rebuild the app
* Or run `tools/unix/generate_symbols.sh` to add new icons into skin files and `tools/unix/generate_drules.sh` to generate drawing rules for the new icons
5. [Test](#testing-your-changes) your changes
## How to add a new map feature / POI type
@@ -69,12 +68,12 @@ preferably look for icons in [collections CoMaps uses already](../data/copyright
3. Define a priority for the new feature type in e.g. [`priorities_4_overlays.prio.txt`](../data/styles/default/include/priorities_4_overlays.prio.txt) and/or other priorities files
4. Add a new icon (see [above](#how-to-add-a-new-icon)) and/or other styling (area, line..)
5. If a new POI should be OSM-addable/editable then add it to `data/editor.config`
6. Add new type translation into `data/strings/types_strings.txt`
6. Add the English string (and optionally translations e.g. for your native language) into iOS and Android type strings
e strings
7. Add search keywords into `data/categories.txt`
8. Run `tools/unix/generate_localizations.sh` to validate and distribute translations into iOS and Android
9. Add new or fix current classifier tests at `/generator/generator_tests/osm_type_tests.cpp` if you can
10. [Test](#testing-your-changes) your changes
11. Relax and wait for the next maps update :)
8. Add new or fix current classifier tests at `generator/generator_tests/osm_type_tests.cpp` if you can
9. [Test](#testing-your-changes) your changes
10. Relax and wait for the next maps update :)
## Testing your changes