Сообщение Re[13]: Можно ли создать .net 5.0 проект в CMake? от 03.09.2021 0:35
Изменено 03.09.2021 0:47 vdimas
Re[13]: Можно ли создать .net 5.0 проект в CMake?
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Потому что есть Т4. Который, кстати, может использоваться для порождения не только cs, но и файлы сборки.
По ссылке:
14-й не справляется для последних .Net Core-проектов.
И может быть установлен не туда, куда указывает константа.
Сейчас вообще привязали версию MSBuild к Студии, поэтому, искать надо через Студию.
На CMake:
У меня выдаёт:
НС>Если брать примерчик выше, то можно, к примеру, так же генерировать https://github.com/rsdn/CodeJam/blob/master/Build/Props/CodeJam.Targeting.props с синтаксисом ничуть не хуже cmake.
Сравнить с тем, что в варианте CMake будет что-то вроде создания в цикле объектов ProjectInfo из Compile.tt.
На этом всё.
Остальное делается "само".
Плюс не будет расползания "знаний" по проекту.
CMake в этом смысле подкупает тем, что всевозможные флаги конфигураций, константы, пути и т.д. вводятся/обслуживаются, грубо, в одном месте.
Шаблонизаторы можно тоже всякие запускать, но для простых вещей уместен встроенный подстановщик переменных:
Ну и, хотя язык CMake я презираю за его убожество, но сравнивать с XML его всё-равно бесполезно. ))
НС>Потому что есть Т4. Который, кстати, может использоваться для порождения не только cs, но и файлы сборки.
По ссылке:
const string msBuildExe = @"%ProgramFiles(x86)%\MSBuild\14.0\Bin\MSBuild.exe";
14-й не справляется для последних .Net Core-проектов.
И может быть установлен не туда, куда указывает константа.
Сейчас вообще привязали версию MSBuild к Студии, поэтому, искать надо через Студию.
MSBuild is installed in the \Current folder under each version of Visual Studio, and the executables are in the \Bin subfolder.
На CMake:
cmake_host_system_information(RESULT vsdir QUERY "VS_16_DIR")
set(msbuild "${vsdir}/MSBuild/Current/Bin/MsBuild.exe")
message(STATUS "MSBBuild dir: ${msbuild}")
У меня выдаёт:
-- MSBBuild dir: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/MsBuild.exe
НС>Если брать примерчик выше, то можно, к примеру, так же генерировать https://github.com/rsdn/CodeJam/blob/master/Build/Props/CodeJam.Targeting.props с синтаксисом ничуть не хуже cmake.
Сравнить с тем, что в варианте CMake будет что-то вроде создания в цикле объектов ProjectInfo из Compile.tt.
На этом всё.
Остальное делается "само".
Плюс не будет расползания "знаний" по проекту.
CMake в этом смысле подкупает тем, что всевозможные флаги конфигураций, константы, пути и т.д. вводятся/обслуживаются, грубо, в одном месте.
Шаблонизаторы можно тоже всякие запускать, но для простых вещей уместен встроенный подстановщик переменных:
[assembly: AssemblyTitle("@PROJECT_NAME@")]
[assembly: AssemblyVersion("@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@.0")]
[assembly: AssemblyFileVersion("@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@.0")]
Ну и, хотя язык CMake я презираю за его убожество, но сравнивать с XML его всё-равно бесполезно. ))
Re[13]: Можно ли создать .net 5.0 проект в CMake?
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Потому что есть Т4. Который, кстати, может использоваться для порождения не только cs, но и файлы сборки.
По ссылке:
14-й не справляется для последних .Net Core-проектов.
И может быть установлен не туда, куда указывает константа.
Сейчас вообще привязали версию MSBuild к Студии, поэтому, искать надо через Студию.
На CMake:
У меня выдаёт:
НС>Если брать примерчик выше, то можно, к примеру, так же генерировать https://github.com/rsdn/CodeJam/blob/master/Build/Props/CodeJam.Targeting.props с синтаксисом ничуть не хуже cmake.
Сравнить с тем, что в варианте CMake будет что-то вроде создания в цикле объектов ProjectInfo из Compile.tt.
На этом всё.
Остальное делается "само".
Плюс не будет расползания "знаний" по проекту.
CMake в этом смысле подкупает тем, что всевозможные флаги конфигураций, константы, пути и т.д. вводятся/обслуживаются, грубо, в одном месте.
Шаблонизаторы можно тоже всякие запускать, но для простых вещей уместен встроенный подстановщик переменных:
Ну и, хотя язык CMake я презираю за его убожество, но сравнивать с XML его всё-равно бесполезно. ))
НС>Потому что есть Т4. Который, кстати, может использоваться для порождения не только cs, но и файлы сборки.
По ссылке:
const string msBuildExe = @"%ProgramFiles(x86)%\MSBuild\14.0\Bin\MSBuild.exe";
14-й не справляется для последних .Net Core-проектов.
И может быть установлен не туда, куда указывает константа.
Сейчас вообще привязали версию MSBuild к Студии, поэтому, искать надо через Студию.
MSBuild is installed in the \Current folder under each version of Visual Studio, and the executables are in the \Bin subfolder.
На CMake:
cmake_host_system_information(RESULT vsdir QUERY "VS_16_DIR")
set(msbuild "${vsdir}/MSBuild/Current/Bin/MsBuild.exe")
message(STATUS "MSBBuild path: ${msbuild}")
У меня выдаёт:
-- MSBBuild path: C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/MSBuild/Current/Bin/MsBuild.exe
НС>Если брать примерчик выше, то можно, к примеру, так же генерировать https://github.com/rsdn/CodeJam/blob/master/Build/Props/CodeJam.Targeting.props с синтаксисом ничуть не хуже cmake.
Сравнить с тем, что в варианте CMake будет что-то вроде создания в цикле объектов ProjectInfo из Compile.tt.
На этом всё.
Остальное делается "само".
Плюс не будет расползания "знаний" по проекту.
CMake в этом смысле подкупает тем, что всевозможные флаги конфигураций, константы, пути и т.д. вводятся/обслуживаются, грубо, в одном месте.
Шаблонизаторы можно тоже всякие запускать, но для простых вещей уместен встроенный подстановщик переменных:
[assembly: AssemblyTitle("@PROJECT_NAME@")]
[assembly: AssemblyVersion("@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@.0")]
[assembly: AssemblyFileVersion("@PROJECT_VERSION_MAJOR@.@PROJECT_VERSION_MINOR@.@PROJECT_VERSION_PATCH@.0")]
Ну и, хотя язык CMake я презираю за его убожество, но сравнивать с XML его всё-равно бесполезно. ))