[CMake] vcproj2cmake.rb script: announcing new version / hosting questions

Andreas Mohr andi at lisas.de
Thu Jun 10 13:26:21 EDT 2010


Hello all,

given great vcproj2cmake.rb work done by Jesper Eskilson (openly added in CC
given his previous mailing list activity), I was able to enhance
this wonderful script with certain extensions:

- list _all_ configuration types
- add indenting
- add per-platform configuration of definitions, dependencies and includes
- add optional includes to provide static content, thus allowing for a nice
  on-the-fly generation mode of operation _side-by-side_ existing and _updated_
  .vcproj files
- fully support recursive handling of all .vcproj file groups (filters)
- many other improvements and fixes

I also created a rough vcproj2cmake_recursive.rb to parse an existing
sub project hierarchy (this one should probably get changed
to have separate modes, either recursive directory parsing into a list file
_or_ acting on a pre-created / modified directory list file).

Given these implementations (and some hook script work, to Find / Use dependencies),
I'm now actually able to build an entire pretty large VS2005 project
(around 40 sub projects etc.) on Linux without trouble, directly after each
vcproj2cmake conversion run (since the plan is - as listed above - to be able
to get on-the-fly access to any project updates whatsoever that happen
on the Windows side).

A full-scale, final conversion of .vcproj to CMakeLists.txt isn't really feasible
in many cases (many Windows people would very understandably like to keep
proper MSVS integration of source files etc.), thus it was important to me
to write a converter which fully supports side-by-side operation
on non-Windows platforms.

I'm not certain whether the current enhanced script is self-contained,
i.e. whether the generated CMakeLists.txt is able to run
without any external configuration files present as it should (to be fixed).
It will need some more love before being distributed properly anyway, methinks.


Which leads me to the important part of my mail:

I believe that the scripts should be handled in a more prominent way now than simply
having them mentioned in the Wiki.
Thus:

a) where to host them?
  - CMake repository
  - SourceForge, gitorious, Berlios, ...

b) which license to use?
Jesper tended towards GPL-like, and I'm also less of a BSD/X11 fan


For hosting, I think it would actually be a good idea to have them in CMake repository as well,
since one could argue that there's a pretty strong match.

Coming from a proprietary project (carrying my "proprietary project" hat ;),
my preference is to be able to freely use the scripts in any proprietary project,
but to make sure that any further proprietary use is required to contribute back
any modifications once delivered to customers.
Thus licensing as GPL seems out of the question (though not entirely sure
how a special "script project" would be affected by GPL regulations),
and LGPL seems to be the goal. Rrrright!?

Both scripts are attached.

Any comments or ideas?

Thank you for a great build environment,

Andreas Mohr
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vcproj2cmake_preliminary.tar.gz
Type: application/x-gzip
Size: 10340 bytes
Desc: not available
URL: <http://www.cmake.org/pipermail/cmake/attachments/20100610/2be14384/attachment.bin>


More information about the CMake mailing list