Como portar $ (shell find. -name '* .cpp') no windows?

1

Eu tenho isso no makefile:

# find cpp files in subdirectories
SOURCES := $(shell find . -name '*.cpp')

Então eu queria fazer o comando genérico FIND que se comporta corretamente no windows e no linux:

ifeq ($(OS),Windows_NT)
   # WINDOWS
   RM = erase /Q
   FIND = ???
else
   # LINUX
   ifeq ($(shell uname), Linux)
      RM = rm -f
      # This is probably wrong too, but I have no idea how to do it right
      FIND = $(find . -name '$1')
   endif
endif

Claro, eu nem sei como fazer um template de busca parametrizado para o linux. Mas o mais importante, não consigo encontrar o comando para encontrar todos os arquivos por padrão. O Windows tem isso:

dir * /s/b | findstr \.cpp$

O que é bonito, mas que usa expressões regulares ... Como posso portar isso corretamente, para que os comportamentos se comportem bem em ambos os sistemas? O makefile não possui seu próprio método para localizar arquivos?

    
por Tomáš Zato 12.10.2017 / 15:44

0 respostas