Bugfix Visual Studio 2012 #1949

Merged
merged 34 commits into from Mar 25, 2013

8 participants

@LeoColomb
openFrameworks member

I propose this update to begin Visual Studio 2012 support, and Windows 8.

Fix issue: #1651
Linked issues: #1924, #1948, #1544, #1541, #1336, #1299

Intenal code diffs
  • All neccessary VS files
  • Some bug fixs
    • QTML
    • std::
    • make_pair template
    • POCO lib
    • ...
  • Command lines up to date

I have updated POCO lib with latest source files, to be compatible with vs2012.
I think it would be better if some libraries are updated.

@elliotwoods

amazing! a lot of work has gone into this so let's make sure we get this pulled.

Looks clean.

The bits that need checking are changes to of3dGraphics and ofTypes. But these issues have already been discussed elsewhere?

just realised my oF drive is corrupt so recloning now to test on win and osx

elliot

@kylemcdonald kylemcdonald and 3 others commented on an outdated diff Mar 17, 2013
libs/openFrameworks/utils/ofConstants.h
@@ -99,6 +100,7 @@ enum ofTargetPlatform{
#pragma warning(disable : 4267) // conversion from size_t to Size warning... possible loss of data
#pragma warning(disable : 4800) // 'Boolean' : forcing value to bool 'true' or 'false'
#pragma warning(disable : 4099) // for debug, PDB 'vc80.pdb' was not found with...
+ // warnings: http://msdn.microsoft.com/library/2c8f766e.aspx TODO: Be active with VS2012
@kylemcdonald
kylemcdonald added a line comment Mar 17, 2013

we should probably avoid adding "TODO" notes in the code, and instead post issues here on github.

@elliotwoods
elliotwoods added a line comment Mar 17, 2013

what actually is implied here? we need to be more active in terms of chasing vs2012 warnings? or are you referring to a particular warning number?

@LeoColomb
openFrameworks member
LeoColomb added a line comment Mar 17, 2013

@elliotwoods Warnings still present. That's all.

@bilderbuchi
openFrameworks member
bilderbuchi added a line comment Mar 18, 2013

+1 to what Kyle said - TODO notes should instead be new issues in the bug tracker.

@LeoColomb
openFrameworks member
LeoColomb added a line comment Mar 18, 2013

Done.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
@kylemcdonald

this is epic. @elliotwoods please let us know how it looks on your end.

i don't know the details of vs2010 versus vs2012, but is it not possible to have a single project file that will work in both?

@elliotwoods

@kylemcdonald - i think 2 seperate makes sense otherwise the project xml files will get messy with if/elses in order to link the right libs/dlls/paths

@LeoColomb
openFrameworks member

but is it not possible to have a single project file that will work in both?

Yes, I thinks it would be better in the future to combined all VS files.

i think 2 seperate makes sense otherwise the project xml files will get messy with if/elses in order to link the right libs/dlls/paths

So let migrate quietly to VS2012, and why not examine the 'combination' after.

@LeoColomb LeoColomb referenced this pull request in ofZach/projectGeneratorSimple Mar 17, 2013
Closed

Build for Visual Studio 2012 #28

@elliotwoods

agree on implement standalone vs2012 now

in vvvv we use platform defines to use the same project files for 64bit and 32bit, (which often must reference different dependencies).

it should be possible to either:
1. include a compiler version constant in the path to the .props file, therefore loading all the settings from the relevant .props file
2. include a compiler version constant in the path to each dependency (.lib, .dll). this seems tidier as we don't need multiple copies of props file for each compiler version, but requires more careful editing of the project files

@LeoColomb
openFrameworks member

@elliotwoods Good ideas. You want to do this now?

@LeoColomb LeoColomb referenced this pull request Mar 17, 2013
Closed

Bugfix Visual Studio #1950

@arturoc
openFrameworks member

this looks great, there's even modifications for the packages scripts! thanks! about vs2010 & vs2012 i think it's ok to drop support for 2010 it would be too much work to support both

@LeoColomb
openFrameworks member

about vs2010 & vs2012 i think it's ok to drop support for 2010 it would be too much work to support both

OK, so I remove completely vs2010 in #1950 ?
Done. Please see #1950 .

@elliotwoods

agreed it's too much work (even though it's obviously of value to some, e.g. me)
i guess we suggest checkout out an old version and pulling the latest libs/openFrameworks folder.

(principal work being keeping 3rd party binaries up to date and in the repo)

@bilderbuchi
openFrameworks member

nice work!
Just some nitpicking: your commit messages could really be more descriptive. Our git workflow guide points to here for a nice description how well-written commit messages should look like.

@LeoColomb
openFrameworks member

nice work!
Just some nitpicking: your commit messages could really be more descriptive. Our git workflow guide points to here for a nice description how well-written commit messages should look like.

Thanks. I will try to be more descriptive. :-)

@bakercp bakercp referenced this pull request Mar 18, 2013
Closed

Fix for osx makefiles. #1925

@bakercp
openFrameworks member

Hey there, I'm currently working on removing the osx / linux dependencies on the export folder. Basically, with the make system, it's a matter of referencing copying the shared libs directly from the libs/* folder.

Is there any chance of removing the need for the export folder on windows with this PR or is that a completely different problem?

Other discussion here:

#1949

@arturoc
openFrameworks member

sounds good, we will still need to remove it for codeblocks, also we need to be careful that this won't break old projects if we add or remove libraries in the future. for *nix is ok because we have the makefiles common config files but not sure it'll work for windows

@bakercp
openFrameworks member
@LeoColomb
openFrameworks member

Is there any chance of removing the need for the export folder on windows with this PR or is that a completely different problem?

Well, I don't really understand that you want to do, so I can't help you on this without see what you are doing with osx / linux dependencies. In addition, as bilderbuchi has said that I have to be closely with your git workflow guide, this pull request is 'BugFix', not 'Feature' or 'Enhancement'. Not? ;-)
Nevertheless, I hope I will be able to help you after.
I hope too my bad english doesn't make my comment agressive...

@LeoColomb LeoColomb referenced this pull request in openframeworks/ofSite Mar 20, 2013
Merged

Visual Studio 2012 Guide #145

@LeoColomb
openFrameworks member

Fix #1299

@kylemcdonald

just wanted to check again -- can we merge this? it looks like it's ok as it is, even though there are some improvements with how we want to handle shared libs?

@elliotwoods

+1 to 'does this merge well against our current develop branch' being the mark of a good PR.
if it does what it's supposed to do, then get it in and then let's talk about the next thing

@ofTheo

looks good to me. fine to merge.

@kylemcdonald kylemcdonald merged commit 3f17300 into openframeworks:develop Mar 25, 2013
@LeoColomb
openFrameworks member

Nice! Close #1924, #1948, #1544, #1541, #1336, #1299 and #1651

@kylemcdonald

thanks! it's a huge contribution, and all work on windows is really appreciated.

the bugs get closed automatically when the commits are merged with master, but i closed them anyway for now since it's better for release tracking.

@LeoColomb
openFrameworks member

No file on site (404). Compil error? Where is my bad code? :-)

@LeoColomb LeoColomb deleted the LeoColomb:Bugfix-vs2012 branch Mar 26, 2013
@kylemcdonald

hey leo, you're talking about this? openframeworks/ofSite#145 the site will be updated when the next release is made -- until then i'm going to leave the PR open.

@LeoColomb
openFrameworks member

No, I'm talking about nightly page. Latest compilation link obtains a 404 error.

@kylemcdonald

aha... maybe there is an error recorded in a log on the server somewhere? @arturoc do you have any more info?

@arturoc
openFrameworks member

haven0t noticed anything this morning and have already deleted the log, i'll keep an eye tomorrow

@LeoColomb
openFrameworks member

@arturoc So? :-)

@danzeeeman
openFrameworks member

so this PR completely blew away VS2010 support for existing projects.

@danzeeeman
openFrameworks member

The nightly build should fail if the build machine is using vs2010 and not v2012. I discovered you cannot link in a library built with vs2012 in vs2010. You'll get a mismatch _MSC_VER between your project and the library. Apparently vs2012 builds with the value of 1700 while vs2010 builds with 1600. If we are going to be switching support from vs2010 to vs2012 we should offer a migration script for existing projects. Currently all existing projects will fail to build if a user updates develop. I'm halfway through bringing back vs2010 and hopefully I'll push a PR tonight to restore vs2010 if no one objects. This will give us time to figure out the best way to migrate from 2010 to 2012 without causing too much headache for existing projects and users.

@LeoColomb
openFrameworks member

this PR completely blew away VS2010 support for existing projects

Yes... It's same situation for Code Blocks 10.05 - 12.11, isn't it?

we should offer a migration script for existing projects

Visual Studio 2012 automatically provides a migration tool when opening an "old" project.

@LeoColomb LeoColomb restored the LeoColomb:Bugfix-vs2012 branch Mar 31, 2013
@danzeeeman
openFrameworks member
@LeoColomb
openFrameworks member

We'll need to rebuild some of the Poco libraries with vs2012

Done in part. But if you want to rebuild it, with SSL(?), why not.

I don't think vs2012 will do this with their tool.

Not really, that's true... ;-)
If I can help you, tell me how.

@LeoColomb
openFrameworks member

Oh, and if you can rebuild tess2 too, it would be a good thing, because the lib try to find vc100.pdb instead of vc110.pdb.

tess2.lib(tess.obj) : warning LNK4099: PDB 'vc100.pdb' was not found with 'tess2.lib(tess.obj)'
@LeoColomb
openFrameworks member

@danthemellowman What do you think about my batch file?

@elliotwoods

note: (i'm sure you're already aware):

ideally we aim to move as many preferences as possible to the .props file to reduce the need for any per-project xml changes.

@danzeeeman
openFrameworks member
@arturoc
openFrameworks member

@LeoColomb i've just fixed the nightly builds, vs should be in tomorrow's version

@LeoColomb LeoColomb deleted the LeoColomb:Bugfix-vs2012 branch Apr 3, 2013
@LeoColomb
openFrameworks member

@arturoc Nice, thanks!
But still be a bit buged:

  • No VS project files
  • Presence of
    • Code::Blocks project files
    • openFrameworksCompiled/project => linuxarm v6 & v7
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment