#windows11에서 진행함
conda create -n meson_test -y python==3.12.12
conda activate meson_test
pip install meson ninja
로 환경을 만들어주고 필요한 종속성을 설치한다.
#include <iostream>
int main() {
std::cout << "Hello, Meson Build!" << std::endl;
return 0;
}
와 같은 간단한 코드를 작성한다.(test.cpp)
그리고 meson.build 라는 파일을 작성한다.
# 프로젝트 이름: tutorial, 언어: cpp
project('tutorial', 'cpp')
# 실행 파일 이름: demo, 소스: test.cpp
executable('demo', 'test.cpp')
meson 빌드는 항상 설정(setup) 과 컴파일(compile) 두 단계로 나뉜다.
meson setup builddir
로 설정을 진행한다.

와 같이 x64 Native Tool Command Prompt 를 실행한다.

그리고 다음 커맨드를 통해 컴파일을 완료한다.
meson compile -C builddir


다음과 같이 찍먹을 완료했다.
좋아 이제 실전에 돌입한다.
gvsbuild를 빌드해보려고 한다.
https://github.com/wingtk/gvsbuild
pip install gvsbuild
cd \
gvsbuild build gtk4 --build-dir Q:\gtk-build --enable-gi

7분 정도 걸렸다

이제 다음 코드를 입력한다.
#include <gtk/gtk.h>
static void activate(GtkApplication* app, gpointer user_data) {
GtkWidget* window;
window = gtk_application_window_new(app);
gtk_window_set_title(GTK_WINDOW(window), "축하합니다! 윈도우에서 GTK4 성공!");
gtk_window_set_default_size(GTK_WINDOW(window), 400, 300);
gtk_widget_show(window);
}
int main(int argc, char** argv) {
GtkApplication* app;
int status;
app = gtk_application_new("org.gtk.example", G_APPLICATION_DEFAULT_FLAGS);
g_signal_connect(app, "activate", G_CALLBACK(activate), NULL);
status = g_application_run(G_APPLICATION(app), argc, argv);
g_object_unref(app);
return status;
}
main.cpp
project('gtk_hello', 'c', 'cpp',
version : '0.1',
default_options : ['cpp_std=c++17'])
# 방금 우리가 빌드한 GTK4를 찾으라고 지시
gtk_dep = dependency('gtk4')
executable('gtk_hello',
'main.cpp',
dependencies : gtk_dep,
win_subsystem : 'console')
meson.build
set PKG_CONFIG_PATH=Q:\gtk-build\gtk\x64\release\lib\pkgconfig
set PATH=%PATH%;Q:\gtk-build\gtk\x64\release\bin
#Meson으로 VS 솔루션 만들기
meson setup build_vs --backend=vs --wipe


sln을 선택한다.


한글이 깨졌다
meson.build 파일을 열고 project() 바로 밑에 아래 코드를 추가한다.
project('gtk_hello', 'c', 'cpp',
version : '0.1',
default_options : ['cpp_std=c++17'])
# [추가] 윈도우(MSVC)일 경우, 소스코드와 실행파일 인코딩을 모두 UTF-8로 고정
if host_machine.system() == 'windows'
add_project_arguments('/utf-8', language : 'cpp')
endif
gtk_dep = dependency('gtk4')
executable('gtk_hello',
'main.cpp',
dependencies : gtk_dep,
win_subsystem : 'console')
meson setup build_vs --reconfigure

고쳐진다.
