4月 30, 2022 by Qt Group 日本オフィス | Comments
本稿は「Introducing qmake2cmake」の抄訳です。
Qt独自のQMakeプロジェクトファイルは、qtbaseに存在するpro2cmakeというPythonスクリプトを使用して変換されます。このスクリプトは、Qtリポジトリ内のプロジェクトを変換するために特別に作成されており、ユーザープロジェクトの変換にはほとんど役立ちません。
このスクリプトをフォークして、お客様のプロジェクトに適用できる変換ツールにしました。それがqmake2cmakeです。
qmake2cmakeツールは、変換された.proファイルの一般的な機能をカバーするCMakeLists.txtを作成します。生成されたCMakeプロジェクトはベースラインとして使用できますが、おそらく手動で調整が必要になるでしょう。
変換できないQMake構文は、CMakeプロジェクト内のコメントとして表示されます。これらのコメントは、該当部分を手動で変換する際に役立ちます。
多くのプロジェクトには複数の.proファイルがあります。QMakeのSUBDIRS階層に対しては、qmake2cmake_allがあり、プロジェクトのルートディレクトリ内で起動し、その下のすべてを変換します。
Qt自体では、変換速度が無視できない要素でした。そのため、qmake2cmake_allはサブプロジェクトの変換を並列化しています。
変換できない箇所はいくつかあります。
TEMPLATE = aux プロジェクト.prf ファイルこのすべては、手動で変換する必要があります。
qmake2cmakeのインストールは非常に簡単で、次のコマンドを実行するだけです。
python -m pip install qmake2cmake
ソースコードが必要な場合は、下記リポジトリをクローンしてください。
git://code.qt.io/qt/qmake2cmake.git
インストールの要件やその他の詳細については、README.mdを参照してください。
プロジェクト構造の全体を変換するには、プロジェクトディレクトリをqmake2cmake_allに渡してください。qmake2cmake_all ~/projects/myapp --min-qt-version 6.3
プロジェクトがビルドに使用する最低Qtバージョンを指定する必要があります。これにより、正しいCMake APIがQtバージョンに選択されます。
各呼び出しでこのパラメータを渡すことを避けるために、QMAKE2CMAKE_MIN_QT_VERSION 環境変数を設定することもできます。
次の呼び出しによって、単一のQMakeプロジェクトファイルをCMakeに変換します。qmake2cmake ~/projects/myapp/myapp.pro
デフォルトでは、CMakeLists.txtは.proファイルと同じ場所に配置されます。別の場所に作成するには、-o オプションを使用してください。qmake2cmake ~/projects/myapp/myapp.pro -o ~/projects/myapp-converted/CMakeLists.txt
次のコードは、gui/analogclock example のサンプルを最小Qtバージョン6.3でCMakeに変換した結果を示しています。
cmake_minimum_required(VERSION 3.16)
project(analogclock VERSION 1.0 LANGUAGES CXX)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
qt_standard_project_setup()
find_package(QT NAMES Qt5 Qt6 REQUIRED COMPONENTS Core)
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Gui)
qt_add_executable(analogclock WIN32 MACOSX_BUNDLE
../rasterwindow/rasterwindow.cpp ../rasterwindow/rasterwindow.h
main.cpp
)
target_include_directories(analogclock PRIVATE
../rasterwindow
)
target_link_libraries(analogclock PRIVATE
Qt::Core
Qt::Gui
)
install(TARGETS analogclock
BUNDLE DESTINATION .
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
)
qt_generate_deploy_app_script(
TARGET analogclock
FILENAME_VARIABLE deploy_script
NO_UNSUPPORTED_PLATFORM_ERROR
)
install(SCRIPT ${deploy_script}
qmake2cmakeツールはQtプロジェクトによってホストされており、通常の貢献ルールが適用されます。
バグは、プロジェクト「Qt(QTBUG)」およびコンポーネント「Build Tools: other」を使用して、https://bugreports.qt.io/ に報告してください。
Download the latest release here: www.qt.io/download.
Qt 6.10 is now available, with new features and improvements for application developers and device creators.
Check out all our open positions here and follow us on Instagram to see what it's like to be #QtPeople.
12 1, 2025
このブログは「Qt for MCUs vs LVGL: A Comparative Study from Design to..
11 26, 2025
このブログは「Qt Extension 1.10.0 for VS Code Released」の抄訳です。 Visual Studio Code..
11 18, 2025
このブログは「Convert from Qt to Qt for MCU – Qt AI Assistant 0.9.7..