フェルマータ

個人用のメモ。ソフトウェアの導入とかが多くなる予定。

Qt を cmake から使う(CLion から使う)。

概要

 Qt の開発というととりあえず QtCreator を使えばいいだろ、と思うのだが、最近 JetBrains から CLion という神ツールが発売された。

www.jetbrains.com

業務が IntelliJ だもので操作感が同じというのもあるんだが、 C++リファクタリングができるというさいつよツールなのでこれを使いたい。 しかしながら CLion は cmake 形式のプロジェクトしか読み込めない。

対処

 Qt は cmake のビルドにも対応している。良い。(QtCreator から使うと恐ろしく扱いづらいが)

CMake Manual | Qt 5.4

基本はこれにしたがって設定すれば良い。あとは作った cmake プロジェクトを CLion から読みこめるので Qt を利用したコードを CLion から利用できる。 SIGANAL/SLOT などの Qt の C++ 拡張部分も問題なく使えた。

システム変数の追加

 CMAKE_PREFIX_PATH に Qt のディレクトリを追加する。僕の環境だと C:\Qt\5.3\mingw482_32 だった。 これで cmake が Qt の位置を知ることができる。

cmake の記述

# Created by Hal@shurabaP
project(sample)

# configuration for Qt
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)

# cmake options
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=gnu++11")

# dependency
find_package(Qt5Core)
get_target_property(QtCore_location Qt5::Core LOCATION)
find_package(Qt5Gui)
get_target_property(QtCore_location Qt5::Gui LOCATION)
find_package(Qt5Multimedia)
get_target_property(QtCore_location Qt5::Multimedia LOCATION)
find_package(Qt5Widgets)
get_target_property(QtCore_location Qt5::Widgets LOCATION)

# sources
add_executable(sample main.cpp)

target_link_libraries(sample LINK_PUBLIC Qt5::Core Qt5::Gui Qt5::Multimedia Qt5::Widgets)

cmake よく知らないから間違ってるかも。とりあえずビルドして実行できたので僕はこの設定を使っている。