Qbs 1.16 ์กฐ๋ฆฝ ๋„๊ตฌ ๋ฆด๋ฆฌ์Šค

๋„์ž… ์กฐ๋ฆฝ ๋„๊ตฌ ์ถœ์‹œ QBS 1.16. ์ด๋Š” Qt Company๊ฐ€ ํ”„๋กœ์ ํŠธ ๊ฐœ๋ฐœ์„ ๋– ๋‚œ ์ดํ›„ Qbs์˜ ์ง€์†์ ์ธ ๊ฐœ๋ฐœ์— ๊ด€์‹ฌ์ด ์žˆ๋Š” ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ์ค€๋น„ํ•œ ์„ธ ๋ฒˆ์งธ ๋ฆด๋ฆฌ์Šค์ž…๋‹ˆ๋‹ค. Qbs๋ฅผ ๋นŒ๋“œํ•˜๋ ค๋ฉด ์ข…์†์„ฑ ์‚ฌ์ด์— Qt๊ฐ€ ํ•„์š”ํ•˜์ง€๋งŒ Qbs ์ž์ฒด๋Š” ๋ชจ๋“  ํ”„๋กœ์ ํŠธ์˜ ์–ด์…ˆ๋ธ”๋ฆฌ๋ฅผ ๊ตฌ์„ฑํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Qbs๋Š” ๋‹จ์ˆœํ™”๋œ ๋ฒ„์ „์˜ QML ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ ๋นŒ๋“œ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€ ๋ชจ๋“ˆ์„ ์—ฐ๊ฒฐํ•˜๊ณ  JavaScript ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๊ณ  ์‚ฌ์šฉ์ž ์ •์˜ ๋นŒ๋“œ ๊ทœ์น™์„ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋งค์šฐ ์œ ์—ฐํ•œ ๋นŒ๋“œ ๊ทœ์น™์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

2018๋…„์— Qt Company๋Š” ๋ฐ›์•„ ๋“ค์—ฌ Qbs ๊ฐœ๋ฐœ์„ ์ค‘๋‹จํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. Qbs๋Š” qmake๋ฅผ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•ด ๊ฐœ๋ฐœ๋˜์—ˆ์ง€๋งŒ ๊ถ๊ทน์ ์œผ๋กœ๋Š” ์žฅ๊ธฐ์ ์œผ๋กœ CMake๋ฅผ Qt์˜ ์ฃผ์š” ๋นŒ๋“œ ์‹œ์Šคํ…œ์œผ๋กœ ์‚ฌ์šฉํ•˜๊ธฐ๋กœ ๊ฒฐ์ •๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Qbs์˜ ๊ฐœ๋ฐœ์€ ์ด์ œ ์ปค๋ฎค๋‹ˆํ‹ฐ์™€ ๊ด€์‹ฌ ์žˆ๋Š” ๊ฐœ๋ฐœ์ž์˜ ์ง€์›์„ ๋ฐ›๋Š” ๋…๋ฆฝ์ ์ธ ํ”„๋กœ์ ํŠธ๋กœ ๊ณ„์†๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Qt Company ์ธํ”„๋ผ๋Š” ๊ณ„์†ํ•ด์„œ ๊ฐœ๋ฐœ์— ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ฃผ์š” ํ˜์‹  QBS 1.16:

  • ์ƒํ˜ธ ์ข…์†์„ฑ์œผ๋กœ ์—ฐ๊ฒฐ๋œ ๋ชจ๋“ˆ์˜ ๋ชฉ๋ก ์†์„ฑ ๋ณ‘ํ•ฉ์ด ๋ณด์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์˜ˆ๋ฅผ ๋“ค์–ด cpp.staticLibraries์™€ ๊ฐ™์€ ํ”Œ๋ž˜๊ทธ๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.
  • Renesas ๋งˆ์ดํฌ๋กœ์ปจํŠธ๋กค๋Ÿฌ์— ๋Œ€ํ•œ GCC ๋ฐ IAR ์ž๋™ ๊ฐ์ง€ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • macOS์—์„œ Xcode 11.4์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • clang-cl ์ง€์› ๋ชจ๋“ˆ์˜ ๊ธฐ๋Šฅ์ด ํ™•์žฅ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํˆดํ‚ท์˜ ์œ„์น˜๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜๋˜์ง€ ์•Š์€ ํ”„๋กœํ•„์—์„œ MSVC, clang-cl ๋ฐ MinGW์˜ ์ž๋™ ๊ฐ์ง€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ํ”„๋กœ์ ํŠธ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ Application ๋ฐ DynamicLibrary ์„น์…˜์„ ํ†ตํ•ด ๋ณ„๋„๋กœ ์„ค์น˜๋œ ๋””๋ฒ„๊น… ์ •๋ณด(cpp.separateDebugInformation)๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ  ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ๋‹จ์ˆœํ™”๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Android์šฉ Qt 5.14์— ๋Œ€ํ•œ ์ง€์›์„ ์ถ”๊ฐ€ํ•˜๊ณ  qbs-setup-android ์œ ํ‹ธ๋ฆฌํ‹ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ–ˆ์Šต๋‹ˆ๋‹ค.
  • moc ์œ ํ‹ธ๋ฆฌํ‹ฐ(Qt >= 5.15)์—์„œ ์ƒ์„ฑ๋œ JSON ํŒŒ์ผ์— ๋Œ€ํ•œ ์ง€์›์„ Qt.core.generateMetaTypesFile ๋ฐ Qt.core.metaTypesInstallDir ์„ค์ •์— ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • Qt 5.15์— ๋„์ž…๋œ QML์˜ ์ƒˆ๋กœ์šด ์œ ํ˜• ์„ ์–ธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ๋Œ€ํ•œ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž์™€์˜ Qbs ํ†ตํ•ฉ์„ ๋‹จ์ˆœํ™”ํ•˜๊ธฐ ์œ„ํ•ด ConanfileProbe ์„ค์ •์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ฝ”๋‚œ (C/C++์šฉ).

์ถœ์ฒ˜ : opennet.ru

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