openFrameworks IDE plugins


#1

I’ve been working on some plugins for the different IDEs we have support for, they add the possiblity to create new projects from withing the same IDE, add and remove addons… they are still experimental and not so well tested as the project generator so there might be some problems here and there please report here if you find any issue.

Visual Studio

It allows to create a new project from the file > new menu, add addons to it and then later modify the addons in the project. It doesn’t support yet creating new projects from existing code. The plugin is hosted in the official microsoft gallery for Visual Studio: https://visualstudiogallery.msdn.microsoft.com/77678909-81b8-494b-b75c-d97dd7a3eaa6 which means that can be installed directly from within Visual Studio itself.

Here’s a quick video showing how to install it and the main features.

QtCreator

We’ve just added support for QtCreator in Linux, Windows (using msys2), and osx.

For linux and osx you can run the install_template.sh script in scripts/qtcreator and it’ll install everything for you.

Under windows, copy the templates in scripts/qtcreator/templates to c:\Qt\qtcreator-3.5.0\share\qtcreator\templates.

In linux if you install qtcreator from their webpage instead of the one that comes with the distribution (at least in ubuntu) you’ll get support for the clang plugin which analizes the code while you type marking any errors more accurately than the default qtcreator static analizer. To enable it, from qt’s page:

Configuring Clang Code Model Plugin

  • Select Help > About Plugins > C++ > ClangCodeModel to enable the plugin.
  • Restart Qt Creator to be able to use the plugin.
  • Select Tools > Options > C++ > Code Model, and select the parser to use for files of each type. (Set everything to Clang)

The openFrameworks plugin allows to create new projects and add official addons through a wizard, once the project is created you can edit the .qbs project file to easily add any new addons just by adding their name in the of.addons array.

There’s a second project type in the wizard that allows to create a project from existing code.

A project created in any platform will work right away in any of the other supported platforms

Here’s a quick video showing some of the features:

Eclipse

The eclipse plugin allows to create new projects, import existing ones and add or remove addons while creating the project or once the project is created. It also configures eclipse properly so the static analizer works as well as possible, even with that there’s still some hiccups mostly related with OF importing the std namespace globally, if you explicitly add using namespace std at the beginning of each .cpp or explictly use std for every appeareance of a class that belongs to the namespace it usually works without errors.

The plugin can be installed from an eclipse site in http://openframeworks.cc/plugins/eclipse just add it in Help > Install New Software repositories and install the plugin from there, once install it’ll automatically let you know if there’s any updates (only if you are using the very latest version of eclipse otherwise you’ll need to check manually for updates in Help > Update software)

XCode

For xcode we’ve had for a while the xcode plugin that @admsyn created, it’s hosted here: https://github.com/openframeworks/OFXcodeMenu


#2

#3

Thanks a lot. I am very interested in using Qt Creator on osx.
Are there any plans to support Qt Creator on osx? And is it possible to integrate oF into qt projects?


#4

I’m going to look into making qtcreator work in osx too since there seems to be some interest in it. about using qt itself with OF i think someone recently did something similar, probably an ofAppQtWindow, and since the new OF qtcreator projects use qbs the new qt project system it should be pretty straight forward to add qt modules to it


#5

wow. this is a shock!
all at once.

Especially ability to add/remove addons from the project is really interesting.

Where do you see this going?
It looks pretty much done.

Possibilities:

  • Download openFrameworks for you / notify if new versions are available
  • ofxAddons integration (metadata about what version you’re using vs what’s out there, download addons directly, etc)
  • ofxAddonLib pattern support on Visual Studio (probably doesn’t need to handle adding/removing, but being aware of it would be handy)

#6

downloading addons would be great, we probably should figure out a common rest api or similar for ofxaddons.com so all the different tools we have can use the same format.

i think the main feature that is missing for visual studio is to create a project from existing code. i’ve been trying to make it work but the documentation for the visual studio plugin system is really scarce, once you find the right class is pretty straight forward but it’s really hard to find the exact class you need

what do you mean by ofxAddonLib pattern?


#7

Great ideas and work!

@arturo, I’m going a bit out of scope, but wouldn’t be nice to find a way to gather examples? User examples, I mean.

I know we have a specific tag here in the forum, but it feels it’s kinda “hidden”. And does not gather stuff people upload to github, like the addons do.

For example, Processing 3 now has a tab for this on its “add library” window. (I think Shiffman said it will be user contributed also.) Doing it like so, could be something in parallel with @elliotwoods’ idea.


#8

example:

Rick Barazza describes it at:
http://rbarraza.com/adding-ofxkinectforwindows2-to-a-new-or-existing-of-project/
(although he might have a couple of unnecessary steps there)

Essentially the pattern is:

  • The addon has a .vcxproj which is added to the solution
  • The addon has a .props which is added to your app project to give it any necessary settings
  • Addon settings (e.g. what files to build, include paths, libs to link, dll’s to copy, etc) are all handled by those two. Whenever any changes are made to the addon you don’t need to apply settings to your projects manually
  • You don’t need to rebuild your addon per project which includes it (quicker build times esp. for large projects)

#9

oh ok, the way it currently works is by parsing the filesystem and the addons_config.mk, the advantaqge of that is that you only need one file for all platforms, if we had visual studio projects per addon it would mean that people creating addons would need to create a vs project for them and if we add support for more build systems potentially a cmake file, a qbs, an xcode project… which would make developing multiplatform addons really hard.

I think the current way where we parse the file system and then add exceptions in the addons_config.mk file if the filesystem parsing is not enough is a good compromise.

another option would be to have some kind of tool, it could be the same plugin, which generates those project files for each platform from parsing the filesystem and the addons_config.mk


#10

Yessssss!!! I was already seriously looking at qtCreator. My time with Codeblocks is DONE.


#11

wow, good news. Cannot wait moving away from Xcode.


#12

+10
Look forward to the qt integration for oF on OSX too.


#13

i’ve just rebuilt the nightly builds to fix a problem with qt creator in the new version (i think they released it today too) and it’s now working with osx. the projects for an application are multiplatform so when you create a project it’ll compile right away in any of the other platforms


#14

This looks great! Is the code for any of the extensions available somewhere? There are two quirks I’m seeing on the VS plugin:

  • make sure to not select Create directory for solution when making a project, otherwise you’ll get the notice about the OF path being wrong
  • When removing addons, the header include paths are sometimes not removed?

Regarding the ofxAddonLib pattern, I’ve been thinking about this a bit recently. There are a couple things you can do with this approach that addon_config.mk doesn’t support, or that I can’t figure out, as I’ve been trying to set up an addon_config.mk to use with ofxKinectForWindows2. For example, the addon links against a globally-installed kinect20.lib at $(KINECTSDK20_DIR)\Lib\[x86|x64]. Normally the pg will set up the libs based on the folder structure inside the addon, but adding ADDON_LIBS += $(KINECTSDK20_DIR)\Lib\x64\kinect20.lib to the file doesn’t add anything to VS’s linker settings. Maybe it can’t resolve the environment variable path and thinks the lib doesn’t exist? Either way there’s no way to specify the architecture.

I know this has been discussed a bit here, and I agree that the additional vxproj/props files seem redundant…maybe addon_config.mk can become a little more robust so that the AddonLib isn’t necessary?


#15

i haven’t uploaded the code yet but will do soon.

regarding multiplatform libraries, right now the plugins and the project generator are able to parse the visual studio folder layout with platform/target as it’s done with opencv. i think in visual studio the order in which libraries are included is not imprtant as with gcc so it’s not so necesary to include them in the addons_config.mk, just put them in the correct folders and they’ll get included.

in any case i was planning to add support in addon_config.mk for different architectures and targets probably like:

vsWin32Debug:
    ADDON_LIBS += ...

vsx64Release
   ADDON_LIBS += ...

having the option to also add a visual studio project if it’s present in the addon would be great too since it would really be the most flexible and robust but i think most people won’t generate such projects for their addons so having support for parsing the filesystem and addons_config is the easiest for most addons mantainers since most addons can just be used without adding any metadata or project file at all


#16

Hey, that’s great! I’ve tried out QtCreatore on OSx. Creating new projects works good,it is super smooth, but I’ve some difficulties importing existing project. When I complete the wizard, i can not see any files, see screenshot. I’ve tried changing the menu view from Outline to all the others options, but the files are not displayed.

Should I open an issue?


#17

it’s working for me fine, not sure what might be going on, if you press in the issues button it’ll show if there was any error importng the project, i’ll try in osx later just in case


#18

I cannot select the right kit (at least I do not see where to select it), there is only the iOS kit available and I am getting the following error:


Also, I don’t see any files either as @edapx describes.

I am using: osx 10.11, qt creator 3.5.1


#19

you can select the kit in Qt Creator > Preferences > Build & Run > Kits. Usually there will be a default kit and you just need to modify the compiler to select clang for x86 64


#20

Thanks, the iOS kit was the default. I never noticed that since there is an option to select the right kit using the qt widgets app wizard.
Now I am getting this error: