0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

pigpioをcmakeとともに使う

Posted at

pigpioをcmakeとともに使う

Raspberry Pi の GPIO をとても簡単・便利・お手軽に利用できる pigpio(本家, GitHub ) というライブラリがあります.

このライブラリを cmake から便利に使うためのユーティリティが GitHub で供給されているので紹介するだけの簡単な Tips です.
が,最後の部分はこれでいいのか感があるので誰かいい方法知ってたら教えてください.

ユーティリティ

肝心のモノは前述のGitHubのリポジトリにあるこれです.
https://github.com/joan2937/pigpio/blob/master/util/Findpigpio.cmake

この Findhoge.cmake という形式のファイルは, cmake で find_package から検索できるようにします.
この形式のファイルを CMAKE_MODULE_PATH で指定されたディレクトに置いておくことで,はじめて検索されるようになるようです(参考 : https://cmake.org/cmake/help/v3.5/command/find_package.html).

そのためのファイルが上記の Findpigpio.cmake となります.
ところが,せっかくの便利な util ですが,インストール時に何処かにコピーされるわけでもないようなので,自分で明示的に使う必要があります.

CMakeLists.txt への追加行

まずは, pigpio を find_package します.
pigpio の GitHub を /home/strv/work/ に clone した場合の説明です.

set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} /home/strv/work/pigpio/util)
find_package(pigpio REQUIRED)

以上をpigpioを使うCMakeLists.txtの最初の方に書いておけばOKです.

もしくは, Findpigpio.cmake ファイルを /usr/share/cmake-*/Modules/ 以下にコピーしても大丈夫ですが, cmake のバージョンが変わるとコピーし直す必要があります.
コピーしないほうかいいような気もするのですが, CMakeLists.txt 中に環境依存なパスを書くのもなぁ,と思いつつ,どっちが良いのかイマイチわかりません.
正しい?良い?方法教えてください…

そもそもutilがMODULEではなくCONFIGとして配られていれば解決する話?

あとは,実際に pigpio (や,pigpiod) を使うコンパイル対象の依存関係に,find_package により利用可能になるパスを使って記述してやればOKです.

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?