Фон
Я опробую Scons, настроив базовый пример проекта C ++ с двумя подпроектами:
- Prj1 - это EXE, который зависит от Prj2
- Prj2 - это DLL, которая экспортирует некоторые функции
Вы можете увидеть структуру каталогов и содержимое моих файлов SConstruct и SConscript здесь
Задача
Проблема, с которой я сталкиваюсь, заключается в том, что для построения этих целей из командной строки мне нужно указать как относительный путь к их каталогу сборки, так и расширения файлов для конкретной платформы.
Например, для сборки Prj1 мне нужно сделать:
build> scons ../bin/project1.exe
Аналогично, для сборки Prj2 мне нужно сделать:
build> scons ../bin/project2.dll
Вопрос
Как я могу заставить SCons создавать эти проекты без указания относительного пути и расширения для конкретной платформы?
Желаемая:
build> scons project1
build> scons project2
Потенциальные решения
- Используйте псевдоним - я уверен, что - это , что я хочу, но, похоже, я что-то напутал. Я безуспешно пробовал следующее:
prj1_env.Alias( 'project1', PROG)
prj1_env.Alias( 'project1', os.path.join( BIN_DIR, PROG) )
Ссылки