过滤通配符的行为方式与预期不同
Filter wildcards not behaving the same way or as intended
我正在尝试让以下过滤语句正常工作,但是,它没有。 exportedLibaries 包含执行文件的相对路径(即 export/*/*/*/filename
)
dev := $(filter HelloWorld%, $(exportedLibraries))
我在我的单元测试中使用了类似的过滤器,并且效果很好(相对路径相同):
unitTests := $(filter %_Test, $(exportedUnitTests))
然而这有效...
dev := $(filter $(wildcard export/**/**/**/HelloWorld*), $(exportedLibraries))
我做错了什么?
在这种情况下,$(notdir) 是您想要的:
exportedLibraries := export/foo/helloworld.lib export/bar/HelloWorld.lib export/baz/HelloWorldTwo.lib
dev := $(foreach lib,$(exportedLibraries),$(if $(filter HelloWorld%,$(notdir $(lib))),$(lib)))
$(info $(dev))
您可以 $(strip)
$(foreach)
的结果以去除结果中多余的空格。
我正在尝试让以下过滤语句正常工作,但是,它没有。 exportedLibaries 包含执行文件的相对路径(即 export/*/*/*/filename
)
dev := $(filter HelloWorld%, $(exportedLibraries))
我在我的单元测试中使用了类似的过滤器,并且效果很好(相对路径相同):
unitTests := $(filter %_Test, $(exportedUnitTests))
然而这有效...
dev := $(filter $(wildcard export/**/**/**/HelloWorld*), $(exportedLibraries))
我做错了什么?
$(notdir) 是您想要的:
exportedLibraries := export/foo/helloworld.lib export/bar/HelloWorld.lib export/baz/HelloWorldTwo.lib
dev := $(foreach lib,$(exportedLibraries),$(if $(filter HelloWorld%,$(notdir $(lib))),$(lib)))
$(info $(dev))
您可以 $(strip)
$(foreach)
的结果以去除结果中多余的空格。