(Безымянный) кортежи - это зло
Если вы используете их для возврата нескольких значений из метода, используйте вместо этого параметры Out (для этого требуется, чтобы ваш язык поддерживал передачу по ссылке)
Если это часть стратегии обфускации кода, продолжайте использовать их!
Я вижу людей, использующих кортежи только потому, что они слишком ленивы, чтобы беспокоиться о присвоении NAMES своим объектам. Пользователи API затем вынуждены обращаться к элементам в кортеже на основе бессмысленного индекса вместо полезного имени.
Я пробовал Waf в Eclipse CDT раньше, SCons были бы действительно похожи. Решением было создать пустой проект Makefile, а затем просто изменить «make» на «scons» в параметрах. В Windows вам, вероятно, понадобится файл scons.bat в вашем пути. Это не намного лучше, чем создание фиктивного файла Makefile с шаблоном типа all: \ n \ tscons
, но это наименее трудоемко.
Плагин SConsBuilder не работает. хорошая идея. В нем есть целая куча жестко запрограммированного кода Python, который он передает в SConstruct. Он не обновлялся уже много лет, и большая часть кода, вероятно, уже устарела в SCons. Я думаю, что лучший подход - сделать то, что SCons делает для Visual Studio или то, что CMake делает для Eclipse CDT. Это означает создание файла. cproject на лету на основе вашей конфигурации сборки.
Я написал генератор проекта Eclipse для Waf в один момент, который просматривает узлы сборки, собирая исходные файлы и выплевывает файлы .project и .cproject . Подобно тому, как это делает CMake, но поведение Waf по умолчанию при создании варианта каталога означает, что вам не нужно иметь дело с проблемами сборки вне исходного кода. С тех пор он был добавлен в качестве дополнения в сам waf . Он использует только часть Waf API, поэтому его можно было бы преобразовать в SCons с небольшим объемом работы. Другими словами, там ничего особенного. Формат .cproject на самом деле нигде не документирован и действительно уродлив по сравнению с версией Java.
Я не знал '
Вы можете использовать Makefile, который просто делегирует важные цели scons
.PHONY: all clean install
default: all
all:
scons
clean:
scons -c
install:
scons install
Затем можно использовать «Стандартный проект Make C» из коробки.