Можно ли создать .net 5.0 проект в CMake?
От: BigBoss  
Дата: 04.07.21 22:00
Оценка:
Вот просто как в .net Framework, но только с чем-нибудь вроде set(DOTNET_TARGET_FRAMEWORK "net5.0") в CMakeLists, а потом `cmake .` и готово? Безо всяких там сгенериривать один проект, а потом руками/powershell-скриптом его исправить, и прочих танцев с бубном?
Re: Можно ли создать .net 5.0 проект в CMake?
От: _NN_ www.nemerleweb.com
Дата: 05.07.21 05:53
Оценка: +1
Здравствуйте, BigBoss, Вы писали:

BB>Вот просто как в .net Framework, но только с чем-нибудь вроде set(DOTNET_TARGET_FRAMEWORK "net5.0") в CMakeLists, а потом `cmake .` и готово? Безо всяких там сгенериривать один проект, а потом руками/powershell-скриптом его исправить, и прочих танцев с бубном?


Расскажете чем dotnet build не подходит ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: Можно ли создать .net 5.0 проект в CMake?
От: VladCore  
Дата: 05.07.21 11:33
Оценка:
Здравствуйте, BigBoss, Вы писали:

BB>Вот просто как в .net Framework, но только с чем-нибудь вроде set(DOTNET_TARGET_FRAMEWORK "net5.0") в CMakeLists, а потом `cmake .` и готово? Безо всяких там сгенериривать один проект, а потом руками/powershell-скриптом его исправить, и прочих танцев с бубном?


dotnet build и dotnet publish он из коробки и 1) кроссплатформенный 2) кроссверсионный. ос и проц задается параметром -r а версия фрейморка -f. Если нужны native библотеки это dotnet тоже из коробки разруливает.
Отредактировано 05.07.2021 11:35 VladCore . Предыдущая версия .
Re[2]: Можно ли создать .net 5.0 проект в CMake?
От: BigBoss  
Дата: 05.07.21 21:59
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Здравствуйте, BigBoss, Вы писали:


BB>>Вот просто как в .net Framework, но только с чем-нибудь вроде set(DOTNET_TARGET_FRAMEWORK "net5.0") в CMakeLists, а потом `cmake .` и готово? Безо всяких там сгенериривать один проект, а потом руками/powershell-скриптом его исправить, и прочих танцев с бубном?


_NN>Расскажете чем dotnet build не подходит ?


dotnet build собирает проект из готовых proj/sln, а CMake как раз эти самые proj/sln генерирует.
Вопрос как раз был, как их сгенерировать, а не что делать с ними потом
Re[2]: Можно ли создать .net 5.0 проект в CMake?
От: BigBoss  
Дата: 05.07.21 22:07
Оценка:
Здравствуйте, VladCore, Вы писали:

VC>Здравствуйте, BigBoss, Вы писали:


BB>>Вот просто как в .net Framework, но только с чем-нибудь вроде set(DOTNET_TARGET_FRAMEWORK "net5.0") в CMakeLists, а потом `cmake .` и готово? Безо всяких там сгенериривать один проект, а потом руками/powershell-скриптом его исправить, и прочих танцев с бубном?


VC>dotnet build и dotnet publish он из коробки и 1) кроссплатформенный 2) кроссверсионный. ос и проц задается параметром -r а версия фрейморка -f. Если нужны native библотеки это dotnet тоже из коробки разруливает.


вопрос был не про то, как имея proj/sln файлы что-нибудь собрать, как это делает dotnet build, а про то, как эти самые proj/sln сгенерировать
Re[3]: Можно ли создать .net 5.0 проект в CMake?
От: VladCore  
Дата: 06.07.21 02:14
Оценка: +1 :)
Здравствуйте, BigBoss, Вы писали:

BB>>>Вот просто как в .net Framework, но только с чем-нибудь вроде set(DOTNET_TARGET_FRAMEWORK "net5.0") в CMakeLists, а потом `cmake .` и готово? Безо всяких там сгенериривать один проект, а потом руками/powershell-скриптом его исправить, и прочих танцев с бубном?


VC>>dotnet build и dotnet publish он из коробки и 1) кроссплатформенный 2) кроссверсионный. ос и проц задается параметром -r а версия фрейморка -f. Если нужны native библотеки это dotnet тоже из коробки разруливает.


BB>вопрос был не про то, как имея proj/sln файлы что-нибудь собрать, как это делает dotnet build,


не. я не писал как собрать.

BB> а про то, как эти самые proj/sln сгенерировать


😂😂😂

dotnet new умеет генерировать proj
Re[4]: Можно ли создать .net 5.0 проект в CMake?
От: BigBoss  
Дата: 10.07.21 00:11
Оценка:
Здравствуйте, VladCore, Вы писали:

VC>>>dotnet build и dotnet publish он из коробки и 1) кроссплатформенный 2) кроссверсионный. ос и проц задается параметром -r а версия фрейморка -f. Если нужны native библотеки это dotnet тоже из коробки разруливает.


BB>>вопрос был не про то, как имея proj/sln файлы что-нибудь собрать, как это делает dotnet build,


VC>не. я не писал как собрать.


А что же тогда по-вашему на самом деле делает dotnet build?

BB>> а про то, как эти самые proj/sln сгенерировать


VC>😂😂😂


VC>dotnet new умеет генерировать proj


В CMake файлы в проект добавляют примерно так:
SET(TARGET_SRC
Main.cs
../Connection.cs
../../common/Logger.cs
)
А как это сделать в коммандой строке dotnet new? Как добавить нужные assembly или просто сделать код unsafe?
Re[5]: Можно ли создать .net 5.0 проект в CMake?
От: Sinclair Россия https://github.com/evilguest/
Дата: 10.07.21 04:24
Оценка:
Здравствуйте, BigBoss, Вы писали:
VC>>dotnet new умеет генерировать proj

https://docs.microsoft.com/ru-ru/dotnet/core/tools/dotnet-add-package
или просто сделать код unsafe?
BB>https://docs.microsoft.com/ru-ru/dotnet/core/tools/
Для этого надо редактировать файл проекта.

Не очень понимаю, вам это всё зачем? Вы хотите порождать проект автоматически? А код для него возьмётся откуда?
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Можно ли создать .net 5.0 проект в CMake?
От: BigBoss  
Дата: 10.07.21 23:27
Оценка:
Здравствуйте, Sinclair, Вы писали:

S>Здравствуйте, BigBoss, Вы писали:

VC>>>dotnet new умеет генерировать proj

S>https://docs.microsoft.com/ru-ru/dotnet/core/tools/dotnet-add-package

S>или просто сделать код unsafe?
BB>>https://docs.microsoft.com/ru-ru/dotnet/core/tools/
S>Для этого надо редактировать файл проекта.

А откуда он берётся, этот "файл проекта"?

S>Не очень понимаю, вам это всё зачем? Вы хотите порождать проект автоматически?


Да, погуглите CМake для общего развития. Он уже много лет в MSVC есть
Re[5]: Можно ли создать .net 5.0 проект в CMake?
От: Mystic Artifact  
Дата: 11.07.21 01:45
Оценка:
Здравствуйте, BigBoss, Вы писали:

BB>>>вопрос был не про то, как имея proj/sln файлы что-нибудь собрать, как это делает dotnet build,


Выполняет MSBuild. Для людей знакомых с темой должно быть понятно, что системы сборки настолько НЕ эквивалентны, что не стоит пытаться решить несуществующую задачу.

MSBuild гораздо мощнее любых недо-make. И в этом же его ахилесова пята, потому что туда интегрировано всё на свете, включая менеджер пакетов. (грубо говоря)

Поэтому единственный правильный способ работы с C#/dotnet и организовать сборку там — это не игнорировать встроенные возможности. Собрать проекты с помощью csc — это не проблема. Проблемы начнуться когда начнут просвечивать нюансы, особенно через года, да такие о которых вы знать не слыхивали.

Просто откройте дотнет сдк и посчитайте размер *.targets и *.props файлов. После этого — если и были вопросы — желание повторить хотя бы четвертинку из этого — должна отпасть.
Re[7]: Можно ли создать .net 5.0 проект в CMake?
От: Sinclair Россия https://github.com/evilguest/
Дата: 11.07.21 04:42
Оценка:
Здравствуйте, BigBoss, Вы писали:
BB>А откуда он берётся, этот "файл проекта"?
dotnet new

S>>Не очень понимаю, вам это всё зачем? Вы хотите порождать проект автоматически?
BB>Да, погуглите CМake для общего развития. Он уже много лет в MSVC есть
Повторю вопрос: вам это всё зачем?
Обычно проект создаётся один раз. А потом много лет развивается. Поэтому не очень важно, как именно устроено порождение проекта.
Мне интересен ваш сценарий от начала и до конца: что именно вы хотите автоматизировать и почему. Конкретные инструменты — это конкретные инструменты, их же под задачу подбирают, а не наоборот.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Re[6]: Можно ли создать .net 5.0 проект в CMake?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 11.07.21 04:51
Оценка:
Здравствуйте, Mystic Artifact, Вы писали:

MA> MSBuild гораздо мощнее любых недо-make. И в этом же его ахилесова пята, потому что туда интегрировано всё на свете, включая менеджер пакетов. (грубо говоря)


А он может скачать свежие исходники какой-нибудь библиотеки с условного Гитхаба и собрать проект с ней? А в случае неудачи, использовать то, что есть локально? Он может парсить и редактировать файлы исходников? кросс компиляция для другой ОС?
Re[7]: Можно ли создать .net 5.0 проект в CMake?
От: _NN_ www.nemerleweb.com
Дата: 11.07.21 05:29
Оценка: +1
Здравствуйте, Nuzhny, Вы писали:

N>Здравствуйте, Mystic Artifact, Вы писали:


MA>> MSBuild гораздо мощнее любых недо-make. И в этом же его ахилесова пята, потому что туда интегрировано всё на свете, включая менеджер пакетов. (грубо говоря)


N>А он может скачать свежие исходники какой-нибудь библиотеки с условного Гитхаба и собрать проект с ней? А в случае неудачи, использовать то, что есть локально? Он может парсить и редактировать файлы исходников? кросс компиляция для другой ОС?


Если очень хочется, то можно вставить произвольный код, который сделает что угодно.
https://docs.microsoft.com/en-us/visualstudio/msbuild/msbuild-inline-tasks?view=vs-2019

Кросскомпиляция C# существует уже давно.
В чём вопрос?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[8]: Можно ли создать .net 5.0 проект в CMake?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 11.07.21 05:55
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Здравствуйте, Nuzhny, Вы писали:



_NN>В чём вопрос?


Вопрос в том, что глупо называть кроссплатформенный, тьюринг-полный cmake, с помощью которого собирается куча проектов, недомэйком. Он более мета инструмент, чем msbuild
Re[8]: Можно ли создать .net 5.0 проект в CMake?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 11.07.21 06:05
Оценка: +1
Здравствуйте, Sinclair, Вы писали:

S>>>Не очень понимаю, вам это всё зачем? Вы хотите порождать проект автоматически?


Раз уж речь, про cmake, то он как раз и используется для генерации проектов, включения и исключения их массово.
Например, есть большой проект OoenCV. В максимальной комплектации он вполне может включать в себя тысячу проектов. Отключать можно что угодно: тесты, примеры, проекты для интеграции с Питоном, Java, Julia... Можно отдельные модули. Если нет зависимости для какого-то модуля, то автоматически отключаются все, которые зависят от него. Можно собирать все модули статически, можно каждый в своей dll, можно все в одной большой dll.
Можно для windows, Linux, mac, android, ios...Можно выбирать тулчейны для сборки. Он сам скачивает зависимости с гитхаба. Или данные (веса нейросетки), или библиотеки (Intel IPP). Собирает, копирует, делает install.
Re[9]: Можно ли создать .net 5.0 проект в CMake?
От: Evgeny.Panasyuk Россия  
Дата: 11.07.21 07:18
Оценка: +2
Здравствуйте, Nuzhny, Вы писали:

S>>>>Не очень понимаю, вам это всё зачем? Вы хотите порождать проект автоматически?

N>Раз уж речь, про cmake, то он как раз и используется для генерации проектов, включения и исключения их массово.
N>Например, есть большой проект OoenCV. В максимальной комплектации он вполне может включать в себя тысячу проектов. Отключать можно что угодно: тесты, примеры, проекты для интеграции с Питоном, Java, Julia... Можно отдельные модули.

Преимущество не только в гибкой конфигурации, но например ещё и в том что можно обобщать и переиспользовать отдельные куски как функции/макросы, делать циклы по каким-либо последовательностям и т.п.
Например есть десяток целей определение которых отличается лишь одним параметром — соответственно это можно выразить как функцию с одним параметром и цикл по списку этих параметров вызывающий эту функцию. С развитием проекта можно рефракторить и обобщать, так как определение проекта это обычный код.
Re[8]: Можно ли создать .net 5.0 проект в CMake?
От: Evgeny.Panasyuk Россия  
Дата: 11.07.21 08:14
Оценка:
Здравствуйте, Sinclair, Вы писали:

BB>>Да, погуглите CМake для общего развития. Он уже много лет в MSVC есть

S>Повторю вопрос: вам это всё зачем?
S>Обычно проект создаётся один раз. А потом много лет развивается. Поэтому не очень важно, как именно устроено порождение проекта.

В случае CMake это не так. Проект порождается сколько угодно раз, с какими угодно настройками из CMake-овского кода. И изменения вносятся непосредственно в CMake'овский код, что приводит к регенерации всего или части проектных файлов.
Грубо говоря CMake это не обычная система сборки. Он использует другие системы сборки как бэкэнды, и из единого описания проекта можно генерировать проектные файлы для разных бэкэндов.
Re[6]: Можно ли создать .net 5.0 проект в CMake?
От: Evgeny.Panasyuk Россия  
Дата: 11.07.21 08:23
Оценка:
Здравствуйте, Mystic Artifact, Вы писали:

BB>>>>вопрос был не про то, как имея proj/sln файлы что-нибудь собрать, как это делает dotnet build,

MA> Выполняет MSBuild. Для людей знакомых с темой должно быть понятно, что системы сборки настолько НЕ эквивалентны, что не стоит пытаться решить несуществующую задачу.

CMake это build system generator.
Re[10]: Можно ли создать .net 5.0 проект в CMake?
От: karbofos42 Россия  
Дата: 11.07.21 08:29
Оценка:
Здравствуйте, Evgeny.Panasyuk, Вы писали:

EP>Здравствуйте, Nuzhny, Вы писали:


S>>>>>Не очень понимаю, вам это всё зачем? Вы хотите порождать проект автоматически?

N>>Раз уж речь, про cmake, то он как раз и используется для генерации проектов, включения и исключения их массово.
N>>Например, есть большой проект OoenCV. В максимальной комплектации он вполне может включать в себя тысячу проектов. Отключать можно что угодно: тесты, примеры, проекты для интеграции с Питоном, Java, Julia... Можно отдельные модули.

EP>Преимущество не только в гибкой конфигурации, но например ещё и в том что можно обобщать и переиспользовать отдельные куски как функции/макросы, делать циклы по каким-либо последовательностям и т.п.

EP>Например есть десяток целей определение которых отличается лишь одним параметром — соответственно это можно выразить как функцию с одним параметром и цикл по списку этих параметров вызывающий эту функцию. С развитием проекта можно рефракторить и обобщать, так как определение проекта это обычный код.

Есть подозрение, что если вместо CMake взять MSBuild и так же с ним заморочиться, то окажется, что всё это можно сделать и на xml, но это ж разбираться надо, а CMake кто-то когда-то уже изучил и зачем что-то новое учить
Re[11]: Можно ли создать .net 5.0 проект в CMake?
От: Nuzhny Россия https://github.com/Nuzhny007
Дата: 11.07.21 08:31
Оценка:
Здравствуйте, karbofos42, Вы писали:

K>Есть подозрение, что если вместо CMake взять MSBuild и так же с ним заморочиться, то окажется, что всё это можно сделать и на xml, но это ж разбираться надо, а CMake кто-то когда-то уже изучил и зачем что-то новое учить


Писать код на xml? Ну, так себе
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.