Meson ๊ฐ๋ฐ์ ์ฃผ์ ๋ชฉํ๋ ํธ๋ฆฌ์ฑ๊ณผ ์ฌ์ฉ ํธ์์ฑ์ ๊ฒฐํฉํ ๋น ๋ฅธ ์กฐ๋ฆฝ ๊ณต์ ์ ์ ๊ณตํ๋ ๊ฒ์
๋๋ค. make ์ ํธ๋ฆฌํฐ ๋์ ๊ธฐ๋ณธ ๋น๋์์๋ ํดํท์ ์ฌ์ฉํฉ๋๋ค.
์ฃผ์
- Emscripten์ ์ปดํ์ผ๋ฌ๋ก ์ฌ์ฉํ์ฌ ์น์ด์ ๋ธ๋ฆฌ์ ๋ํ ์คํ์ ์ง์์ ์ถ๊ฐํ์ต๋๋ค.
- Illumos ๋ฐ Solaris ํ๋ซํผ์ ๋ํ ์ง์์ด ํฌ๊ฒ ํฅ์๋์ด ์๋ ๊ฐ๋ฅํ๊ฒ ๋์์ต๋๋ค.
- ์์คํ ์ gettext ํดํท์ด ์ค์น๋์ง ์์ ๊ฒฝ์ฐ gettext ๊ธฐ๋ฐ ๊ตญ์ ํ ์คํฌ๋ฆฝํธ๊ฐ ๋ฌด์๋๋์ง ํ์ธํฉ๋๋ค(์ด์ ์๋ gettext๊ฐ ์๋ ์์คํ ์์ i18n ๋ชจ๋์ ์ฌ์ฉํ ๋ ์ค๋ฅ๊ฐ ํ์๋์์ต๋๋ค).
- ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ํ ์ง์์ด ํฅ์๋์์ต๋๋ค. ์ ๊ฑฐ๋ ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ ๋ ๋ฐ์ํ๋ ๋ง์ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
- ์ฌ์ ์ ์ฌ์ฉํ์ฌ ํ๊ฒฝ ๋ณ์๋ฅผ ํ ๋นํ๋ ๊ธฐ๋ฅ์ด ์ถ๊ฐ๋์์ต๋๋ค. Environment()๋ฅผ ํธ์ถํ ๋ ์ด์ ์ฒซ ๋ฒ์งธ ์์๋ฅผ ํ๊ฒฝ ๋ณ์๊ฐ ํค/๊ฐ ํ์์ผ๋ก ์ ์๋ ์ฌ์ ์ผ๋ก ์ง์ ํ ์ ์์ต๋๋ค. ์ด๋ฌํ ๋ณ์๋ ๋ง์น set() ๋ฉ์๋๋ฅผ ํตํด ๊ฐ๋ณ์ ์ผ๋ก ์ค์ ๋ ๊ฒ์ฒ๋ผ Environment_object๋ก ์ ์ก๋ฉ๋๋ค. ์ด์ "env" ์ธ์๋ฅผ ์ง์ํ๋ ๋ค์ํ ํจ์์ ์ฌ์ ์ ์ ๋ฌํ ์๋ ์์ต๋๋ค.
- ์ ํํ ๋น๋ ๋ฐฑ์๋(์: "ninja target_name")๋ก ํธ์ถํ ์ ์๋ ์๋ก์ด 1๋จ๊ณ ๋น๋ ๋์์ ์์ฑํ๋ "runtarget alias_target(target_name, depXNUMX, ...)" ํจ์๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ์ด ๋น๋ ๋์์ ๋ช ๋ น์ ์คํํ์ง ์์ง๋ง ๋ชจ๋ ์ข ์์ฑ์ด ๋น๋๋์๋์ง ํ์ธํฉ๋๋ค.
- "[properties]" ์น์ ์ sys_root ์ค์ ์ด ์๋ ๊ฒฝ์ฐ ํฌ๋ก์ค ์ปดํ์ผ ์ค์ PKG_CONFIG_SYSROOT_DIR ํ๊ฒฝ ๋ณ์์ ์๋ ์ค์ ์ด ํ์ฑํ๋์์ต๋๋ค.
- ์ง์ ๋ ํ ์คํธ ์คํฌ๋ฆฝํธ๋ก GDB๋ฅผ ์คํํ๊ธฐ ์ํด "--gdb testname" ์ต์ ์ ์ง์ ํ ๋ GDB ๋๋ฒ๊ฑฐ์ ๋ํ ๊ฒฝ๋ก๋ฅผ ๊ฒฐ์ ํ๊ธฐ ์ํด "--gdb-path" ์ต์ ์ ์ถ๊ฐํ์ต๋๋ค.
- ๋ชจ๋ ์์ค ํ์ผ๊ณผ ํจ๊ป ์ด Linter๋ฅผ ์คํํ๊ธฐ ์ํด clang-tidy ๋น๋ ๋์์ ์๋ ๊ฐ์ง๋ฅผ ์ถ๊ฐํ์ต๋๋ค. ์์คํ ์์ clang-tidy๋ฅผ ์ฌ์ฉํ ์ ์๊ณ ".clang-tidy"(๋๋ "_clang-tidy") ํ์ผ์ด ํ๋ก์ ํธ ๋ฃจํธ์ ์ ์๋์ด ์์ผ๋ฉด ๋์์ด ์์ฑ๋ฉ๋๋ค.
- Clang ํ์ฅ์ ์ฌ์ฉํ ์ข
์์ฑ('๋ธ๋ก')์ ์ถ๊ฐํ์ต๋๋ค.
๋ธ๋ก ; - ๋ง์ปค์ ์ปดํ์ผ๋ฌ ๋ณด๊ธฐ๊ฐ ๋ถ๋ฆฌ๋์ด ์์ด ๋ค์ํ ์ปดํ์ผ๋ฌ์ ๋ง์ปค ์กฐํฉ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- all_sources() ๋ฉ์๋ ์ธ์ SourceSet ๊ฐ์ฒด์ all_dependent() ๋ฉ์๋๋ฅผ ์ถ๊ฐํ์ต๋๋ค.
- run_project_tests.py์๋ ์ ํ์ ์ผ๋ก ํ ์คํธ๋ฅผ ์คํํ๊ธฐ ์ํ "--only" ์ต์ ์ด ์ถ๊ฐ๋์์ต๋๋ค(์: "python run_project_tests.py โonly fortran python3").
- find_program() ํจ์์๋ ์ด์ ํ์ํ ํ๋ก๊ทธ๋จ ๋ฒ์ ๋ง ๊ฒ์ํ๋ ๊ธฐ๋ฅ์ด ์์ต๋๋ค(๋ฒ์ ์ "-version" ์ต์ ์ ์ฌ์ฉํ์ฌ ํ๋ก๊ทธ๋จ์ ์คํํ์ฌ ๊ฒฐ์ ๋ฉ๋๋ค).
- ๊ธฐํธ ๋ด๋ณด๋ด๊ธฐ๋ฅผ ์ ์ดํ๊ธฐ ์ํด shared_library()์ ์ ์ฌํ๊ฒ vs_module_defs ์ต์ ์ด shared_module() ํจ์์ ์ถ๊ฐ๋์์ต๋๋ค.
- kconfig ๋ชจ๋์ ์ ๋ ฅ ํ์ผ ์ง์ ์ ์ํดconfigure_file()์ ์ง์ํ๋๋ก ํ์ฅ๋์์ต๋๋ค.
- "command:" ํธ๋ค๋ฌ์ ๋ํด ์ฌ๋ฌ ์ ๋ ฅ ํ์ผ์ ์ง์ ํ๋ ๊ธฐ๋ฅ์configure_file()์ ์ถ๊ฐํ์ต๋๋ค.
- ์์นด์ด๋ธ ์์ฑ์ ์ํ "dist" ๋ช
๋ น์ด XNUMX๋จ๊ณ ๋ช
๋ น ๋ฒ์ฃผ๋ก ์ด๋๋์์ต๋๋ค(์ด์ ๋ช
๋ น์ ninja์ ๋ฌถ์ฌ ์์์ต๋๋ค). ์์ฑํ ์์นด์ด๋ธ ์ ํ์ ์ ์ํ๋ "--formats" ์ต์
์ด ์ถ๊ฐ๋์์ต๋๋ค(์:
"์ค๊ฐ dist -formats=xztar,zip").
์ถ์ฒ : opennet.ru