Укрощение MSBuild
От: LuciferSaratov Россия  
Дата: 03.12.23 08:28
Оценка:
Всем привет!

У меня есть специальный компилятор и линкер для языка C, которые собирают код в спец-байткод.
Мне хотелось бы его должным образом встроить в MSBuild/Visual Studio, написав скрипты для поддержки своей платформы -- добавив её туда, где "x64", "Win32", "ARM".

Информация в интернете на эту тему довольно скудная и разрозненная.
Доводилось ли кому из присутствующих делать что-то подобное?
Re: Укрощение MSBuild
От: flаt  
Дата: 03.12.23 10:02
Оценка:
Здравствуйте, LuciferSaratov, Вы писали:

LS>У меня есть специальный компилятор и линкер для языка C, которые собирают код в спец-байткод.

LS>Мне хотелось бы его должным образом встроить в MSBuild/Visual Studio, написав скрипты для поддержки своей платформы -- добавив её туда, где "x64", "Win32", "ARM".

Там всё предельно просто, смотрите скрипты msbuild от компилятора студии.
Re[2]: Укрощение MSBuild
От: LuciferSaratov Россия  
Дата: 03.12.23 11:06
Оценка:
Здравствуйте, 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-конфиге определяет наличие этого пункта меню?
Re: Укрощение MSBuild
От: LuciferSaratov Россия  
Дата: 04.12.23 12:30
Оценка: 9 (1)
Здравствуйте, LuciferSaratov, Вы писали:

LS>Информация в интернете на эту тему довольно скудная и разрозненная.


Ситуация проясняется. Нашёл некоторую документацию, начинаю раскуривать что-то понимать:
https://learn.microsoft.com/en-us/visualstudio/extensibility/visual-cpp-project-extensibility?view=vs-2022
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.