You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
환경
1. 저장소 클론
ThorVG 메인 레포(thorvg/thorvg)를 클론했다.
2. 필요 패키지 설치 확인
빌드에 필요한 도구들이 이미 있는지 먼저 점검했다.
brew,pkg-config(2.5.1),sdl2(정확히는sdl2-compat2.32.70)는 이미 설치되어 있었음.meson,ninja는 없어서(command not found) 별도 설치 필요.meson 1.11.2,ninja 1.13.2정상 확인.3. ThorVG 소스 빌드 & 설치
cd thorvg meson setup builddir ninja -C builddir sudo ninja -C builddir installmeson setup로그에서 빌드 옵션 요약을 확인:ninja -C builddir로238/238오브젝트 링크 완료 →libthorvg-1.1.dylib생성.sudo ninja -C builddir install로 시스템에 설치. 설치 경로는 Homebrew 기본 prefix인/opt/homebrew하위./opt/homebrew/lib/libthorvg-1.1.dylib/opt/homebrew/include/thorvg-1/thorvg.h/opt/homebrew/lib/pkgconfig/thorvg-1.pc← 이후 example 빌드에서 이걸 찾게 됨4. thorvg.example 레포 클론
5. example meson setup
핵심 확인 포인트 — 의존성이 제대로 잡히는지:
thorvg-1,sdl2,gl은 정상 탐지.glesv2(OpenGL ES),wgpu_native(WebGPU)는 시스템에 없어서 NO → 해당 백엔드를 쓰는 example만 빌드에서 제외됨. 기본 소프트웨어 렌더러 / GL 기반 example은 영향 없음.6. example 빌드
122/122타겟 전부 링크 성공. (61개 소스 → 122개 바이너리,.p접미사가 붙은 중간 산출물 포함)7. 실행 검증
용어 정리
작업하면서 헷갈렸던 개념들을 정리했다.
Meson
meson.build파일(프로젝트 설정)을 읽어서 실제 빌드에 필요한 파일(예:build.ninja)을 생성해주는 역할.meson setup builddir명령이 하는 일: 소스 트리를 분석하고, 컴파일러/의존성(OpenMP, pthread, SDL2 등)을 탐지하고,builddir폴더에 빌드 준비 파일을 만드는 것.--backend=vs,--backend=xcode옵션으로 Visual Studio나 Xcode 프로젝트 파일을 생성하는 것도 가능 (Meson이 "설정 생성기"라는 역할이라 가능한 기능).Ninja
build.ninja파일에 정의된 규칙(어떤 소스를 어떤 순서로, 어떤 플래그로 컴파일할지)을 읽어서 실행만 담당.ninja -C builddir에서-C는 "해당 디렉토리로 이동해서 실행"이라는 뜻.pkg-config /
.pc파일-I, 라이브러리 경로-L, 링크할 라이브러리명-l, 버전 등)를.pc확장자 파일로 남겨두는 관례가 있음.pkg-config --modversion thorvg-1같은 명령으로 이 정보를 조회할 수 있고, 빌드 시스템(Meson 포함)은 내부적으로 이.pc파일을 읽어서dependency('thorvg-1')같은 선언을 실제 라이브러리와 연결함.meson setup+ninja install로 설치하면thorvg-1.pc가 자동 생성되고, 이게 있어야 다른 프로젝트(thorvg.example)에서dependency('thorvg-1')로 바로 찾을 수 있음.SDL2
thorvg.example의 데모 앱들은 "렌더링 결과를 화면에 띄워서 보여주기 위한 창"이 필요해서 SDL2를 의존성으로 사용.정적/동적 라이브러리 (.dylib)
libthorvg-1.1.dylib은 macOS의 동적 라이브러리(shared library) 확장자. Linux의.so, Windows의.dll에 대응..dylib을 실행 시점에 로드해서 사용하며, 설치 경로(/opt/homebrew/lib)가 시스템의 라이브러리 탐색 경로에 포함되어 있어 별도 경로 지정 없이 바로 실행 가능했음.All reactions