Здравствуйте, flаt, Вы писали:
F>Там всё предельно просто, смотрите скрипты msbuild от компилятора студии.
Я их смотрел, конечно же.
Если для Вас они
предельно простые, то Вас, очевидно, не затруднит ответить конкретнее.
Все платформы, которые есть в стандартной поставке, следующие:
ARM
ARM64
Win32
x64
Все они, по сути, инклудят файлы из одной и той же папки: C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Microsoft\VC\v170
Файлов там 90 штук, включая такие, как Microsoft.Build.CPPTasks.Common.dll, в которых, как я уже выяснил, и находится код, который занимается непосредственно вызовом компилятора и линкера.
Соответствующую задачу (Task) я сделал, однако выяснилось, что, когда я жму правой кнопкой на отдельном си-файле в солюшен эксплорере, в задачу компиляции в любом случае передаётся полный список исходников, и, выходит, задача определения конкретного набора файлов возлагается также на меня. Это, в принципе, логично, если подумать, однако что именно для этого нужно делать, мне было неясно.
Для выяснения деталей я проанализирова код Microsoft.Build.CPPTasks.Common.dll и Microsoft.Build.CPPTasks.Common.Base.dll и обнаружил существенную часть, которая занимается отслеживанием зависимостей между исходниками и отслеживанием изменений в них. В этой части ведётся работа с tlog-файлами, как с ними работать, я, увы не нашёл. Если не трудно, подскажите, где об этом прочитать.
Ещё такой момент, в процессе экспериментов, очевидно, из-за некорректного кода, в Visual Studio пропадает пункт "Compile" в контекстном меню файла. Подскажите, наличие какого кода в msbuild-конфиге определяет наличие этого пункта меню?
Здравствуйте, LuciferSaratov, Вы писали:
LS>Информация в интернете на эту тему довольно скудная и разрозненная.
Ситуация проясняется. Нашёл некоторую документацию, начинаю
раскуривать что-то понимать:
https://learn.microsoft.com/en-us/visualstudio/extensibility/visual-cpp-project-extensibility?view=vs-2022