Visual Studio 2013

Now that there is a first preview version of Visual Studio 2013 out there - has anyone tried it on JUCE projects yet? Any changes needed?

Surely JUCE will work fine in it? IIRC, the only thing that needed to be done when VS2012 came out was create/add the exporter to the Introjucer to ease the transfer.

Yes - haven’t tried it yet, but MS are usually pretty good with backwards compatibility.

(Hope they haven’t changed the project file format yet again though…)

I tried it, but it failed to build a VS2012 JUCE project complaining about missing platform toolset. Perhaps they’re not shipping tools for all languages yet. Didn’t really check. Anyway, if anyone else figures anything out, let us know =)

(I’m eager to see if they’ve improved C++11 support)

[quote]I tried it, but it failed to build a VS2012 JUCE project complaining about missing platform toolset. Perhaps they’re not shipping tools for all languages yet. Didn’t really check. Anyway, if anyone else figures anything out, let us know =)

(I’m eager to see if they’ve improved C++11 support)[/quote]
“Platform toolset” is changeable in the solution; it’s merely a XML string/project flag.

This is nothing more than their desire to milk developers of yearly revenues. Don’t expect VS2013 to be significantly different.

Exactly.

I doubt the IDE will be much different, but I read their STL implementation improved some more (which, honestly, could have just been an update to VS2012).

From what I could tell is there’s more colour and the only thing of interest I saw in the preview was the cursor indicator in the scroll bar and easier access to definitions. No mention of any code or compiler changes.

Cheers,

Rail

(Mostly) Completed exporter code here.

Thanks for the help! The new exporter works great.

Bumping some _MSC_VER preprocessor checks from 1700 up to 1800 makes the JUCE code compile as well.

The 2013 IDE looks nicer than 2012, and seems to have some minor, yet much appreciated convenience improvements as well. Especially switching between header and source file, and a new peek definition feature which overlays definition instead of opening it in a new file.

Improved C++11 support also, but unfortunately not fully supported even in RTM version.

Which ones? I can’t see which check you might be talking about…?

Which ones? I can’t see which check you might be talking about…?[/quote]

Seems like it was actually in the external libFLAC rather than JUCE code, but this change is required to get juce_audio_formats to compile.

JuceLibraryCode\modules\juce_audio_formats\codecs\flac\libFLAC\stream_decoder.c : line 50

#if _MSC_VER <= 1700 || defined __BORLANDC__ /* @@@ [2G limit] */ #define fseeko fseek #define ftello ftell #endif

1700 needs to be increased to 1800

Ok, thanks!

Both stream_decoder.c and stream_encoder.c need that change btw

Thanks, I saw that.

The whole condition actually makes no sense anyway, because when it was written, it would have been true for all versions of VS that existed at the time… I suspect they meant something else by it, but not sure what.

Agreed, looks a bit odd.

Another minor thing - VS2013 complains about “GetVersionEx” being deprecated ("Deprecated. Use VerifyVersionInfo* or IsWindows* macros from VersionHelpers.). JUCE calls this function from juce_win32_SystemStats.cpp:140.

Ok, thanks, I’ll sort that out too.

VS2013 Complete JUCE Demo working.

1. Build and run "Introjucer" 

2. Open in IntroJucer the JuceDemo

3. Save Project and Open in Visual Studio (Select VS 2013 if you want)

4. Everything ran fine.