У меня есть проект, который состоит из множества файлов в подкаталогах. У меня есть простой Makefile, который обрабатывает компиляцию. Это выглядит так:
CC = g++ -Wall -ansi -pedantic
all:
$(CC) -O2 engine/core/*.cpp engine/objects3d/*.cpp engine/display/*.cpp engine/io /*.cpp engine/math/*.cpp engine/messages/*.cpp *.cpp -o project1 -lGL -lGLU -lX11 `sdl-config --cflags --libs`
clean:
@echo Cleaning up...
@rm project1
@echo Done.
Однако мне нужно перейти на SCons. Я понятия не имею, как написать скрипт, который бы автоматически обрабатывал поиск всех файлов * .cpp в подкаталогах и включал их в процесс компиляции.
Это как сделать то, что у вас есть в вашем Makefile в SCons. Вы должны поместить этот код Python в файл в корне проекта под названием SConstruct
и просто выполнить scons
, Убрать, выполнить scons -c
env = Environment()
env.Append(CPPFLAGS=['-Wall', '-ansi', '-pedantic', '-O2', '-lGL', '-lGLU', '-lX11'])
# Determine compiler and linker flags for SDL
env.ParseConfig('sdl-config --cflags')
env.ParseConfig('sdl-config --libs')
# Remember that the SCons Glob() function is not recursive
env.Program(target='project1',
source=[Glob('engine/core/*.cpp'),
Glob('engine/objects3d/*.cpp'),
Glob('engine/display/*.cpp)',
Glob('engine/io/*.cpp'),
Glob('engine/math/*.cpp'),
Glob('engine/messages/*.cpp'),
Glob('*.cpp')])
Вот ссылка для использования SDL с SCons
А вот информация о Функция SCons ParseConfig ().
Других решений пока нет …