👏
[CMake] CMAKE_SYSROOT と CMAKE_FIND_ROOT_PATH の違い
はじめに
CMakeでクロスビルドする場合などに利用するCMAKE_SYSROOTとCMAKE_FIND_ROOT_PATH変数の違いが良く分からなかったのですが、以下のパッチを開発者の方から貰ったことでクリアになったのでまとめています。
結論としては、CMAKE_SYSROOTを指定していれば、CMAKE_FIND_ROOT_PATHは不要です。
CMAKE_FIND_ROOT_PATH
pkg_configやfind_libraryでサーチするライブラリのルートパスを指定します。
CMAKE_SYSROOT
いわゆるrootfsのパスを指定する場合に利用します。ライブラリのサーチ順序は、CMAKE_FIND_ROOT_PATHの後にCMAKE_SYSROOTと定義されているため、結果的にCMAKE_SYSROOTを指定する場合はCMAKE_FIND_ROOT_PATHの指定は不要になります。
By default at first the directories listed in CMAKE_FIND_ROOT_PATH are searched, then the CMAKE_SYSROOT directory is searched, and then the non-rooted directories will be searched.
Discussion