2

「。」で始まるすべてのファイルに一致する正規表現を探しています。ディレクトリに。

私はCMakeを使用しています(CMakeドキュメントから:「CMakeはグロブではなく正規表現を期待しています」)、ドット(隠しファイル)で始まるすべてのファイルを無視したいが、"\..*"動作"^\..*"しない:(

奇妙なこと:これは機能し(rqの回答のおかげで)、すべての隠しファイルと一時ファイル(「〜」で終了するファイル)を削除します

file(GLOB DOT ".*")
file(GLOB TILD "*~")

set (CPACK_SOURCE_IGNORE_FILES "${DOT};${TILD}")

CPACK_SOURCE_IGNORE_FILESしかし、同じ結果を得るために直接書き込む正しいものが見つかりません!

この変数の " doc " は次のとおりです。

4

5 に答える 5

3

GLOB がおそらくあなたが望むものであるように聞こえます。

これを試して。ファイル「test.cmake」を開き、次を追加します。

file(GLOB ALL "*")
file(GLOB DOT ".*")
file(GLOB NOTDOT "[^.]*")

message("All Files ${ALL}")
message("Dot files ${DOT}")
message("Not dot files ${NOTDOT}")

次に、いくつかのテスト ファイルを作成します。

touch .dotfile
touch notdot

次に、「cmake -P test.cmake」を実行します。出力は次のとおりです。

All Files /tmp/cmake_test/.dotfile;/tmp/cmake_test/notdot;/tmp/cmake_test/test.cmake
Dot files /tmp/cmake_test/.dotfile
Not dot files /tmp/cmake_test/notdot;/tmp/cmake_test/test.cmake

これは cmake 2.6.0 でテストされました。

于 2009-04-08T08:43:36.953 に答える
1

次のワンライナーが作業を行います(非表示およびチルダ( "〜")で終了したファイルを非表示にします)。

set(CPACK_SOURCE_IGNORE_FILES "/\\\\..*$;~$;${CPACK_SOURCE_IGNORE_FILES}")
于 2011-01-05T23:39:13.747 に答える
1

標準の正規表現構文を使用:

^\..*

CMake は明らかにこれを好まないため、次のようなものを使用する場合があります。

^\\..*

ただし、私は CMake を持っていない/使用していないため、これは単なる推測です。

于 2009-04-07T18:42:44.510 に答える
0

あなたはそれを逃れる必要があります。

^\..*
于 2009-04-07T18:42:44.680 に答える
0

これを試して:

^[.].*
于 2009-04-07T20:14:07.283 に答える