Visual Studio .vc[x]proj to CMakeLists.txt (make, Ninja ...) enabler
Elaborate Visual Studio .vcxproj / .vcproj projects to CMakeLists.txt converter, enabling Makefile or Ninja or IDE builds, i.e. full multi-platform CMake functionality (Linux, Mac, Windows...). Live Update capability: supports side-by-side tracking of evolving original proj files. Script hooks for static CMake defs, powerful definition-to-variable mappings.
Access to project data content is via git repository _only_ (it's a developer infrastructure project, thus alternatives are less suitable). Be aware of several branches available for checkout (git branch -a): "experimental_unverified" is for the daring (to start with current most featureful code), while usability of "experimental" always gets hardened via a large build.
Instructions to be found in README.txt - for ad-hoc access see Browse Code button (experimental_unverified head) -, then attempt guided installation on a .vc[x]proj-based source tree, via install_me_fully_guided.rb .
Development cooperation welcome!!
- Simplifies cross-platform (Linux, Mac, ...) porting of existing larger Visual Studio projects
- _Online_ (side-by-side) tracking of evolving original static .vc[x]proj files
- While your colleagues are working in VS/Windows only, you may use any IDE/platform supported by CMake
- Very detailed README file
- Provides a sophisticated hook script mechanism at various places in the converted CMakeLists.txt files
- Per-platform deflection of definitions, dependencies and includes via mapping files
- Automagical CMakeLists.txt re-conversion in case of changed .vc[x]proj files
- Intends to create (almost) self-hosting CMakeLists.txt files (convert-and-go)
- Minimalist-style CMakeLists.txt generation: minimizes open-coded/repeated content, configurable comment verbosity
- Supports single-configuration and multi-configuration CMake generators
- Many advanced .vcproj tags (revision control etc.) properly retained
- Fully recursive handling of Visual Studio file groups (filters), flexible optional-separate-file generation
- Currently requires CMake >= 2.6.2 (CMake 2.8.x also working well)
- Provides separate script for recursive parsing of project hierarchies (multi-process/-thread)
- Provides very flexible yet easily usable per-target install() mechanism
- Cleanly separated build parser / validator / generator stages (suitable to be extended into a Universal Build Converter)
- Powerful MIDL integration: native Win32 / Wine widl / emulated stubs modes
- Supports additional compiler functionality (currently: PDB files).
- Additionally supports multiple .vc[x]proj files within a single directory (non-recommended use case?)
- TODO: support directory hierarchy conversion via parsing of a solution (.sln) file
- TODO: improve / robustify hook script mechanism
- TODO: clever, easy support for multi-component Find scripts
- TODO: more Visual Studio / Code::Blocks / Eclipse / Xcode / ... generator support improvements
Be the first to post a review of vcproj2cmake!