Menu

Tree [39a720] master /
 History

HTTPS access


File Date Author Commit
 .github 2022-07-09 Richard Bown Richard Bown [a6c9f5] Create CI for Ubuntu and start for Windows
 cmake 2017-01-15 David Faure David Faure [feeac1] run update-mime-database after installing mimet...
 data 2024-09-05 Grzegorz Pruchniakowski Grzegorz Pruchniakowski [97f560] Update Polish Translation
 scripts 2024-06-05 Ted Felix Ted Felix [96528e] Updates for version 24.06
 src 5 days ago Ted Felix Ted Felix [39a720] BED: Fix crash on dialog exit
 templates 2018-01-22 D. Michael McIntyre D. Michael McIntyre [ab86f5] Update copyright to 2018
 test 2023-09-03 philip philip [b44d22] delete events in ReferenceSegment
 .gitignore 2021-04-12 Pedro López-Cabanillas Pedro López-Cabanillas [8805d3] Fix for ticket #1456, Cant export key signature...
 AUTHORS 2009-01-31 D. Michael McIntyre D. Michael McIntyre [668964] Move AUTHORS info online permanently.
 CHANGELOG 2024-06-05 Ted Felix Ted Felix [96528e] Updates for version 24.06
 CMakeLists.txt 2024-06-05 Ted Felix Ted Felix [f91b7e] Bump version to 24.12
 CONTRIBUTING 2021-04-06 Ted Felix Ted Felix [45d251] Update make-release-tarball
 COPYING 2012-03-09 D. Michael McIntyre D. Michael McIntyre [0f8f77] Patch from Dave Plater to resolve the licensing...
 Doxyfile 2021-04-22 Ted Felix Ted Felix [c59941] doxygen: Move output to build/doc
 README.DEVELOPERS 2019-07-03 Ted Felix Ted Felix [194f5c] Comments
 README.md 2024-06-05 Ted Felix Ted Felix [96528e] Updates for version 24.06
 rosegarden.spec.in 2007-04-20 Pedro Lopez-Cabanillas Pedro Lopez-Cabanillas [75c3dc] LIRC Support: add latest improvements from Toni...

Read Me

Unit tests:

* They are compiled by default in debug mode (-DBUILD_TESTING=OFF to disable
  that - not recommended)
* Run them all with `make test`
* They trigger the switch from static libs to shared libs for rosegarden's
  own code, to speed up linking.

========

Shared libs:

Note that you can still run rosegarden uninstalled, even with shared libs,
because cmake takes care of setting the RUNPATH in the rosegarden executable.
So your uninstalled shared lib will be preferred over the installed one -
unless you set $LD_LIBRARY_PATH to point to the installed one.

========

A number of scripts are available for maintenance during development work

SCRIPT            FUNCTION
-----------       --------

make-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)

                  When NOOBSOLETE=1 is set, make-ts drops 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.)

make-lrelease     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 script.

rebuild-qrc       Rebuild data/data.qrc to include all .pfa .png .qm .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.)

========

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.