-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathREADME.DEVELOPERS
78 lines (58 loc) · 3.69 KB
/
README.DEVELOPERS
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
The new build system has some targets that are only used for maintenance during
development work, and aren't of any interest to end users or casual followers of
the development line of code.
MAKE TARGET FUNCTION
----------- --------
ts Update translation files. Run before editing one of the .ts
files so that is is up to date before you begin work. Run
after a string freeze when making a call to translators to
begin work in preparation for a release. (Runs menu-ts
instruments-ts and autoload-ts automatically to extract
strings from autoload.rg, the menus, and presets.xml for
translation)
ts-noobsolete Update translations and drop obsolete translations. Run to
clean up any old translations after making big string changes in
the course of development. (Probably a good idea to run this
before a call to translators.)
locale Release all translations. Run after editing any of the .ts
files or applying a patch from a translator. Be sure to run
this before doing a release, because the .ts files don't get
used directly. They have to be converted into .qm files first
by this make target! (Apparently. The docs seem to make me
think otherwise, but my translations didn't work until I made
.qm files)
qrc Rebuild data/data.qrc to include all .pfa .png .qm .qss .rc
.rg .rgd .xml .xpm files under the data/ directory that have
been added to the Subversion repository. Warns you if any
files exist which have not been added to the respository, and
does not add these files. (Files must be added before they
can be built into the resource bundle so as to make it
difficult to commit a version of data.qrc that refers to files
that only exist in the developer's local working copy, which
breaks the repository for everyone else.)
tarball DEPRECATED. Use scripts/make-release-tarball instead.
========
Compiling large files
data/data.cpp is quite large (25 megabytes at this writing) and may
fail to compile on smaller systems. It can't easily be split because
it's auto-generated.
One workaround under gcc is to add the parameters "--param
ggc-min-expand=0 --param ggc-min-heapsize=4096" to that command line
(the line that `make' echoes and fails on). This sets gcc's garbage
collector to a much more aggressive setting. It will take much longer
but it will compile on smaller systems.
The command will look something like:
g++ --param ggc-min-expand=0 --param ggc-min-heapsize=4096 -c -I/usr/include/qt4/Qt3Support -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtXml -I/usr/include/qt4/QtNetwork -I/usr/include/qt4/QtCore -I/usr/include/qt4 -DQT3_SUPPORT -DLITTLE_ENDIAN=1 -g0 -O0 data/data.cpp -o data/data.o
With data/data.o existing, `make' should now succeed without problems.
NB, these parameter values are not tuned, they just worked for me.
========
Developing with emacs
Developers who use emacs may want to use the auto-insert templates.
* Arrange for the two elisp files in
/home/tehom/projects/rosegarden/rosegarden/templates to be loaded.
auto-insert-choose.el is the general package while
auto-insert-rosegarden-templates.el holds templates specific to
Rosegarden.
* Customize auto-insert-alist according to the instructions in
auto-insert-rosegarden-templates.el. The instructions in
auto-insert-choose.el will work too.