X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ๋ฐ GTK์ ๊ฐ์ ํ๋ก์ ํธ๋ฅผ ๋น๋ํ๋ ๋ฐ ์ฌ์ฉ๋๋ Meson 1.0.0 ๋น๋ ์์คํ ์ ๋ฆด๋ฆฌ์ค๊ฐ ๊ฒ์๋์์ต๋๋ค. Meson ์ฝ๋๋ Python์ผ๋ก ์์ฑ๋์์ผ๋ฉฐ Apache 2.0 ๋ผ์ด์ ์ค์ ๋ฐ๋ผ ๋ผ์ด์ ์ค๊ฐ ๋ถ์ฌ๋ฉ๋๋ค.
Meson์ ์ฃผ์ ๊ฐ๋ฐ ๋ชฉํ๋ ํธ๋ฆฌํจ๊ณผ ์ฌ์ฉ ํธ์์ฑ์ด ๊ฒฐํฉ๋ ๊ณ ์ ์กฐ๋ฆฝ ๊ณต์ ์ ์ ๊ณตํ๋ ๊ฒ์ ๋๋ค. make ๋์ ๋น๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก Ninja ํดํท์ ์ฌ์ฉํ์ง๋ง xcode ๋ฐ VisualStudio์ ๊ฐ์ ๋ค๋ฅธ ๋ฐฑ์๋๋ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์์คํ ์๋ Meson์ ์ฌ์ฉํ์ฌ ๋ฐฐํฌ์ฉ ํจํค์ง๋ฅผ ๋น๋ํ ์ ์๋ ๋ด์ฅ ๋ค์ค ํ๋ซํผ ์ข ์์ฑ ์ฒ๋ฆฌ๊ธฐ๊ฐ ์์ต๋๋ค. ์กฐ๋ฆฝ ๊ท์น์ ๋จ์ํ๋ ๋๋ฉ์ธ๋ณ ์ธ์ด๋ก ์ค์ ๋๋ฉฐ ์ฌ์ฉ์๊ฐ ์ ์ฝ๊ณ ์ดํดํ ์ ์์ต๋๋ค(์์ฑ์์ ์๊ฐ์ ๋ฐ๋ฅด๋ฉด ๊ฐ๋ฐ์๋ ๊ท์น์ ์์ฑํ๋ ๋ฐ ์ต์ํ์ ์๊ฐ์ ์๋นํด์ผ ํจ).
GCC, Clang, Visual Studio ๋ฐ ๊ธฐํ ์ปดํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ๋ฐ Windows์์ ํฌ๋ก์ค ์ปดํ์ผ ๋ฐ ๋น๋๊ฐ ์ง์๋ฉ๋๋ค. C, C++, Fortran, Java, Rust ๋ฑ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ถํ ์ ์์ต๋๋ค. ๋ง์ง๋ง ๋น๋ ์ดํ ๋ณ๊ฒฝ ์ฌํญ๊ณผ ์ง์ ๊ด๋ จ๋ ๊ตฌ์ฑ ์์๋ง ๋ค์ ๋น๋๋๋ ์ฆ๋ถ ๋น๋ ๋ชจ๋๊ฐ ์ง์๋ฉ๋๋ค. Meson์ ๋ฐ๋ณต ๊ฐ๋ฅํ ๋น๋๋ฅผ ์์ฑํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ, ๋ค๋ฅธ ํ๊ฒฝ์์ ๋น๋๋ฅผ ์คํํ๋ฉด ์์ ํ ๋์ผํ ์คํ ํ์ผ์ด ์์ฑ๋ฉ๋๋ค.
Meson 1.0์ ์ฃผ์ ํ์ :
- Rust ์ธ์ด๋ก ํ๋ก์ ํธ๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ๋ชจ๋์ด ์์ ์ ์ผ๋ก ์ ์ธ๋์์ต๋๋ค. ์ด ๋ชจ๋์ Mesa ํ๋ก์ ํธ์์ Rust๋ก ์์ฑ๋ ๊ตฌ์ฑ ์์๋ฅผ ๋น๋ํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ๋๋ถ๋ถ์ ์ปดํ์ผ๋ฌ ๊ฒ์ฌ ๊ธฐ๋ฅ์์ ์ง์๋๋ ์ ๋์ฌ ์ต์ ์ ๋ฌธ์์ด ์ด์ธ์ ๋ฐฐ์ด์ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ด์ ๋ค์์ ์ง์ ํ ์ ์์ต๋๋ค: cc.check_header('GL/wglew.h', prefix : ['#include ', '#ํฌํจํ๋ค '])
- ์์ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ฌ์ ์ํ ์ ์๋๋ก ์๋ก์ด "--workdir" ์ธ์๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์์ ๋๋ ํฐ๋ฆฌ ๋์ ํ์ฌ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด meson devenv -C builddir --workdir ์ ์คํํ ์ ์์ต๋๋ค.
- ๋ฌธ์์ด์์ ํ์ ๋ฌธ์์ด์ ๋ฐ์์ ํ์ธํ๊ธฐ ์ํด ์๋ก์ด ์ฐ์ฐ์ "in" ๋ฐ "not in"์ด ์ ์๋์์ต๋๋ค. ์ด๋ ์ด์ ์ ๋ฐฐ์ด์ด๋ ์ฌ์ ์์ ์์์ ๋ฐ์ ์ฌ๋ถ๋ฅผ ํ์ธํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์๋ ๊ฒ๊ณผ ์ ์ฌํฉ๋๋ค. ์: fs = import('fs') if 'something' in fs.read('somefile') # True endif
- ์ฌ์ฉ ๊ฐ๋ฅํ ๋ชจ๋ ์ปดํ์ผ๋ฌ ๊ฒฝ๊ณ ์ ์ถ๋ ฅ์ ์ผ๋ "warning-level=everything" ์ต์ ์ด ์ถ๊ฐ๋์์ต๋๋ค(clang ๋ฐ MSVC์์๋ -Weverything ๋ฐ /Wall์ ์ฌ์ฉํ๊ณ GCC์์๋ ๋ณ๋์ ๊ฒฝ๊ณ ๊ฐ ํฌํจ๋๋ฉฐ ๋๋ต clang์ -Weverything ๋ชจ๋์ ํด๋นํจ).
- Rust.bindgen ๋ฉ์๋๋ ์ปดํ์ผ๋ฌ๊ฐ ์ฒ๋ฆฌํด์ผ ํ๋ ์ข ์์ฑ์ ๋ํ ๊ฒฝ๋ก๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด "์ข ์์ฑ" ์ธ์๋ฅผ ์ฒ๋ฆฌํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํฉ๋๋ค.
- java.generate_native_headers ํจ์๋ ๋ ์ด์ ์ฌ์ฉ๋์ง ์์ผ๋ฉฐ Meson์ ์ผ๋ฐ์ ์ธ ํจ์ ๋ช ๋ช ์คํ์ผ๊ณผ ์ผ์นํ๋๋ก java.native_headers๋ก ์ด๋ฆ์ด ๋ณ๊ฒฝ๋์์ต๋๋ค.
์ถ์ฒ : opennet.ru