vcproj2cmake

alpha

Visual Studio .vc[x]proj to CMakeLists.txt (make, Ninja ...) enabler

5.0 Stars (1)
0 Downloads (This Week)
Last Update:
  Browse Code Git Repository

Description

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!!

vcproj2cmake Web Site

Features

  • 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, e.g. for autoconf etc.)
  • 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: add generator support for many native compile / link tool flags
  • TODO: add generator support for precisely translated foreign-tool flags
  • TODO: improve / robustify hook script mechanism
  • TODO: clever, easy support for multi-component Find scripts
  • TODO: extend support for typical msbuild syntax features (item metadata, etc.)
  • TODO: more Visual Studio / Code::Blocks / Eclipse / Xcode / ... generator support improvements

Update Notifications





User Ratings

★★★★★
★★★★
★★★
★★
1
0
0
0
0
ease 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 5 / 5
features 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 5 / 5
design 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 5 / 5
support 1 of 5 2 of 5 3 of 5 4 of 5 5 of 5 5 / 5
Write a Review

User Reviews

There are no 3 star reviews.

Additional Project Details

Intended Audience

Developers, Information Technology

User Interface

Command-line

Programming Language

C++, Ruby

Registered

2010-06-18
Screenshots can attract more users to your project.
Features can attract more users to your project.

Icons must be PNG, GIF, or JPEG and less than 1 MiB in size. They will be displayed as 48x48 images.