Project Build Commands in Eclipse with Sweave and R - eclipse

Is there any role for the Project menu when working with StatET and Eclipse using Sweave and R?
If so, are there any learning resources that explain how this might work?
Do these menus offer anything over and above a makefile?
I'm curious to learn more about building moderately complex Sweave/LaTeX/R projects.
Specifically, the Project menu has options Clean... and Build Automatically which intrigue me.

I'm curious to learn more about building moderately complex Sweave/LaTeX/R projects. Specifically, the Project menu has options Clean... and Build Automatically which intrigue me.
Hi Jeromy, I never managed to properly setup R and Eclipse, so I will only give you a partial answer.
Generally the Clean command is used to remove the compiled files from a project, so I assume it will delete any .ps or .pdf file generated by Eclipse.
The Build automatically setting (which is an on/off switch) rebuilds the project every time you save a file.
As a side note, to generate reports I use the combo LyX + Sweave that works very well. And for R scripts I find Gedit + RGedit nice and lightweight.

I don't know the internals of Eclipse very well, but I think these menu items are there for generic Eclipse projects that can link to the utilities that build your 'project' from 'source'. Looking under Project > Properties > Builder shows one builder configured, 'R Internal' that is not configurable or editable.
Personally I've never used a makefile for Sweave document creation, instead using the External Tools menu to setup the process for building a sweave Rnw file into a PDF. (under Run > External Tools > Configure External Tools. Also see here). This has worked well for me.
Have you considered asking your question on the StatEt mailing list ?

Related

Gtkmm in Eclipse makefile project: "could not be resolved"

I am trying to migrate a custom C++ project which uses Gtkmm3.0 to Eclipse (Oxygen) on Ubuntu 16.04. The project has its own Makefile and builds fine from the terminal within Eclipse. What I have not been able to do so far is tell the indexer about Gtkmm, and I get lots of these (which is very annoying):
When I hover over the little red bugs, it says:
Type 'Cairo::RefPtr<Cairo::Context>' could not be resolved.
I have done a lot of Googling on this and found nothing so far because all answers seem to assume the project's build tools are managed by Eclipse (See this or this, for example). In my case I have a makefile project instead of an executable project and hence some options are not available to me. For example, the first links speaks about configuring the builder:
We have to add all this directories. On Eclipse select the Project->Properties menu option. Select C/C++ Build->Settings property page and GNU C++ Compiler->Directories from the Tool Settings tab. Now we have to add all directories. In my case (Makefile project) only two tabs are available there: Binary Parsers and Error Parsers.
How can I tell the Eclipse indexer I am using Gtkmm3.0?
Found the solution that works for me:
Open a terminal and enter:
pkg-config --cflags gtkmm-3.0
You will see a list of includes directories (starting with -I). These are the directories you want to add in Eclipse so that it can locate the Gtkmm symbols in the editor.
In Eclipse, go to:
Project -> Properties -> C++ General -> Paths and Symbols
In the Includes tab, select GNU C++. You need to add here add the include directories found in step 1. There is no automated way to do this, yo must enter them one by one.
One trick that can save you some time is to edit manually the Eclipse project setting XML file and add the include directories directly in the XML file. By the end, you should have something that looks like this:
That did it for me, hope this helps!

Recovery of Qt4 Designer Integration with PyDev for Eclipse neon.2

My Eclipse Neon.2 crashed recently and now the integration of PyQt, in particular the integration with Qt4 Designer seems to have become corrupted. It was the case that I could open a *.ui file from Neon.2 to Qt Designer, make some changes & then run (from Neon.2) a *.py file which accesses the variables created in Qt4D. Now python fails on any new variables I add in Qt4D, but is ok with those created before the crash. I suspect the PyDev integration in my Neon.2 has been corrupted such that the auto pyuic4 does not get run. Question. How do I get out of this mess, eg re-install PyDev in Eclipse (or some other way perhaps)?
Well, PyDev didn't actually do anything automatic in this regard (i.e.: by default it doesn't translate .ui files to .py files with pyiuc4).
The way to do that automatically would be creating a custom builder (right click a project > properties > builders > new > program) and then configure it to run some program which would check if it was a .ui file changed and call pyuic4 on it.
Eclipse external tool for Qt .ui to .py with pyuic has something you could probably use.
Not sure how it worked before for you though... maybe some co-worker had it configured for you or your project already had those settings saved?
Well this does what I wanted:
qtcreator_file = "test1.ui" # Enter file here.
Ui_Dialog, QtBaseClass = uic.loadUiType(qtcreator_file)
My guess is it basically runs something like pyuic4 this avoiding running ones self after having made changes is QtDesigner.

understand complex ant build files

I have a quite complex ant build system comprised of many build.xml files in different folders. I want to crack on it.
Is there any IDE support (in Eclipse or Intellij) for me to jump to target definitions, taskdefs' definitions, macrodefs' etc.?
Besides "ant -v", any other way to ease the understanding of the flow of target execution?
Thank you.
In 2007, I wrote an article on the options to display Ant targets and dependencies visually. I think they will still work. I also had to deal with a large Ant codebase and the visualization really helped. (I used a tiny Ant build for the article but the tools do scale well.)
The default eclipse distribution contains an Ant XML Editor which helps navigating Ant files. Simply right click the Ant file and select "open with -> Other -> Ant Editor".
You can jump to target definitions by pressing CTRL and clicking on it. You can also set breakpoints in your ant scripts. If you start the ant script in debug mode from eclipse, execution will stop at your breakpoints and you can debug your ant script like you would any other code.

Specific plugins per workspace

I came across this post and wondered if there is a way to activate only a few of all of my installed plugins depending on the workspace I currently work in.
For example - If I organized my workspaces like this
/workspaces
/java
/jee
/php
...
I don't need the Android-Plugin if I'm working on my Java EE-Projects and so on.
I also came accross this, suggesting to deactivate some capabilities for each workspace. But this not an option, as apparently no plugin is registered as capability.
Thanks, m
Edit: BTW, I am using Eclipse 3.5 Galileo
Maybe you can achieve your goal but it needs lots of "customization work" so I would not do it for myself :)
Create a "minimal" Eclipse install with plugins you use all of your workspaces.
Create one dropins folder for every workspace and put all of your "workspace-specific plugins" into that folder.
Create an Eclipse shortcut for all workspaces and use something like "-data _workspacedir_ -vmargs -Dorg.eclipse.equinox.p2.reconciler.dropins.directory=_dropindir_" in the shortcut.
Start eclipse with one of your new shortcuts.
Note that in this case you cannot switch workspace within Eclipse, you have to close the current one and start the new one using the corresponding shortcut.
UPDATE: I have found some Eclipse feature request for making this kind of setup easier if they will be implemented:
Software Update must allow to install plug-ins into extension location
Support for multiple bundle pools
You can use a different configuration folder for each Eclipse instance using the -configuration option when starting Eclipse.
On Windows, I would use a batch file (e.g. run-eclipse.cmd) which looks a bit like this (a bit different on Unix, more complex on OS X because of the app packaging):
eclipsec.exe -clean -configuration configs/%1/configuration
Execute it with your environment ID (e.g. run-eclipse.cmd java). I use eclipsec because I need the console output, but you can use the plain eclipse.exe executable. The -clean is not mandatory either.
Under my Eclipse installation folder, I will have a configs folder and under this folder I will have multiple configurations. Each config folder can have its' own plugins and folders. AFAIK, if you install plugins they will be installed in your configuration folder and not your main installation folder.
The structure you get is like this:
Eclipse Folder
plugins
features
configs
java
plugins
features
configuration
Eclipse plugins are expected to start only as needed, in a lazy manner. I'm not saying that all behave exactly that way, but if you write your own plugin, you'll see this is how the technology works, your plugin gets called only as needed.
So in Eclipse, if you configure your starting Perspective (Java for me) to have only the Views you need, the plugins that are used for other views should not be started.
To do this, take the view away and save your perspective (Windows - Save perspective as).
In addition, in Ganymede, in Windows - Preferences - General - Startup and Shutdown,
there is a list of plugins that should be started on startup, so you can edit that list.
I didn't try to see if this works per workspace though.
Although my solution won't let you install plugins per workspace but will solve the problem.
The best way i found to do this is using different eclipse copies:
Extract officialeclipse.zip to two different places and install plugins you like per eclipse.
A bit late answer but if you want to manage many workspaces shortcut the following tool is very simple and helpful : http://www.xdreamteam.ch/downloads/eclipselauncher/
I use it for sorting my projects by customers and workspaces, and it launch the right workspace with all the necessary configurations needed for each.

Forcing Eclipse to generate standard Unix makefiles

I have an Eclipse project I've been working on for some time now, and I'd like to open source it. But to do that I'd like to have a clean Makefile like the majority of other open source programs. I understand I could make my own, but it would be better if Eclipse could manage it for me. Getting Eclipse to generate a CMake file would be even better, but I can settle for a plain makefile if that is easiest. So, how can I get Eclipse to do this? There are a few posts on the internet that suggest selecting "Managed make" when creating a project, but they were from a few years ago and are outdated. When I try to create a C project, there is the option to create a "Makefile project", but it creates the makefile in a folder called "Linux GCC" and makes everything cluttered. Any suggestions?
I've been a *nix guy for 25+ years and am a big fan of make. However, making your Eclipse project dependent upon make is going to exclude the Mac and Windows community. Why don't you just export the Eclipse project and open source it as an Eclipse project? Then users can can have it ready to extend if they choose. You didn't specify the language your project is written in, if it's Java (pretty common for Eclipse) why not create an ant build file for the project?
Just a thought.
I ended up just creating a CMake project by hand. CMake files are really not that hard to make, and it's a lot easier than trying to get Eclipse to do it for you. Plus, they're cross-platform.
Would a CMakeBuilder eclipse plugin, associated with this tutorial be a good fit for what you are trying to do?
The end result would be something like:
(source: vtk.org)
If you've been building your project using the Debug configuration the makefile Eclipse generates is stored in the Debug folder of your project (or the Release folder if you've built it using the release configuration).