macOSでCMakeを使ってビルドする際にQt 5へのパスを渡す

Qt 5をライブラリとして用いるプログラムをCMakeを使ってビルドする際、例えばQt 5 Widgetsを使う場合はCMakeLists.txtに

find_package(Qt5Widgets REQUIRED)

または

find_package(Qt5 COMPONENTS Widgets REQUIRED)

などと記述することになります*1

しかしmacOSでは、これに対して単に

cmake [path for the project root]

と実行すると、

CMake Error at CMakeLists.txt:4 (find_package):
   By not providing "FindQt5Widgets.cmake" in CMAKE_MODULE_PATH this project
   has asked CMake to find a package configuration file provided by
   "Qt5Widgets", but CMake did not find one.

   Could not find a package configuration file provided by "Qt5Widgets" with
   any of the following names:

     Qt5WidgetsConfig.cmake
     qt5widgets-config.cmake

   Add the installation prefix of "Qt5Widgets" to CMAKE_PREFIX_PATH or set
   "Qt5Widgets_DIR" to a directory containing one of the above files.  If
   "Qt5Widgets" provides a separate development package or SDK, be sure it has
   been installed.

というエラーが表示されてしまいます。これの意味は、CMakeからはQt 5 (ここでは特にQt5Widgets) が発見できなかった、ということです。

これの解決策の一つは、エラー表記にも書いてある通り、CMAKE_PREFIX_PATHを指定することです*2

例えば公式サイトのパッケージからQt 5 (ver. 5.8) をインストールしてある場合、デフォルトの設定でインストールされていれば次のようにパスを指定することになります。

cmake [path for the project root] -DCMAKE_PREFIX_PATH=~/Qt/5.8/clang_64/

Homebrewを使ってQt 5 (ver. 5.10.0) インストールしてある場合は次のようになります。

cmake [path for the project root] -DCMAKE_PREFIX_PATH=/usr/local/Cellar/qt/5.10.0

Homebrewの場合は次のように指定することもできます。

cmake [path for the project root] -DCMAKE_PREFIX_PATH=$(brew --prefix qt5)