๋นŒ๋“œ ์‹œ์Šคํ…œ CMake 3.21 ๋ฐ Meson 0.59 ์ถœ์‹œ

Autotools์˜ ๋Œ€์•ˆ์œผ๋กœ ์ž‘๋™ํ•˜๊ณ  KDE, LLVM/Clang, MySQL, MariaDB, ReactOS ๋ฐ Blender์™€ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๊ฐœ๋ฐฉํ˜• ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ๊ธฐ CMake 3.21์˜ ๋ฆด๋ฆฌ์Šค๊ฐ€ ๋ฐœํ‘œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. CMake ์ฝ”๋“œ๋Š” C++๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ BSD ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

CMake๋Š” ๊ฐ„๋‹จํ•œ ์Šคํฌ๋ฆฝํŒ… ์–ธ์–ด, ๋ชจ๋“ˆ์„ ํ†ตํ•ด ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•˜๋Š” ์ˆ˜๋‹จ, ์ตœ์†Œํ•œ์˜ ์ข…์†์„ฑ(M4, Perl ๋˜๋Š” Python์— ๋Œ€ํ•œ ๋ฐ”์ธ๋”ฉ ์—†์Œ), ์บ์‹ฑ ์ง€์›, ๊ต์ฐจ ์ปดํŒŒ์ผ์„ ์œ„ํ•œ ๋„๊ตฌ ์กด์žฌ, ๋นŒ๋“œ ์ƒ์„ฑ ์ง€์›์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์œผ๋กœ ์œ ๋ช…ํ•ฉ๋‹ˆ๋‹ค. ๊ด‘๋ฒ”์œ„ํ•œ ๋นŒ๋“œ ์‹œ์Šคํ…œ ๋ฐ ์ปดํŒŒ์ผ๋Ÿฌ์šฉ ํŒŒ์ผ, ํ…Œ์ŠคํŠธ ์Šคํฌ๋ฆฝํŠธ ์ •์˜ ๋ฐ ํŒจํ‚ค์ง€ ๋นŒ๋“œ๋ฅผ ์œ„ํ•œ ctest ๋ฐ cpack ์œ ํ‹ธ๋ฆฌํ‹ฐ, ๋นŒ๋“œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๋Œ€ํ™”ํ˜•์œผ๋กœ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ cmake-gui ์œ ํ‹ธ๋ฆฌํ‹ฐ.

์ฃผ์š” ๊ฐœ์„  ์‚ฌํ•ญ:

  • CUDA ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ด์‹ ๊ฐ€๋Šฅํ•œ C++ ์ฝ”๋“œ๋กœ ๋” ์‰ฝ๊ฒŒ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ํ•˜๋Š” C++ ์–ธ์–ด์˜ ๋ฐฉ์–ธ์ธ HIP(์ด์ข… ์ปดํ“จํŒ… ์ธํ„ฐํŽ˜์ด์Šค ์ด์‹์„ฑ) ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์— ๋Œ€ํ•œ ์ „์ฒด ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Visual Studio 17 Preview 2022์„ ๊ธฐ๋ฐ˜์œผ๋กœ Visual Studio 2022 1.1์šฉ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ๊ธฐ๊ฐ€ ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Makefile ๋ฐ Ninja ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ ์ƒ์„ฑ๊ธฐ์—๋Š” ์ •์  ๋ถ„์„๊ธฐ์™€ ๊ฐ™์ด ๋ง์ปค๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ณด์กฐ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” C_LINKER_LAUNCHER ๋ฐ CXX_LINKER_LAUNCHER ์†์„ฑ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒ์„ฑ๊ธฐ๋Š” ์ง€์ •๋œ ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ง์ปค ์ด๋ฆ„๊ณผ ํ•ด๋‹น ์ธ์ˆ˜๋ฅผ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.
  • "C_STANDARD" ๋ฐ "OBJC_STANDARD" ์†์„ฑ๊ณผ ์ปดํŒŒ์ผ๋Ÿฌ ๋งค๊ฐœ๋ณ€์ˆ˜ ์„ค์ • ๋„๊ตฌ(์ปดํŒŒ์ผ ๊ธฐ๋Šฅ)์— C17 ๋ฐ C23 ์‚ฌ์–‘์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • cmake ์œ ํ‹ธ๋ฆฌํ‹ฐ์— โ€œโ€”toolchainโ€ ์˜ต์…˜์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค. > ํˆดํ‚ท์˜ ๊ฒฝ๋กœ๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.
  • ํ„ฐ๋ฏธ๋„์— ํ‘œ์‹œ๋˜๋Š” ๋ฉ”์‹œ์ง€ ์œ ํ˜•์ด ๊ฐ•์กฐ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • Fujitsu ์ปดํŒŒ์ผ๋Ÿฌ์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • "foreach()" ๋ช…๋ น์€ ๋ฃจํ”„ ๋ณ€์ˆ˜๊ฐ€ ๋ฃจํ”„ ๋‚ด์—์„œ ๊ฒฉ๋ฆฌ๋˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

๋˜ํ•œ X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME ๋ฐ GTK์™€ ๊ฐ™์€ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” Meson 0.59 ๋นŒ๋“œ ์‹œ์Šคํ…œ์˜ ์ถœ์‹œ์— ์ฃผ๋ชฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Meson์˜ ์ฝ”๋“œ๋Š” Python์œผ๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ Apache 2.0 ๋ผ์ด์„ ์Šค์— ๋”ฐ๋ผ ๋ผ์ด์„ ์Šค๊ฐ€ ๋ถ€์—ฌ๋ฉ๋‹ˆ๋‹ค. GCC, Clang, Visual Studio ๋ฐ ๊ธฐํƒ€ ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Linux, Illumos/Solaris, FreeBSD, NetBSD, DragonFly BSD, Haiku, macOS ๋ฐ Windows์—์„œ ํฌ๋กœ์Šค ์ปดํŒŒ์ผ ๋ฐ ๋นŒ๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. C, C++, Fortran, Java ๋ฐ Rust๋ฅผ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. make ์œ ํ‹ธ๋ฆฌํ‹ฐ ๋Œ€์‹  Ninja ํˆดํ‚ท์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ๋นŒ๋“œ ์‹œ ์‚ฌ์šฉ๋˜์ง€๋งŒ xcode ๋ฐ VisualStudio์™€ ๊ฐ™์€ ๋‹ค๋ฅธ ๋ฐฑ์—”๋“œ๋„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ์—๋Š” Meson์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐํฌ์šฉ ํŒจํ‚ค์ง€๋ฅผ ๋นŒ๋“œํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์ค‘ ํ”Œ๋žซํผ ์ข…์†์„ฑ ์ฒ˜๋ฆฌ๊ธฐ๊ฐ€ ๋‚ด์žฅ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์–ด์…ˆ๋ธ”๋ฆฌ ๊ทœ์น™์€ ๋‹จ์ˆœํ™”๋œ ๋„๋ฉ”์ธ๋ณ„ ์–ธ์–ด๋กœ ์ง€์ •๋˜๋ฉฐ ์‚ฌ์šฉ์ž๊ฐ€ ์‰ฝ๊ฒŒ ์ฝ๊ณ  ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ €์ž๊ฐ€ ์˜๋„ํ•œ ๋Œ€๋กœ ๊ฐœ๋ฐœ์ž๋Š” ๊ทœ์น™์„ ์ž‘์„ฑํ•˜๋Š” ๋ฐ ์ตœ์†Œํ•œ์˜ ์‹œ๊ฐ„์„ ์†Œ๋น„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค). ๋งˆ์ง€๋ง‰ ๋นŒ๋“œ ์ดํ›„ ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ๊ณผ ์ง์ ‘ ๊ด€๋ จ๋œ ๊ตฌ์„ฑ ์š”์†Œ๋งŒ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋Š” ์ฆ๋ถ„ ๋นŒ๋“œ ๋ชจ๋“œ๊ฐ€ ์ง€์›๋ฉ๋‹ˆ๋‹ค. Meson์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๋นŒ๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์„œ๋กœ ๋‹ค๋ฅธ ํ™˜๊ฒฝ์—์„œ ๋นŒ๋“œ๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ์™„์ „ํžˆ ๋™์ผํ•œ ์‹คํ–‰ ํŒŒ์ผ์ด ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

Meson 0.59์˜ ์ฃผ์š” ํ˜์‹ :

  • Cython ์–ธ์–ด(C ์ฝ”๋“œ์™€์˜ ํ†ตํ•ฉ์„ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ์œ„ํ•œ Python์˜ ๊ณ ๊ธ‰ ๋ฒ„์ „)์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • "\" ๋ฌธ์ž๋กœ ๊ณต๋ฐฑ์„ ์ด์Šค์ผ€์ดํ”„ํ•˜์ง€ ์•Š๊ณ  pkgconfig์—์„œ ๋ณ€์ˆ˜๋ฅผ ์ •์˜ํ•˜๊ธฐ ์œ„ํ•ด ํ‚ค์›Œ๋“œ "unescaped_variables" ๋ฐ "unescaped_uninstalled_variables"๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • wrc(์™€์ธ ๋ฆฌ์†Œ์Šค ์ปดํŒŒ์ผ๋Ÿฌ)์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Visual Studio 2012 ๋ฐ Visual Studio 2013์šฉ ํ”„๋กœ์ ํŠธ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ธฐ๋Šฅ์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์ด์ œ ๋ชจ๋“  ํ•˜์œ„ ํ”„๋กœ์ ํŠธ ๊ด€๋ จ ๋ช…๋ น์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ๊ฐ ํ•˜์œ„ ํ”„๋กœ์ ํŠธ๋ฅผ ๋ณ‘๋ ฌ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ณ‘๋ ฌ ํ”„๋กœ์„ธ์Šค ์ˆ˜๋Š” "--num-processes" ๋งค๊ฐœ๋ณ€์ˆ˜์— ์˜ํ•ด ๊ฒฐ์ •๋ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€