The latest version of this document lives in the vcpkg repo.

Configure a CMake buildsystem.

    SOURCE_PATH <source-path>
    [LOGFILE_BASE <logname-base>]
    [GENERATOR <generator>]

vcpkg_cmake_configure configures a CMake build system for use with vcpkg_cmake_buildsystem_build and vcpkg_cmake_buildsystem_install. source-path is where the source is located; by convention, this is usually ${SOURCE_PATH}, which is set by one of the vcpkg_from_* functions. This function configures the build system for both Debug and Release builds by default, assuming that VCPKG_BUILD_TYPE is not set; if it is, then it will only configure for that build type.

Use the OPTIONS argument to set the configure settings for both release and debug, and use OPTIONS_RELEASE and OPTIONS_DEBUG to set the configure settings for release only and debug only repsectively.

By default, when possible, vcpkg_cmake_configure uses ninja-build as its build system. If the WINDOWS_USE_MSBUILD argument is passed, then vcpkg_cmake_configure will use a Visual Studio generator on Windows; on every other platform, vcpkg_cmake_configure just uses Ninja.

Additionally, one may pass the specific generator a port should use with GENERATOR. This is useful if some project-specific buildsystem has been wrapped in a CMake build system that doesn't perform an actual build. If used for this purpose, it should be set to "NMake Makefiles". vcpkg_cmake_buildsystem_build and install do not support this being set to anything except for NMake.

For libraries which cannot be configured in parallel, pass the DISABLE_PARALLEL_CONFIGURE flag. This is needed, for example, if the library's build system writes back into the source directory during configure. This also disables the CMAKE_DISABLE_SOURCE_CHANGES option.

By default, this function adds flags to CMAKE_C_FLAGS and CMAKE_CXX_FLAGS which set the default character set to utf-8 for MSVC. If the library sets its own code page, pass the NO_CHARSET_FLAG option.

LOGFILE_BASE is used to set the base of the logfile names; by default, this is config, and thus the logfiles end up being something like config-x86-windows-dbg.log. You can set it to anything you like; if you set it to config-the-first, you'll get something like config-the-first-x86-windows.dbg.log.


This command supplies many common arguments to CMake. To see the full list, examine the source.