CMake 빌드 설정 사용자 지정

Visual Studio는 CMake 구성 파일을 사용하여 CMake 생성과 빌드를 수행합니다. CMakePresets.json 는 Visual Studio 2019 버전 16.10 이상에서 지원되며 권장되는 CMake 구성 파일입니다. CMakePresets.json 는 CMake에서 직접 지원되며 Visual Studio, VS Code, 연속 통합 파이프라인 및 Windows, Linux 및 Mac의 명령줄에서 CMake 생성 및 빌드를 구동하는 데 사용할 수 있습니다. 자세한 CMakePresets.json내용은 CMake 사전 설정을 사용하여 구성 및 빌드를 참조 하세요.

CMake 빌드 구성에 파일을 사용하는 CMakeSettings.json 프로젝트를 기본 경우 Visual Studio 2019 이상 버전에서는 CMake 설정 편집기를 제공합니다. 편집기를 사용하면 CMake 구성을 추가하고 설정을 쉽게 사용자 지정할 수 있습니다. 파일을 수동으로 편집하는 더 간단한 대안이 될 수 있습니다 CMakeSettings.json . 그러나 파일을 직접 편집하려는 경우 편집기의 오른쪽 위에 있는 JSON 편집 링크를 선택할 수 있습니다.

CMake 설정 편집기를 열려면 기본 도구 모음에서 구성 드롭다운을 선택하고 구성 관리를 선택합니다.

Screenshot of the CMake configuration drop-down. Manage Configurations is highlighted.

이제 왼쪽에 설치된 구성과 함께 설정 편집기가 보입니다.

Screenshot of the CMake settings editor.

왼쪽 창에는 설치된 구성(x86-Debug)이 표시됩니다. 오른쪽 창에는 선택한 구성에 대한 설정이 표시됩니다. 설정에는 구성 이름, 구성 유형(디버그로 설정), 도구 집합(msvc_x86으로 설정), CMake 도구 체인 파일(비어 있음), 빌드 루트(${env:USERPROFILE}\CMakeBuilds\${workspaceHash}\build\${name}포함), CMake 명령 인수(비어 있음), 빌드 명령 인수(-v)가 포함됩니다.

Visual Studio는 기본적으로 하나의 x64-Debug 구성을 제공합니다. 녹색 더하기 기호를 선택하여 더 많은 구성을 추가할 수 있습니다. 편집기에 표시되는 설정은 선택한 구성에 따라 달라질 수 있습니다.

편집기에서 선택하는 옵션은 라는 CMakeSettings.json파일에 기록됩니다. 이 파일은 프로젝트를 빌드할 때 CMake로 전달되는 환경 변수 및 명령줄 인수를 제공합니다. Visual Studio는 자동으로 수정 CMakeLists.txt 되지 않습니다. 사용하면 CMakeSettings.json CMake 프로젝트 파일을 그대로 유지하면서 Visual Studio를 통해 빌드를 사용자 지정할 수 있으므로 팀의 다른 사용자가 사용 중인 도구로 사용할 수 있습니다.

CMake 일반 설정

다음 설정은 일반 제목 아래에서 사용할 수 있습니다.

구성 이름

name 설정에 해당합니다. 이 이름은 C++ 구성 드롭다운에 표시됩니다. ${name} 매크로를 사용하여 경로 등의 다른 속성 값을 작성할 수 있습니다.

구성 유형

configurationType 설정에 해당합니다. 선택한 생성기의 빌드 구성 형식을 정의합니다. 현재 지원되는 값은 Debug, MinSizeRel, Release 및 RelWithDebInfo입니다. 에 매핑합니다 CMAKE_BUILD_TYPE.

도구 집합

inheritedEnvironments 설정에 해당합니다. 선택한 구성을 빌드하는 데 사용하는 컴파일러 환경을 정의합니다. 지원되는 값은 구성 형식에 따라 다릅니다. 사용자 지정 환경을 만들려면 설정 편집기의 오른쪽 위 모서리에 있는 JSON 편집 링크를 선택하고 파일을 직접 편집합니다CMakeSettings.json.

CMake 도구 체인 파일

CMake 도구 체인 파일의 경로입니다. 이 경로는 CMake에 "-DCMAKE_TOOLCHAIN_FILE = <filepath>"로 전달됩니다. 도구 체인 파일은 컴파일러 및 도구 체인 유틸리티의 위치와 기타 대상 플랫폼 및 컴파일러 관련 정보를 지정합니다. 이 설정이 지정되지 않은 경우 Visual Studio는 기본적으로 vcpkg 도구 체인 파일을 사용합니다.

빌드 루트

buildRoot에 해당합니다. CMAKE_BINARY_DIR지도 CMake 캐시를 만들 위치를 지정합니다. 지정된 폴더가 없으면 만들어집니다.

명령 인수

다음 설정은 명령 인수 제목 아래에서 사용할 수 있습니다.

CMake 명령 인수

cmakeCommandArgs에 해당합니다. CMake에 전달된 명령줄 옵션을이상 지정합니다.

빌드 명령 인수

buildCommandArgs에 해당합니다. 기본 빌드 시스템에 전달할 더 많은 스위치를 지정합니다. 예를 들어 Ninja 생성기를 사용하는 경우 -v를 전달하면 Ninja에서 명령줄을 출력하도록 강제합니다.

CTest 명령 인수

ctestCommandArgs에 해당합니다. 테스트를 실행할 때 CTest에 전달할 더 많은 명령줄 옵션을 지정합니다.

원격 빌드의 일반 설정

원격 빌드를 사용하는 Linux 같은 구성에는 다음 설정을 사용할 수도 있습니다.

rsync 명령 인수

빠르고 다양한 파일 복사 도구로 rsync전달되는 추가 명령줄 옵션입니다.

CMake 변수 및 캐시

이러한 설정을 사용하면 CMake 변수를 설정하고 에 저장할 수 있습니다 CMakeSettings.json. 빌드 시 CMake에 전달되고 파일에 있는 값을 재정의 CMakeLists.txt 합니다. CMakeGUI를 사용할 때와 똑같은 방식으로 이 섹션을 사용하여 편집에 사용 가능한 모든 CMake 변수 목록을 볼 수 있습니다. 캐시 저장 및 생성 단추를 선택하여 고급 변수(CMakeGUI별)를 포함하여 편집할 수 있는 모든 CMake 변수 목록을 봅니다. 목록을 변수 이름으로 필터링할 수 있습니다.

변수에 해당합니다. CMake에 전달된 -D name=value CMake 변수의 이름-값 쌍을 포함합니다. CMake 프로젝트 빌드 지침에서 CMake 캐시 파일에 변수를 직접 추가하도록 지정하는 경우 여기에 대신 추가하는 것이 좋습니다.

고급 설정

CMake 생성기

생성기에 해당합니다. CMake -G 스위치에 지도 사용할 CMake 생성기를 지정합니다. 이 속성은 다른 속성 값을 구성할 때 매크로(${generator})로 사용할 수도 있습니다. Visual Studio에서 현재 지원하는 CMake 생성기는 다음과 같습니다.

  • "Ninja"
  • "Unix 메이크파일"
  • "Visual Studio 16 2019"
  • "Visual Studio 16 2019 Win64"
  • "Visual Studio 16 2019 ARM"
  • "Visual Studio 15 2017"
  • "Visual Studio 15 2017 Win64"
  • "Visual Studio 15 2017 ARM"
  • "Visual Studio 14 2015"
  • "Visual Studio 14 2015 Win64"
  • "Visual Studio 14 2015 ARM"

Ninja는 유연성과 기능 대신 빠른 속도로 빌드하도록 설계되었으므로 기본값으로 설정됩니다. 그러나 일부 CMake 프로젝트는 Ninja를 사용하여 올바르게 빌드하지 못할 수 있습니다. 이 경우 CMake에서 Visual Studio 프로젝트를 대신 생성하도록 지시할 수 있습니다.

IntelliSense 모드

IntelliSense 엔진에서 사용하는 IntelliSense 모드입니다. 모드를 선택하지 않으면 Visual Studio는 지정된 도구 집합에서 모드를 상속합니다.

설치 디렉터리

CMake가 대상을 설치하는 디렉터리입니다. CMAKE_INSTALL_PREFIX에 매핑합니다.

CMake 실행 파일

파일 이름과 확장명이 포함된 CMake 프로그램 실행 파일의 전체 경로입니다. Visual Studio에서 사용자 지정 버전의 CMake를 사용할 수 있습니다. 원격 빌드의 경우 원격 머신의 CMake 위치를 지정합니다.

원격 빌드를 사용하는 Linux 같은 구성에는 다음 설정을 사용할 수도 있습니다.

원격 CMakeLists.txt 루트

루트 CMakeLists.txt 파일이 포함된 원격 컴퓨터의 디렉터리입니다.

원격 설치 루트

CMake가 대상을 설치하는 원격 머신의 디렉터리입니다. CMAKE_INSTALL_PREFIX에 매핑합니다.

원본 소스 복사

소스 파일을 원격 컴퓨터에 복사할지 여부를 지정하며, rsync 또는 sftp 중 무엇을 사용할 것인지 지정할 수 있습니다.

CMakeSettings.json 직접 편집

직접 편집 CMakeSettings.json 하여 사용자 지정 구성을 만들 수도 있습니다. 설정 편집기의 오른쪽 위에는 편집할 파일을 여는 JSON 편집 단추가 있습니다.

다음 예제는 시작점으로 사용할 수 있는 샘플 구성을 보여줍니다.

    {
      "name": "x86-Debug",
      "generator": "Ninja",
      "configurationType": "Debug",
      "inheritEnvironments": [ "msvc_x86" ],
      "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
      "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
      "cmakeCommandArgs": "",
      "buildCommandArgs": "-v",
      "ctestCommandArgs": ""
    },

JSON IntelliSense를 사용하면 CMakeSettings.json 파일을 편집할 수 있습니다.

Screenshot of the CMake JSON IntelliSense pop-up in the editor.

또한 호환되지 않는 설정을 선택하면 JSON 편집기가 그 사실을 알려줍니다.

파일의 각 속성에 대한 자세한 내용은 CMakeSettings.json 스키마 참조를 확인하세요.

Visual Studio 2017은 지정된 프로젝트에 대한 CMake 캐시를 만들기 위해 CMake를 호출하는 방법을 정의하는 여러 CMake 구성을 제공합니다. 새 구성을 추가하려면 도구 모음에서 구성 드롭다운을 선택하고 구성 관리를 선택합니다.

Screenshot of Manage configurations selected in the drop-down.

미리 정의된 구성 목록에서 다음을 선택할 수 있습니다.

Add Configuration to CMake Settings dialog list of predefined configurations.

구성을 처음 선택하면 Visual Studio에서 CMakeSettings.json 프로젝트의 루트 폴더에 파일을 만듭니다. 이 파일은 예를 들어 정리 작업 후에 CMake 캐시 파일을 다시 만드는 데 사용됩니다.

다른 구성을 추가하려면 마우스 오른쪽 단추를 클릭하고 CMakeSettings.json 구성 추가를 선택합니다.

Screenshot of the shortcut menu with Add configuration selected.

CMake 설정 편집기를 사용하여 파일을 편집할 수도 있습니다. 솔루션 탐색기 마우스 오른쪽 단추를 클릭하고 CMakeSettings.json CMake 설정 편집을 선택합니다. 또는 편집기 창 상단의 구성 드롭다운에서 구성 관리를 선택합니다.

직접 편집 CMakeSettings.json 하여 사용자 지정 구성을 만들 수도 있습니다. 다음 예제는 시작점으로 사용할 수 있는 샘플 구성을 보여줍니다.

    {
      "name": "x86-Debug",
      "generator": "Ninja",
      "configurationType": "Debug",
      "inheritEnvironments": [ "msvc_x86" ],
      "buildRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\build\\${name}",
      "installRoot": "${env.USERPROFILE}\\CMakeBuilds\\${workspaceHash}\\install\\${name}",
      "cmakeCommandArgs": "",
      "buildCommandArgs": "-v",
      "ctestCommandArgs": ""
    },

JSON IntelliSense를 사용하면 CMakeSettings.json 파일을 편집할 수 있습니다.

Screenshot of the CMake JSON IntelliSense pop-up in the editor.

"구성"에 대한 JSON IntelliSense 팝업에는 buildCommandArgs, buildRoot, cmakeCommandArgs, configurationType 등이 표시됩니다.

파일의 각 속성에 대한 자세한 내용은 스키마 참조를 참조CMakeSettings.json하세요.

참고 항목

Visual Studio의 CMake 프로젝트
Linux CMake 프로젝트 구성
원격 Linux 컴퓨터에 연결
CMake 디버깅 세션 구성
Linux 프로젝트 배포, 실행 및 디버그
CMake 미리 정의된 구성 참조