0.061 Release

Greetings everyone !!

we’re very happy to announce the release of 0.061. This release was a big over-hall on the back end of how we develop OF and it should mean getting releases out to folks is much easier and quicker. we’re going to move also to a major (0.07, 0.08) and minor (0.061, 0.062) release system so that we can get bugs fixed quickly while focusing on larger goal issues with OF.

you can find the release on http://openframeworks.cc/download
there’s a huge list of changes, see: http://www.openframeworks.cc/openframeworks-changelog


With this release, there’s a pretty significant change to how OF projects look, and I’ll walk you through the change. The major change is that openframeworks is now complied and in a standalone project. When we began working on OF, having it uncompiled (meaning openframeworks files, like ofVideoGrabber.cpp in your project) made a great deal of sense, so that it was completely transparent, and the code is always in front of you, etc. There were some downsides, which included:

  • much longer compile times

  • redundant compiles per project (ie, ofVideoGrabber getting compiled per example)

  • larger directory sizes

  • any change to the OF library had to be carried through to OF project files (making maintenance and releasing very laborious and error prone)

what we’ve done in this release, is move to a compiled OF, using the property of IDE’s which allow you to have projects be dependent on each other. This is implemented slightly differently in each IDE, so I will talk through a few of them here, but the general idea is that project files now reference the OF library as opposed to the OF code, and that there is a meta file * that links the project and the OF library.

* on xcode, there is no meta file but it works in the same way. see more-info-here.

Since this is pretty new, I thought I’d try to document it here (we’ll be making some more detailed instructions in the next few days).

if you poke around the library folder, you will notice a new folder, called “openframeworkCompiled”:

what this folder contains are the project file (for a given IDE) that compiles OF, plus the compiled lib itself (or an empty folder if it has yet to be built).

the compiled libs (windows codeblocks):

the project that buiilds the compiled libs (windows codeblocks):

now, what we’ve done is made meta project files * that link a given example’s project (graphicsExample, openCvExample, etc) to this project file, so that if you need to rebuild openframeworks, it will do so (and you can browse the code, etc). On codeblocks, this meta file is called a workspace, on visual studio it’s called a solution. What these meta files do, is they allow you to make links between projects and show you more then one project at a time.

* again, these don’t exist for xcode but the principle is the same. more-info-here.

so what does a meta file look like? let’s take a look at codeblocks windows:

if you look at any example folder, you will see a **.cbproj **file and a .workspace. (on windows, please be sure to enable-the-display-of-extensions Both are text files (you can poke around in a text editor if you are curious, they are human readable xml). We *encourage you* to open the workspace as opposed to the project file. If you do so, you will get a project that opens like this:

the cool thing here, is that you have both your example project and the openframeworks project open at the same time. you can even unfold, poke around the OF code, etc (as before):

also, since the workspace knows that this project is dependent on the openframeworks lib project, it will recompile the openframeworks lib as necessary. (note in codeblocks, the bold shows you which project is in focus, be sure to keep the example you care about and not the library in bold by clicking it so that when you build, it builds the example).

if you don’t open the workspace (or meta file) you get a view like this:

where the source code for the example is there, but openframeworks is not :frowning: This isn’t so bad, but it’s not ideal. You can’t, for example, browse through the code and if the openframeworks project isn’t built, you’d have trouble linking.

(note, on xcode you don’t have to worry about this as there is no meta file so this is done automatically, and on VS 2008 clicking on either the project or the solution opens up the appropriate solution).

one specific problem that can happen with codeblocks in particular is that you can be easily open more then one project into a workspace, which can be mighty confusing (since codeblocks typically is setup not to run multiple instances). it might look something like this:

the trick here is to be sure to just close your workspace before you open a new project or workspace (File → close workspace):

choose not to save it if you’ve added something by accident

on visual studio, opening a project / solution should look similar:

the code is still browsable:

we hope that this change isn’t too confusing!

Please see the readme file for your appropriate IDE package, and there should be some info there for example, how to make a new project, etc. This has changed now with the introduction of the meta file, but it’s not too much work.

we hope that you have alot of fun hacking with OF and 0.061 – we’re quite happy to get this out into the world.

Wow! This is great step forward. Thank you.

Thanks, guys. Great work!
I specially like the one structure for all OSes and IDEs.
Already ported my Quase-Cinema project and it worked fine on 0.061.

Thank you all for your amazing work.

Congrats on the release, this looks awesome! From the changelog it looks like you took the time to fix a lot of the small issues, OF is getting more solid everyday! Can’t wait to see what is in store for 0.7…thanks to the whole OF team for being super dedicated as usual

Wow this is great!
This new release looks so … I don’t know … sexy? hot? gorgeous?

Thanks for all this work! :slight_smile:

Excellent!!!

heres my Xcode template http://github.com/sger/openFrameworks

file -> new project -> of Application and save to addonsExamples folder (sorry i need to find a way to fix this).