XTF
XTF

Reputation: 1101

How to generate vcproj files?

Suppose I've got a cross-platform C++ library, let's call it ylib. My primary development platform is Linux. I'd like ylib to be buildable by MSVC (2008, 2010, 11, etc).

What's the best way to do this? Do I generate .vcproj files? If so, how? Ideally I'd be able to generate them without using Windows myself. No extra dependencies should be required for Windows. Multiple variants should be build: debug dll, debug lib, release dll, release lib with dynamic runtime and release lib with static runtime.

Upvotes: 3

Views: 3583

Answers (2)

obmarg
obmarg

Reputation: 9569

You could use cmake for your build scripts. Cmake has the ability to generate visual studio project files from the cmake build scripts. So you'd just need to distribute your cmake files, then individual people using windows could generate MSVC project files from that.

Though as pointed out in the comments, it'd be difficult to guarantee that you could actually build your project under visual studio without trying it out yourself.

EDIT: Though I've just realized that you requested no extra dependencies on linux, which this would not solve. Unless you generated the vcproj files yourself using cmake, and distributed them. But personally I think it'd be better to just have the cmake dependency. It's freely available, and easy to install.

This also has the advantage of supporting whatever version of visual studio your end user happens to have, without the need for distributing several different formats.

Upvotes: 5

Martin Beckett
Martin Beckett

Reputation: 96109

You just need to understand the format of vcproj files and then write them - they are simply XML.

I don't know how well MSFT document the settings (not very if history is a guide) - so for simple projects I would just create a project in MSVC and look at what it writes.

Alternatively you could just use cmake which already does this.

Upvotes: 0

Related Questions