Qbs 1.21 ๋น๋ ๋๊ตฌ ๋ฆด๋ฆฌ์ค๊ฐ ๋ฐํ๋์์ต๋๋ค. ์ด๋ 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.21์ ์ฃผ์ ํ์ :
- ๋ชจ๋ ๊ณต๊ธ์(๋ชจ๋ ์์ฑ๊ธฐ)์ ๋ฉ์ปค๋์ฆ์ด ์ฌ์ค๊ณ๋์์ต๋๋ค. Qt ๋ฐ Boost์ ๊ฐ์ ํ๋ ์์ํฌ์ ๊ฒฝ์ฐ ์ด์ ๋ ์ด์์ ๊ณต๊ธ์๋ฅผ ์ฌ์ฉํ๊ณ , ์๋ก์ด qbsModuleProviders ์์ฑ์ ์ฌ์ฉํ์ฌ ์คํํ ๊ณต๊ธ์๋ฅผ ์ง์ ํ๊ณ , ๋ค๋ฅธ ๊ณต๊ธ์๊ฐ ์์ฑํ ๋ชจ๋์ ์ ํํ๊ธฐ ์ํ ์ฐ์ ์์๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ๋ ๊ฐ์ ๊ณต๊ธ์ "Qt" ๋ฐ "qbspkgconfig"๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค. ๊ทธ ์ค ์ฒซ ๋ฒ์งธ ๊ณต๊ธ์๋ ์ฌ์ฉ์์ Qt ์ค์น(qmake ๊ฒ์์ ํตํด)๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ์๋ํ๊ณ ํด๋น ์ค์น๊ฐ ์์ผ๋ฉด ๋ ๋ฒ์งธ ๊ณต๊ธ์๋ ๋ค์์ ์ฌ์ฉํ๋ ค๊ณ ์๋ํฉ๋๋ค. ์์คํ ์์ ์ ๊ณตํ๋ Qt(pkg-config ํธ์ถ์ ํตํด): CppApplication { ์ข ์ { name: "Qt.core" } files: "main.cpp" qbsModuleProviders: ["Qt", "qbspkgconfig"] }
- ์์ฒญ๋ ๋ชจ๋์ด ๋ค๋ฅธ ๊ณต๊ธ์์ ์ํด ์์ฑ๋์ง ์์ ๊ฒฝ์ฐ pkg-config๋ฅผ ์ฌ์ฉํ์ฌ ๋ชจ๋ ์์ฑ์ ์๋ํ๋ "fallback" ๋ชจ๋ ๊ณต๊ธ์๋ฅผ ๋์ฒดํ๋ "qbspkgconfig" ๊ณต๊ธ์๊ฐ ์ถ๊ฐ๋์์ต๋๋ค. "fallback"๊ณผ ๋ฌ๋ฆฌ "qbspkgconfig"๋ pkg-config ์ ํธ๋ฆฌํฐ๋ฅผ ํธ์ถํ๋ ๋์ ๋ด์ฅ๋ C++ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ".pc" ํ์ผ์ ์ง์ ์ฝ์ต๋๋ค. ์ด๋ ์์ ์๋๋ฅผ ๋์ด๊ณ ํธ์ถ ์ ์ฌ์ฉํ ์ ์๋ ํจํค์ง ์ข ์์ฑ์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. pkg-config ์ ํธ๋ฆฌํฐ.
- ๋ฏธ๋์ C++ ํ์ค์ ์ ์ํ๋ C++23 ์ฌ์์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- GCC ํดํท์ Elbrus E2K ์ํคํ ์ฒ์ ๋ํ ์ง์์ด ์ถ๊ฐ๋์์ต๋๋ค.
- Android ํ๋ซํผ์ ๊ฒฝ์ฐ "--build-id" ๋ง์ปค ํ๋๊ทธ์ ๊ธฐ๋ณธ๊ฐ์ ์ฌ์ ์ํ๊ธฐ ์ํด Android.ndk.buildId ์์ฑ์ด ์ถ๊ฐ๋์์ต๋๋ค.
- capnproto ๋ฐ protobuf ๋ชจ๋์ qbspkgconfig ๊ณต๊ธ์๊ฐ ์ ๊ณตํ๋ ๋ฐํ์์ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ ๊ตฌํํฉ๋๋ค.
- ํ์ผ ์์ ์๊ฐ์ ์ถ์ ํ ๋ ๋ฐ๋ฆฌ์ด๊ฐ ๋๋ฝ๋์ด FreeBSD์์ ์์ค ํ์ผ์ ๋ณ๊ฒฝ ๋ด์ฉ ์ถ์ ๋ฌธ์ ๊ฐ ํด๊ฒฐ๋์์ต๋๋ค.
- Conan ํจํค์ง ๊ด๋ฆฌ์๋ฅผ ์ฌ์ฉํ๋ ํ๋ก์ ํธ๋ฅผ ๋ ์ฝ๊ฒ ๋๋ฒ๊ทธํ ์ ์๋๋ก ConanfileProbe.verbose ์์ฑ์ ์ถ๊ฐํ์ต๋๋ค.
๋ํ Language Server ๋ฐ JsonRpc 6.3 ํ๋กํ ์ฝ์ ์ง์ํ๋ ์๋ก์ด ๋ชจ๋ "Qt Language Server"๋ฅผ ๊ตฌํํ๋ Qt 2.0 ํ๋ ์์ํฌ์ ์ํ ํ ์คํธ ์์์ ๋ํด ์ฃผ๋ชฉํ ์ ์์ผ๋ฉฐ, ์๋ก์ด ๊ธฐ๋ฅ์ ์๋น ๋ถ๋ถ์ด Qt Core์ ์ถ๊ฐ๋์์ต๋๋ค. ๋ชจ๋ ๋ฐ QML ์ ํ MessageDialog๊ฐ Qt Quick Dialogs ๋ชจ๋์ ๊ตฌํ๋์์ต๋๋ค. ํ๋ซํผ์์ ์ ๊ณตํ๋ ๋ํ ์์๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด ๋ณตํฉ Qt Shell ์๋ฒ์ ์ฌ์ฉ์ ์ ์ ์ ํ์ฅ์ ์์ฑํ๊ธฐ ์ํ API๊ฐ Qt Wayland Compositor ๋ชจ๋์ ์ถ๊ฐ๋์์ต๋๋ค. .
Qt QML ๋ชจ๋์ QML ๊ฐ์ฒด ๊ตฌ์กฐ๋ฅผ C++์ ํด๋์ค๋ก ์ปดํ์ผํ ์ ์๋ qmltc(QML ์ ํ ์ปดํ์ผ๋ฌ) ์ปดํ์ผ๋ฌ์ ๊ตฌํ์ ์ ๊ณตํฉ๋๋ค. Qt 6.3์ ์์ฉ ์ฌ์ฉ์๋ฅผ ์ํด Qt Quick Compiler ์ ํ ํ
์คํธ๊ฐ ์์๋์์ต๋๋ค. ์ด ์ ํ์๋ ์์์ ์ธ๊ธํ QML ์ ํ ์ปดํ์ผ๋ฌ ์ธ์๋ QML ํจ์ ๋ฐ ํํ์์ C++ ์ฝ๋๋ก ์ปดํ์ผํ ์ ์๋ QML ์คํฌ๋ฆฝํธ ์ปดํ์ผ๋ฌ๊ฐ ํฌํจ๋์ด ์์ต๋๋ค. Qt Quick Compiler๋ฅผ ์ฌ์ฉํ๋ฉด QML ๊ธฐ๋ฐ ํ๋ก๊ทธ๋จ์ ์ฑ๋ฅ์ด ๋ค์ดํฐ๋ธ ํ๋ก๊ทธ๋จ์ ๋ ๊ฐ๊น์์ง ๊ฒ์ด๋ฉฐ, ํนํ ํ์ฅ์ ์ปดํ์ผํ ๋ ํด์๋ ๋ฒ์ ์ ์ฌ์ฉํ ๋๋ณด๋ค ์์ ๋ฐ ์คํ ์๊ฐ์ด ์ฝ 30% ๋จ์ถ๋๋ค๋ ์ ์
๋๋ค. .
์ถ์ฒ : opennet.ru