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, within build tree!! Script hooks for static CMake defs, powerful definition-to-variable mapping.

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.

For instructions see 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 .

Devel cooperation welcome!!

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

Project Activity

See All Activity >

License

BSD License

Follow vcproj2cmake

vcproj2cmake Web Site

Other Useful Business Software
The future of PSA-RMM software for MSPs Icon
The future of PSA-RMM software for MSPs

Still using outdated MSP tools? Time to move on

SuperOps.ai is the only PSA-RMM platform powered by intelligent automation and thoughtfully crafted for the new-age MSP. The platform also helps MSPs manage their projects, clients, and IT documents from a single place.
Rate This Project
Login To Rate This Project

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

User Reviews

  • Very much thanks to the author(s)! This saved me a great deal of time in porting projects from Windows -> Mac/Linux. Most appreciated and helpful tool! A note to other developers using CMake 2.8+. You may want to edit the generated CMakeLists.txt to fix the modules/config path to use CMAKE_SOURCE_DIR instead of "./". Use the following if you get include errors: set(CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/Modules" ${CMAKE_MODULE_PATH}) set(V2C_CONFIG_DIR_LOCAL "${CMAKE_SOURCE_DIR}/cmake/vcproj2cmake")
Read more reviews >

Additional Project Details

Intended Audience

Information Technology, Developers

User Interface

Command-line

Programming Language

C++, Ruby

Related Categories

C++ Build Tools, C++ Software Distribution Software, C++ Libraries, Ruby Build Tools, Ruby Software Distribution Software, Ruby Libraries

Registered

2010-06-18