Table of Contents
To get started we'll need the source code for Rosegarden. We can get a copy of it from sourceforge using subversion (svn). Since we are going to use the source with Eclipse, we'll need to make sure that we set up the directories in a way that will make Eclipse happy.
Eclipse likes to have a directory for its “workspace” and a directory within the workspace for the “project”. So I usually create a workspace directory like this:
$ mkdir rosegarden-workspace
Then I get the source into a directory within the workspace dir:
$ cd rosegarden-workspace $ svn checkout svn+ssh://firstname.lastname@example.org/p/rosegarden/code/trunk/rosegarden rosegarden-svn $ cd rosegarden-svn
Replace “userid” with your sourceforge user ID. See the subversion quick start for more ways to download.
In order to successfully build Rosegarden, there are a number of libraries you'll need. If you are using a distro with apt (Ubuntu, Debian…), you can try getting the build-dep's for Rosegarden. This should get you very close to being able to build.
$ sudo apt-get build-dep rosegarden
Now it's time to try configuring the Rosegarden source. First we need to get everything set up to run configure:
$ make distclean
It's ok if you get an error about “no makefile” on the previous step.
$ sh ./bootstrap.sh
Now we should be able to run configure. Here's how I run it with Ubuntu 11.10 32-bit. I need the ”–with-qtlibdir” option because Ubuntu puts the Qt libraries in an architecture-specific location:
$ ./configure --enable-debug --with-qtlibdir=/usr/lib/i386-linux-gnu
With Ubuntu 12.10 64-bit:
$ ./configure --enable-debug --with-qtlibdir=/usr/lib/x86_64-linux-gnu
There may be errors when you run configure due to missing libraries. You'll need to track those down and re-run configure. Once configure has run successfully to completion, you can build Rosegarden with make:
The Eclipse IDE can be downloaded here: http://www.eclipse.org/
I usually download the Linux C/C++ version which is usually called something like “Eclipse IDE for C/C++ Developers”. It's just a tarball you can expand and then look for the “eclipse” directory with the “eclipse” binary. That's pretty much it.
NOTE: If you upgrade your OS, it's a good idea to wipe out your Eclipse install and start fresh. There are config files within the Eclipse install directory that can get out of sync and cause trouble with a new OS.
Note: These instructions were developed using Eclipse 4.2 (Juno).
Since we set up the directory structure in a way that Eclipse likes, getting Eclipse to find the source and work with it is easy. Launch Eclipse. It will first ask for the location of your workspace. Give it the rosegarden-workspace directory that we created earlier. Since this is a new workspace, you'll get the Eclipse welcome screen. On the far right is a button for the “Workbench”. Click it.
Go to File > New > Makefile Project with Existing Code. In the “Project Name” field type rosegarden-svn. For the “Existing Code Location” provide the path to the rosegarden-svn directory. In the Toolchain list, select “Linux GCC”. Click Finish. You should now be able to build with Project > Build All (Ctrl+B).
To run the program, you'll need to set up a Run Configuration. Go to Run > Run Configurations. Select “C/C++ Application” and hit the New button. Set the “Project:” field by hitting the “Browse…” button and selecting rosegarden-svn. Click Apply and then Run to test. You should now be able to run with Run > Run (Ctrl+F11). You should also be able to debug with F11 or Run > Debug.
If you get an error about “The selection cannot be launched, and there are no recent launches,” you need to go back into the Run Configuration and hit the Run button in there to establish the first run. That will then be used each time F11 or Ctrl-F11 are pressed.
To make sure Eclipse is aware of the various Qt include files, we need to tell Eclipse where the Qt includes are located. Select the “rosegarden-svn” project in the Project Explorer and go to File > Properties. In the “type filter text” box, type “paths” and hit enter. This should get you quickly to Paths and Symbols. Click on the “Includes” tab and then the “GNU C++” language. In the “Include directories” box, add the following:
/usr/include/qt4 /usr/include/qt4/QtCore /usr/include/qt4/QtGui /usr/include/qt4/QtXml
When asked if you “wish to rebuild” the index, click “Yes”. Then click “Ok” to dismiss the properties dialog. It will take some time for Eclipse to rebuild the index. The “C/C++ Indexer” indicator at the bottom of the window will let you know how far along the process is.
Rosegarden coding standards call for using spaces instead of tabs. To configure Eclipse, you'll need to make changes in two places.
First, the editor. Go to Window > Preferences > General > Editors > Text Editors. Here you will find an “Insert spaces for tabs” checkbox. Make sure it is checked.
Second, the code formatter. Go to Window > Preferences > C/C++ > Code Style > Formatter. Make sure the “Profile name” is “K&R [built-in]”. Click on the “Edit…” button next to the profile name. In the Indentation tab, set “Tab policy” to “Spaces only”. Change the “Profile name” to “K&R with spaces”. Click on Ok and Ok.
Now all your tabs will be spaces.
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 ”-j 4” (or whatever is best for your hardware, the nprocs command will tell you how many cores you've got). This will tell make that it can run four simultaneous compiles.
With large source files, many of Eclipse's features are disabled by something called “scalability mode”. Since Rosegarden has some rather large source files, this can be a problem. To adjust, go to Window > Preferences > C/C++ > Editor > Scalability. Increase the “number of lines” field from 5000 to 10000. If you end up seeing the scalability mode alert dialog, you can always increase this number even further.
When upgrading to a new version of eclipse, it's a good idea to delete all the Eclipse config files in your workspace and project so the new version can start fresh. You'll have to go through all the configuration again, but things should be a bit more stable. Key things to delete (Indigo to Juno):
rosegarden-workspace/.metadata rosegarden-workspace/RemoteSystemsTempFiles rosegarden-workspace/rosegarden-svn/.cproject rosegarden-workspace/rosegarden-svn/.project
It appears that adding an icon to the dash still requires gnome-desktop-item-edit. See the “Unity Icon” section in the “Ubuntu 11.10 Issues” below for details.
When you hover over an identifier in Eclipse, you'll get a tooltip that provides some helpful information about that identifier. However, with Ubuntu 11.10's Ambiance theme, the tooltip background color is black, and Eclipse doesn't handle this correctly. It tries to display black-on-black text, which is just a little tough to read.
First, make sure you are using the Ambiance theme. Go to System Settings > Appearance and note that the theme in the lower right is “Ambiance”.
What about the other Ubuntu 11.10 themes? Radiance has the same problem. The HighContrast theme does not have this problem, but it's really ugly. And while HighContrastInverse does at least provide almost readable black on blue tooltip text, it is also pretty ugly. So, to avoid hacking anything, you could try HighContrast. But I'm betting you won't like it.
The solution I use is to hack the Ambiance theme to change the tooltip foreground color to black and the background color to white. To do this, you'll need to edit the following three files:
/usr/share/themes/Ambiance/gtk-3.0/settings.ini /usr/share/themes/Ambiance/gtk-3.0/gtk.css /usr/share/themes/Ambiance/gtk-2.0/gtkrc
Search within those files for “tooltip” and you should find “tooltip_bg_color” and “tooltip_fg_color”. The syntax of each of these files is a little different, but should be pretty clear. Just change tooltip_bg_color to #ffffff and tooltip_fg_color to #000000.
You might need to log out and back in, but once these changes are picked up, tooltips in Eclipse will work fine.
If you want Eclipse available as a unity icon, you'll have to add a .desktop file to /usr/share/applications. The easiest way is to use the GNOME desktop item editor:
sudo apt-get install gnome-panel sudo gnome-desktop-item-edit /usr/share/applications --create-new
Give it the name “Eclipse”. Point it to the eclipse binary in the eclipse install directory. And finally, use the icon that is in the eclipse install directory. Click close, and Eclipse will now appear in the dash. You can even drag and drop it onto the launcher if you wish.
There are several other ways to add an application to the dash. See this page for more: