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
Cybersecurity Management Software for MSPs Icon
Cybersecurity Management Software for MSPs

Secure your clients from cyber threats.

Define and Deliver Comprehensive Cybersecurity Services. Security threats continue to grow, and your clients are most likely at risk. Small- to medium-sized businesses (SMBs) are targeted by 64% of all cyberattacks, and 62% of them admit lacking in-house expertise to deal with security issues. Now technology solution providers (TSPs) are a prime target. Enter ConnectWise Cybersecurity Management (formerly ConnectWise Fortify) — the advanced cybersecurity solution you need to deliver the managed detection and response protection your clients require. Whether you’re talking to prospects or clients, we provide you with the right insights and data to support your cybersecurity conversation. From client-facing reports to technical guidance, we reduce the noise by guiding you through what’s really needed to demonstrate the value of enhanced strategy.
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