Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
dev:eclipse [2018/02/07 16:07]
127.0.0.1 external edit
dev:eclipse [2024/01/05 00:38] (current)
tedfelix [Include Files and Symbols]
Line 9: Line 9:
   * [[dev:eclipse-201510|Instructions for the autotools build system prior to November 2015]]   * [[dev:eclipse-201510|Instructions for the autotools build system prior to November 2015]]
  
-===== Get Rosegarden Source From SVN =====+===== Building Rosegarden from Source =====
  
-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.+Follow the steps on the [[dev:Building Rosegarden from Source]] page to get a copy of the source to work with.
  
-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:+===== Install Eclipse =====
  
-  $ mkdir rosegarden-workspace+The Eclipse IDE can be downloaded here: http://www.eclipse.org/
  
-Then get the source into a directory within the workspace dir:+download the Linux C/C++ version which is usually called something like "Eclipse IDE for C/C++ Developers" It's just tarball you can expand and then look for the "eclipse" directory with the "eclipse" binary.  That's pretty much it.
  
-  $ cd rosegarden-workspace +//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.//
-  $ svn checkout svn+ssh://userid@svn.code.sf.net/p/rosegarden/code/trunk/rosegarden rosegarden-svn +
-  $ cd rosegarden-svn+
  
-Replace "userid" with your sourceforge user ID.  See the [[dev:subversion|subversion quick start]] for more ways to download.+===== Set Up Rosegarden Source Under Eclipse =====
  
-===== Get Dependencies ===== +//Note: These instructions were developed using Eclipse 2021-03 (4.19.0).//
-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.+
  
-For build-dep's to work, you'll need to add the appropriate source repo URIs to your sources.list.  The easiest way is to use synaptic.+Eclipse prefers a directory structure with a top level for the workspace and a lower level for the project.  Something like this:
  
-  - Launch synaptic.  Install it if you need to. +  rosegarden-workspace/rosegarden-git
-  Go to Settings > Repositories +
-  - Click the Source Code checkbox.  It will display a dash. +
-  - Close.+
  
-//Note: Ubuntu 17.10 required "xhost +si:localuser:root" before synaptic would run as root.//+So, you'll want to create a new rosegarden-workspace directory and move rosegarden-git into it Assuming you are in rosegarden-git:
  
-At this point the instructions are slightly different for jack1 vsjack2.+  $ pwd 
 +  /home/ted/rosegarden-git 
 +  $ cd .. 
 +  $ mkdir rosegarden-workspace 
 +  $ mv rosegarden-git rosegarden-workspace
  
-If you are using jack2: +Unfortunatelythat makes a mess of cmake, so we'll need to delete any build directory and re-run cmake...
- +
-  $ sudo apt-get install libjack-jackd2-dev +
-  $ sudo apt-get build-dep rosegarden +
- +
-If you are using jack1this should work: +
- +
-  $ sudo apt-get build-dep rosegarden +
- +
-...and you should be ready to build. +
- +
-===== Build ===== +
- +
-//Note 11/21/2015: For the cmake build system prior to r14351, you must run the make-lrelease script manually at this point:// +
- +
-  $ scripts/make-lrelease +
- +
-//See [[https://sourceforge.net/p/rosegarden/mailman/message/34620543/|cmake and *.qm files]] on the dev mailing list The message you might see if this step is forgotten: "No rule to make target '../data/./locale/ca.qm', needed by 'src/qrc_data.cxx' Stop."// +
- +
-Now it's time to try building the Rosegarden source with cmake.  First, create a build directory and switch into it:+
  
 +  $ cd rosegarden-workspace/rosegarden-git
 +  $ rm -rf build
   $ mkdir build   $ mkdir build
   $ cd build   $ cd build
- 
-Then run cmake: 
- 
   $ cmake .. -DCMAKE_BUILD_TYPE=Debug   $ cmake .. -DCMAKE_BUILD_TYPE=Debug
  
-There may be errors when you run cmake due to missing libraries.  You'll need to track those down and re-run cmake Once cmake has run successfully to completion, you can build Rosegarden with make:+And now we are ready to create an Eclipse workspace and project around this directory structure.
  
-  $ make+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.
  
-To make sure the build was successfultry running 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 listselect "Linux GCC" Click Finish.
  
-  $ ./rosegarden+Next, Eclipse needs to know where the build directory is Select the project (rosegarden-git) in the Project Explorer on the left side then go to Project > Properties.  (There's a bug in Eclipse where sometimes this menu item is disabled.  Right-clicking on rosegarden-git and picking Properties works too.)  Select "C/C++ Build" on the left side.  In the "Build directory:" field, add "build" to the end.  The final value should be:
  
-If you have a machine with multiple cores (who doesn't these days?) you probably want to add this to the end of your .bashrc file to tell make that it can run multiple jobs simultaneously: +  ${workspace_loc:/rosegarden-git}/build
- +
-  export MAKEFLAGS="-j `nproc`" +
-   +
-This will take effect the next time you start a terminal.  It should speed up the build significantly. +
- +
-If you are doing a lot of development, consider adding this to your .bashrc file: +
- +
-  export QT_FATAL_WARNINGS=1 +
- +
-This will make sure any Qt warnings stop the run so you will notice them and fix them.  This is really helpful when working with signals and slots since the compiler has no idea whether the names of signals and slots actually exist.  Downside: there is a slight chance that this will cause Qt apps (built in debug mode) to crash when run from the command line. +
- +
-If you just need to build Rosegarden, you can stop here.  Otherwise, if you are interested in doing some development with Eclipse, read on.... +
-===== Install Eclipse ===== +
-The Eclipse IDE can be downloaded here: http://www.eclipse.org/ +
- +
-I 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.// +
- +
-===== Set Up Rosegarden Source Under Eclipse ===== +
-//Note: These instructions were developed using Eclipse 4.7 (Oxygen).// +
- +
-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.  In the upper 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. +
- +
-Next, Eclipse needs to know where the build directory is.  Select the project (rosegarden-svn) in the Project Explorer on the left side then go to Project > Properties.  (There's a bug in Eclipse where sometimes this menu item is disabled.  Right-clicking on rosegarden-svn and picking Properties works too.)  Select "C/C++ Build" on the left side.  In the "Build directory:" field, add "build" to the end.  The final value should be: +
- +
-  ${workspace_loc:/rosegarden-svn}/build+
  
 Click "Apply and Close" to close the project properties dialog. Click "Apply and Close" to close the project properties dialog.
Line 110: Line 59:
 You should now be able to build with Project > Build All (Ctrl+B). 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.  In the Project field, use the Browse... button to select "rosegarden-svn" In the C/C++ Application field, use the Search Project... button to select "rosegarden" "build/rosegarden" will appear in the field.  In the Environment tab, you'll want to add QT_FATAL_WARNINGS and set it to 1 so that Rosegarden will crash on signal/slot naming errors and other issues that can only be checked at runtime.+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.  In the Project field, use the Browse... button to select "rosegarden-git" In the C/C++ Application field, use the Search Project... button to select "rosegarden" "build/rosegarden" will appear in the field. 
 + 
 +In the Environment tab, you //may// want to add QT_FATAL_WARNINGS and set it to 1 so that Rosegarden will crash on signal/slot naming errors and other issues that can only be checked at runtime.  //[In Ubuntu 20.04 I'm getting harmless Xcb warnings in the Matrix editor that cause Rosegarden to crash.  Removing QT_FATAL_WARNINGS for now.  Retest at the next Ubuntu LTS release.]//
  
 Click 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. Click 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.
Line 117: Line 68:
  
 ===== Include Files and Symbols ===== ===== Include Files and Symbols =====
-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:+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-git" 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/x86_64-linux-gnu/qt5 
-  /usr/include/qt4/QtCore +  /usr/include/x86_64-linux-gnu/qt5/QtCore 
-  /usr/include/qt4/QtGui +  /usr/include/x86_64-linux-gnu/qt5/QtGui 
-  /usr/include/qt4/QtXml+  /usr/include/x86_64-linux-gnu/qt5/QtNetwork 
 +  /usr/include/x86_64-linux-gnu/qt5/QtPrintSupport 
 +  /usr/include/x86_64-linux-gnu/qt5/QtTest 
 +  /usr/include/x86_64-linux-gnu/qt5/QtXml 
 +  /usr/include/x86_64-linux-gnu/qt5/QtWidgets
  
-Note: For Qt5, the paths are slightly different:+You'll likely also want to add this non-Qt5 path:
  
-  /usr/include/x86_64-linux-gnu/qt5 +  /usr/include/lilv-0
-  etc...+
  
 Next, click on the # Symbols tab.  Verify that "GNU C++" is still selected.  In the Symbol box, add the following symbols and values: Next, click on the # Symbols tab.  Verify that "GNU C++" is still selected.  In the Symbol box, add the following symbols and values:
Line 136: Line 90:
 Click "Apply and Close". Click "Apply and Close".
  
-At this point you'll want to rebuild the index.  (Versions prior to Neon would prompt at this point.  In case yours doesn't...)  Right click on rosegarden-svn in the Project Explorer and select Index > Rebuild.  (This can also be accessed from the main menu: Project > C/C++ Index > Rebuild.)+At this point you'll want to rebuild the index.  (Versions prior to Neon would prompt at this point.  In case yours doesn't...)  Right click on rosegarden-git in the Project Explorer and select Index > Rebuild.  (This can also be accessed from the main menu: Project > C/C++ Index > Rebuild.)
  
 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. 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.
 +
 +//Note: Qt4 is deprecated, but for reference, the include directories were://
 +
 +  /usr/include/qt4
 +  /usr/include/qt4/QtCore
 +  /usr/include/qt4/QtGui
 +  /usr/include/qt4/QtXml
 +
  
 ===== Configuring Tabs ===== ===== Configuring Tabs =====
Line 156: Line 118:
  
 ===== Auto-Save Before Build ===== ===== Auto-Save Before Build =====
-By default, Eclipse doesn't automatically save your files when you build.  If you would prefer that behavior, go to Window > Preferences > General > Workspace.  Set the "Save automatically before build" checkbox.  This avoids build errors if you forget to save a file that you've changed.+By default, Eclipse doesn't automatically save your files when you build.  If you would prefer that behavior, go to Window > Preferences > General > Workspace > Build.  Set the "Save automatically before manual build" checkbox.  This avoids build errors if you forget to save a file that you've changed.
  
-===== Unlimited Console Buffer =====+===== Unlimited Run Console Buffer =====
 By default, Eclipse limits debug console output to 80,000 bytes.  Rosegarden generates a lot of debug output.  It's a good idea to turn this limit off.  Go to Window > Preferences > Run/Debug > Console.  Uncheck "Limit console output". By default, Eclipse limits debug console output to 80,000 bytes.  Rosegarden generates a lot of debug output.  It's a good idea to turn this limit off.  Go to Window > Preferences > Run/Debug > Console.  Uncheck "Limit console output".
 +
 +===== Massive Build Console Buffer =====
 +By default, Eclipse limits build console output to 500 lines.  This is not sufficient when things go wrong in template-land.  Go to Window > Preferences > C/C++ > Build > Console.  In the "Limit console output (number of lines)" field, enter 50000.
  
 ===== Search Editor Reuse ===== ===== Search Editor Reuse =====
Line 165: Line 130:
  
 ===== Upgrade Notes ===== ===== Upgrade Notes =====
-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 for the Indigo to Juno upgrade:+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.  Here's a list of key things to delete.  
 + Some of these might not exist depending on which version of Eclipse you are using.
  
   rosegarden-workspace/.metadata   rosegarden-workspace/.metadata
   rosegarden-workspace/RemoteSystemsTempFiles   rosegarden-workspace/RemoteSystemsTempFiles
-  rosegarden-workspace/rosegarden-svn/.cproject +  rosegarden-workspace/rosegarden-git/.cproject 
-  rosegarden-workspace/rosegarden-svn/.project +  rosegarden-workspace/rosegarden-git/.project 
- +  rosegarden-workspace/rosegarden-git/.settings
-Juno to Kepler had the same files and directories to delete along with a new one: +
- +
-  rosegarden-workspace/rosegarden-svn/.settings+
  
 ===== Ubuntu Unity Icon ===== ===== Ubuntu Unity Icon =====
 
 
dev/eclipse.1518019622.txt.gz · Last modified: 2022/05/06 16:07 (external edit)
Recent changes RSS feed Creative Commons License Valid XHTML 1.0 Valid CSS Driven by DokuWiki