..

vcpkg + CMake 설정 예시

아래는 visual studio를 이용하여 프로젝트를 만들때 사용한 방법입니다 (SFML 라이브러리 포함)

vcpkg

  • vcpkg에서 패키지 설치를 진행할때 CMake 코드에서 인코딩 버그가 있음 (libflac 패키지 등)
    윈도우의 시스템 언어 설정을 영어로 임시 변경 후 설치 진행할 것
  1. vcpkg 설치
    1. git clone https://github.com/microsoft/vcpkg.git
    2. cd vcpkg
    3. .\bootstrap-vcpkg.bat
    4. .\vcpkg integrate install
  2. vcpkg 환경 변수 등록
  3. SFML을 vcpkg로 설치
    1. vcpkg install sfml:x64-windows


CMake (GUI)

  1. 프로젝트 폴더 최상위 경로에서 CMakeLists.txt과 src 폴더 생성
  2. CMake GUI에서 source와 build 폴더 지정
  3. “Add Entry…” 버튼 클릭 후 아래와 같이 설정 Name: CMAKE_TOOLCHAIN_FILE, Type: FILEPATH Value: D:/Utility/vcpkg/scripts/buildsystems/vcpkg.cmake (vcpkg 경로에 맞게)
  4. Configure → Generate → VS로 열기
  5. VS에서 빌드 & 실행


CMakeLists.txt

cmake_minimum_required(VERSION 3.20)

project(project-1 LANGUAGES CXX)

# C++ 버전 설정
set(CMAKE_CXX_STANDARD 20)
set(CMAKE_CXX_STANDARD_REQUIRED ON)

# src 폴더 내의 모든 .cpp와 .h 파일 자동 수집
file(GLOB_RECURSE SOURCE_FILES
    "${CMAKE_CURRENT_SOURCE_DIR}/src/*.cpp"
    "${CMAKE_CURRENT_SOURCE_DIR}/src/*.h"
)

# 실행 파일 추가
add_executable(project-1 ${SOURCE_FILES})

# src 폴더를 include 경로에 추가
target_include_directories(project-1 PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/src")

# 실제 폴더 구조를 Visual Studio 필터에 반영
source_group(TREE "${CMAKE_CURRENT_SOURCE_DIR}/src" PREFIX "" FILES ${SOURCE_FILES})

# vcpkg
find_package(SFML 3 CONFIG REQUIRED COMPONENTS
    System
    Window
    Graphics
    Audio
    Network
)

# SFML3
target_link_libraries(project-1 PRIVATE
    SFML::System
    SFML::Window
    SFML::Graphics
    SFML::Audio
    SFML::Network
)