← 과제 목록

[과제] 1주차) 프로젝트 작업환경 구축 정선용

@jeongsunyong
  • #과제
목차

[과제] 1주차) 프로젝트 작업환경 구성 정선용

Windows Native 환경에서 ThorVG 저장소를 Clone하고, MSVC + Meson/Ninja 기반으로 ThorVG를 빌드했습니다.

이후 SDL2 의존성을 구성하여 thorvg.example을 빌드하고, 몇 가지 예제들이 정상적으로 실행되는 것까지 확인했습니다.


1. 개발 환경

항목환경
OSWindows 25H2 (OS Build 26200.8875)
Architecturex64
CompilerMSVC 19.43.34810
Build SystemMeson 1.11.0 + Ninja 1.13.2
pkg-config0.28
C/C++ Package Managervcpkg
SDL22.32.10#1 (x64-windows)
ThorVG1.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 : 빌드 후 설치한 ThorVG
  • C:\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 실행 화면

image
image image

댓글

Discussion 원문