[과제] 1주차) 프로젝트 작업환경 구성 정선용
Windows Native 환경에서 ThorVG 저장소를 Clone하고, MSVC + Meson/Ninja 기반으로 ThorVG를 빌드했습니다.
이후 SDL2 의존성을 구성하여 thorvg.example을 빌드하고, 몇 가지 예제들이 정상적으로 실행되는 것까지 확인했습니다.
1. 개발 환경
| 항목 | 환경 |
|---|---|
| OS | Windows 25H2 (OS Build 26200.8875) |
| Architecture | x64 |
| Compiler | MSVC 19.43.34810 |
| Build System | Meson 1.11.0 + Ninja 1.13.2 |
| pkg-config | 0.28 |
| C/C++ Package Manager | vcpkg |
| SDL2 | 2.32.10#1 (x64-windows) |
| ThorVG | 1.0.0 |
MSVC 컴파일 환경은 Visual Studio 2022의 C++를 사용한 데스크톱 개발(Desktop development with C++) 워크로드를 설치하여 구성했고, 이후 작업은 visual studio code의 powershell에서 진행했습니다.
프로젝트는 C:\dev 아래에 구성했습니다.
C:\
├─ dev\
│ ├─ thorvg\
│ ├─ thorvg.example\
│ └─ setup-thorvg.ps1
│
├─ thorvg-install\
│
└─ vcpkg\
C:\dev\thorvg: ThorVG 소스C:\dev\thorvg.example: ThorVG Example 소스C:\thorvg-install: 빌드 후 설치한 ThorVGC:\vcpkg: SDL2 의존성 관리
2. MSVC 개발 환경 구성
Visual Studio Installer에서 다음 워크로드를 설치합니다.
C++를 사용한 데스크톱 개발
(Desktop development with C++)
설치 후 Developer PowerShell for Visual Studio 2022를 실행하고 MSVC 컴파일러를 확인합니다.
cl
컴파일러 정보가 출력되면 MSVC 환경 구성이 완료된 것입니다.
3. Meson / Ninja / pkg-config 설치
이번 환경에서는 Meson, Ninja, pkg-config 설치를 위해 Chocolatey를 사용했습니다.
Chocolatey가 설치되어 있지 않은 경우 다음과 같이 설치합니다.
winget install --id Chocolatey.Chocolatey --source winget
설치 후 PowerShell을 새로 실행하여 확인합니다.
choco --version
관리자 권한 PowerShell에서 빌드 도구를 설치합니다.
choco install meson ninja pkgconfiglite -y
설치된 버전을 확인합니다.
meson --version
ninja --version
pkg-config --version
제 환경에서는 다음 버전을 사용했습니다.
Meson 1.11.0
Ninja 1.13.2
pkg-config 0.28
4. vcpkg 및 SDL2 설치
thorvg.example에서 사용할 SDL2는 vcpkg를 통해 설치했습니다.
vcpkg 저장소를 Clone합니다.
git clone https://github.com/microsoft/vcpkg.git C:\vcpkg
vcpkg를 bootstrap합니다.
C:\vcpkg\bootstrap-vcpkg.bat
설치 여부를 확인합니다.
C:\vcpkg\vcpkg.exe version
SDL2 x64 Windows 패키지를 설치합니다.
C:\vcpkg\vcpkg.exe install sdl2:x64-windows
설치 결과를 확인합니다.
C:\vcpkg\vcpkg.exe list | Select-String sdl2
제 환경에서는 다음 버전이 설치되었습니다.
sdl2:x64-windows 2.32.10#1
5. ThorVG 저장소 Clone
개발용 디렉터리를 생성합니다.
New-Item -ItemType Directory -Force C:\dev
ThorVG 저장소를 Clone합니다.
git clone https://github.com/thorvg/thorvg.git C:\dev\thorvg
ThorVG 디렉터리로 이동합니다.
cd C:\dev\thorvg
6. ThorVG 빌드 및 설치
Meson 빌드 디렉터리를 생성합니다.
빌드한 ThorVG는 이후 thorvg.example에서 사용할 수 있도록 C:\thorvg-install 경로에 설치하도록 설정했습니다.
meson setup builddir --prefix=C:\thorvg-install
ThorVG를 빌드합니다.
meson compile -C builddir
빌드 완료 후 설치합니다.
meson install -C builddir
설치 결과를 확인합니다.
Get-ChildItem C:\thorvg-install
pkg-config 파일도 확인합니다.
Get-ChildItem C:\thorvg-install\lib\pkgconfig
다음과 같이 thorvg-1.pc가 생성되어 있으면 설치가 완료된 것입니다.
C:\thorvg-install
├─ bin
├─ include
└─ lib
└─ pkgconfig
└─ thorvg-1.pc
7. ThorVG Example 빌드를 위한 환경 설정
thorvg.example에서 설치된 ThorVG와 vcpkg의 SDL2를 탐색할 수 있도록 환경 변수를 설정합니다.
먼저 pkg-config에서 ThorVG와 SDL2를 탐색할 수 있도록 경로를 추가합니다.
$env:PKG_CONFIG_PATH = "C:\thorvg-install\lib\pkgconfig;C:\vcpkg\installed\x64-windows\lib\pkgconfig"
ThorVG Header 검색 경로를 추가합니다.
$env:INCLUDE = "C:\thorvg-install\include;$env:INCLUDE"
실행 시 ThorVG와 SDL2 DLL을 찾을 수 있도록 PATH를 추가합니다.
$env:PATH = "C:\thorvg-install\bin;C:\vcpkg\installed\x64-windows\bin;$env:PATH"
pkg-config에서 ThorVG와 SDL2가 정상적으로 탐색되는지 확인합니다.
pkg-config --modversion thorvg-1
pkg-config --modversion sdl2
제 환경에서는 다음과 같이 확인되었습니다.
ThorVG 1.0.0
SDL2 2.32.10
8. 환경 설정 스크립트 구성
새로운 PowerShell을 실행할 때마다 환경 변수를 다시 입력하지 않도록 환경 설정을 PowerShell 스크립트로 구성했습니다.
다음 명령으로 C:\dev\setup-thorvg.ps1 파일을 생성합니다.
@'
$env:VCPKG_ROOT = "C:\vcpkg"
$env:PKG_CONFIG_PATH = "C:\thorvg-install\lib\pkgconfig;C:\vcpkg\installed\x64-windows\lib\pkgconfig"
$env:INCLUDE = "C:\thorvg-install\include;$env:INCLUDE"
$env:PATH = "C:\thorvg-install\bin;C:\vcpkg\installed\x64-windows\bin;$env:PATH"
'@ | Set-Content C:\dev\setup-thorvg.ps1
이후 새로운 Developer PowerShell for Visual Studio 2022를 실행했을 때 다음과 같이 환경을 불러올 수 있습니다.
Set-ExecutionPolicy -Scope Process Bypass -Force
. C:\dev\setup-thorvg.ps1
9. thorvg.example Clone
ThorVG Example 저장소를 Clone합니다.
git clone https://github.com/thorvg/thorvg.example.git C:\dev\thorvg.example
Example 프로젝트로 이동합니다.
cd C:\dev\thorvg.example
앞에서 만든 환경 설정을 적용합니다.
Set-ExecutionPolicy -Scope Process Bypass -Force
. C:\dev\setup-thorvg.ps1
10. thorvg.example 빌드
Meson 빌드 디렉터리를 생성합니다.
meson setup builddir
설정 과정에서 ThorVG와 SDL2가 정상적으로 탐색되는지 확인합니다.
제 환경에서는 다음과 같이 확인되었습니다.
Run-time dependency thorvg-1 found: YES 1.0.0
Run-time dependency sdl2 found: YES 2.32.10
Run-time dependency gl found: YES
GLES, WebGPU 등의 선택적인 Backend는 개발 환경에 따라 탐색 결과가 다를 수 있습니다.
ThorVG / SDL2 Dependency 탐색 결과 화면
Example 프로젝트를 빌드합니다.
meson compile -C builddir
빌드가 완료되면 생성된 Example 실행 파일을 확인할 수 있습니다.
Get-ChildItem C:\dev\thorvg.example\builddir\src\*.exe
11. Example 실행
실행 파일이 생성된 디렉터리로 이동합니다.
cd C:\dev\thorvg.example\builddir\src
Examples
TextEffects, Lottie, MaskingMethod 등 Example이 정상적으로 렌더링되는 것을 확인했습니다.
Samples 실행 화면
![]()
댓글
Discussion 원문