Both sides previous revision
Previous revision
Next revision
|
Previous revision
Next revision
Both sides next revision
|
dev:eclipse [2021/04/02 01:37] tedfelix |
dev:eclipse [2022/05/28 02:18] tedfelix [Faster Builds] |
===== Set Up Rosegarden Source Under Eclipse ===== | ===== Set Up Rosegarden Source Under Eclipse ===== |
| |
//Note: These instructions were developed using Eclipse 2019-09 (4.13.0).// | //Note: These instructions were developed using Eclipse 2021-03 (4.19.0).// |
| |
Eclipse prefers a directory structure with a top level for the workspace and a lower level for the project. Something like this: | Eclipse prefers a directory structure with a top level for the workspace and a lower level for the project. Something like this: |
$ mkdir rosegarden-workspace | $ mkdir rosegarden-workspace |
$ mv rosegarden-git rosegarden-workspace | $ mv rosegarden-git rosegarden-workspace |
| |
| Unfortunately, that makes a mess of cmake, so we'll need to delete any build directory and re-run cmake... |
| |
| $ cd rosegarden-workspace/rosegarden-git |
| $ rm -rf build |
| $ mkdir build |
| $ cd build |
| $ cmake .. -DCMAKE_BUILD_TYPE=Debug |
| |
And now we are ready to create an Eclipse workspace and project around this directory structure. | And now we are ready to create an Eclipse workspace and project around this directory structure. |
| |
Launch Eclipse. It will first ask for the location of your workspace. Give it the rosegarden-workspace directory that we just created. Since this is a new workspace, you'll get the Eclipse welcome screen. In the upper right is a button for the "Workbench". Click it. | Launch Eclipse. It will first ask for the location of your workspace. Give it the rosegarden-workspace directory that we just created. Since this is a new workspace, you'll get the Eclipse welcome screen. In the upper right is a button that says "Hide" (formerly "Workbench"). Click it. |
| |
Go to File > New > Makefile Project with Existing Code. In the "Project Name" field type rosegarden-git. For the "Existing Code Location" provide the path to the rosegarden-git directory. In the Toolchain list, select "Linux GCC". Click Finish. | Go to File > New > Makefile Project with Existing Code. In the "Project Name" field type rosegarden-git. For the "Existing Code Location" provide the path to the rosegarden-git directory. In the Toolchain list, select "Linux GCC". Click Finish. |
| |
===== Faster Builds ===== | ===== Faster Builds ===== |
If your machine has multiple cores and/or hyperthreading, you'll want to set up make for multiple jobs (make's -j option). To do that within Eclipse, go to Window > Preferences > C/C++ > Build > Environment, add an environment variable MAKEFLAGS, and set it to "-j4" (or whatever is best for your hardware, the ''nproc'' command will tell you how many cores you've got). This will tell make that it can run four simultaneous compiles. | |
| If your machine has multiple cores and/or hyperthreading, you'll want to set up make for multiple jobs (make's -j option). |
| |
| To do that within Eclipse, go to Window > Preferences > C/C++ > Build > Environment, add an environment variable MAKEFLAGS, and set it to "-j4" (or whatever is best for your hardware, the ''nproc'' command will tell you how many cores you've got). This will tell make that it can run four simultaneous compiles. |
| |
| You'll probably want to do the same for the command line. Add the following to ~/.bashrc: |
| |
| <code bash> |
| export MAKEFLAGS="-j `nproc`" |
| </code> |
| |
| ===== Core Dumps ===== |
| |
| Core dumps are really helpful when Rosegarden is crashing. They can be enabled by adding the following lines to ''/etc/security/limits.conf'': |
| |
| <code> |
| * hard core unlimited |
| * soft core unlimited |
| </code> |
| |
| Reboot is required for this change to take effect. Now you will get core dumps on every crash. Note that if there already is a core dump, a new one will not be created, so be sure to delete them after you are done analyzing them. Core dumps will appear in the current working directory when Rosegarden was run. |
| |
===== Scalability Mode ===== | ===== Scalability Mode ===== |