2016-11-14 4 views
1

cmakeにインクルードされているすべてのディレクトリを見つけるにはどうしたらいいですか?例えば、ディレクトリ構造はそのようなものである場合:cmakeにincludeという名前のサブディレクトリを見つける方法

root 
include/ 
a/ 
    include/ 
b/ 
    c/ 
    d/ 
     include/ 

私は変数に見つかったすべてのパスを割り当てるしたいと思います:

root/include 
root/a/include 
root/b/c/d/include 

私はGLOBE_RECURSEを使用しようとしましたが、成功しません。

+0

解決策がCMakeに存在するかどうかはわかりません。私はLinux上でexecute_processとfindを使用するソリューションを考え出しました。他のOSに対しても同様の解決策が可能です。 –

答えて

0
file(GLOB_RECURSE include_dirs LIST_DIRECTORIES true 
    RELATIVE ${CMAKE_SOURCE_DIR} "include") 

これは、このバージョンのみに表示されますオプションLIST_DIRECTORIESとして、CMakeの3.3以降で動作します。 (デフォルトでは、GLOB_RECURSEモードオプションLIST_DIRECTORIESはfalseです)。

+1

"include"パスは "include_dirs"だけでなく、親フォルダ:root /、a /、b /、b/c、b/c/dにも割り当てられました。それは起こるはずですか? – Daniel

+0

本当に、私はファイルで確認しました。ディレクトリではありません。私は明日のテストを行います。 – Tsyvarev

関連する問題