Makefileでワイルドカード関数を使用して、コンパイルプロセスでソースファイルを除外することは可能ですか?
いくつかのソースファイルがあるように、
src/foo.cpp
src/bar.cpp
src/...
それから私のメイクファイルには、
SRC_FILES = $(wildcard src/*.cpp)
しかし、bar.cppを除外したいです。これは可能ですか?
GNU Makeを使用している場合は、 filter-out
:
SRC_FILES := $(wildcard src/*.cpp)
SRC_FILES := $(filter-out src/bar.cpp, $(SRC_FILES))
または、1行として:
SRC_FILES = $(filter-out src/bar.cpp, $(wildcard src/*.cpp))
findを使用してください:)
SRC_FILES := $(Shell find src/ ! -name "bar.cpp" -name "*.cpp")
Makefile subst関数を使用できます:
EXCLUDE=$(subst src/bar.cpp,,${SRC_FILES})
nix glob pattern src/[!b] *。cppは、bで始まるすべてのsrcファイルを除外します。
ただし、bar.cppがbで始まる唯一のsrcファイルである場合、または一意の文字で始まるように名前を変更する場合にのみ、機能します。