# vcpkg_cmake_configure The latest version of this document lives in the [vcpkg repo](https://github.com/Microsoft/vcpkg/blob/master/maintainers/ports/vcpkg-cmake/vcpkg_cmake_configure.md). Configure a CMake buildsystem. ```cmake vcpkg_cmake_configure( SOURCE_PATH [LOGFILE_BASE ] [DISABLE_PARALLEL_CONFIGURE] [NO_CHARSET_FLAG] [WINDOWS_USE_MSBUILD] [GENERATOR ] [OPTIONS ...] [OPTIONS_RELEASE ...] [OPTIONS_DEBUG ...] ) ``` `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. [ninja-build]: https://ninja-build.org/ 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`. ## Notes This command supplies many common arguments to CMake. To see the full list, examine the source. ## Examples * [zlib](https://github.com/Microsoft/vcpkg/blob/master/ports/zlib/portfile.cmake) * [cpprestsdk](https://github.com/Microsoft/vcpkg/blob/master/ports/cpprestsdk/portfile.cmake) * [poco](https://github.com/Microsoft/vcpkg/blob/master/ports/poco/portfile.cmake) * [opencv](https://github.com/Microsoft/vcpkg/blob/master/ports/opencv/portfile.cmake) ## Source [ports/vcpkg-cmake/vcpkg\_cmake\_configure.cmake](https://github.com/Microsoft/vcpkg/blob/master/ports/vcpkg-cmake/vcpkg_cmake_configure.cmake)