Написание скрипта scons для обработки файлов во многих подкаталогах

У меня есть проект, который состоит из множества файлов в подкаталогах. У меня есть простой 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 в подкаталогах и включал их в процесс компиляции.

1

Решение

Это как сделать то, что у вас есть в вашем 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 ().

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]