だから私はこのようなファイル(または値)のリストを持っています
set(HEADER_FILES DirA/header1.h DirA/header2.hpp
DirB/header3.h DirB/stuff.hpp)
次に、DirAでのみファイルのサブリストを取得するにはどうすればよいですか?私はCMake2.8.xを使用していますが、正規表現の一致に疲れました:
string(REGEX MATCHALL "DirA/(.+)" DirA_FILES ${HEADER_FILES})
ただし、結果は、「DirA / header1.h DirA / header2.hpp DirB / header3.hDirB/stuff.hpp」のような元の文字列のコピーになります。
いつものように、この質問を書いている間、私はそれを解決しました:
set(SubListMatch)
foreach(ITR ${HEADER_FILES})
if(ITR MATCHES "(.*)DirA/(.*)")
list(APPEND SubListMatch ${ITR})
endif()
endforeach()
しかし、CMakeは私にとってまったく新しいものなので、そのコードを関数にラップするにはどうすればよいですか?私はこれまでCMake関数を書いたことがありません。