CMake и C ++ / CLI, C # - PullRequest
       7

CMake и C ++ / CLI, C #

5 голосов
/ 12 января 2010

Я хотел бы использовать CMake для компиляции кода, состоящего из кода C ++, C ++ / CLI и C #. Я знаю, что есть некоторые неофициальные макросы для поддержки кода C #. Кто-нибудь их использовал? Какое у них качество? Они надежны? Они повторяют функциональность VS9 / MSBuild?

Ответы [ 3 ]

3 голосов
/ 20 января 2010

Я изучал способы настройки проектов c # с использованием cmake здесь . К сожалению, cmake ограничен только возможностью создавать проекты на C ++. Несмотря на то, что решение может быть построено просто отлично, вам будет очень не хватать обычного cs-проекта, например, Intellisense.

0 голосов
/ 29 марта 2019

Начиная с CMake 3.8 , CMake теперь полностью поддерживает C # как язык, если вы строите с Visual Studio 2010 или более поздней версии. Теперь вы сможете с относительной легкостью создавать сборки или исполняемые цели на C #. Вот полный пример для простого приложения WinForm C #:

cmake_minimum_required(VERSION 3.8)

project(TestApp LANGUAGES CSharp)

# Include CMake utilities for CSharp, for WinForm and WPF application support.
include(CSharpUtilities)

# Define the executable, including any .cs files. The .resx and other Properties files are optional here, but including them makes them visible in the VS solution for easy editing. 
add_executable(${PROJECT_NAME}
    App.config
    Form1.cs
    Form1.Designer.cs
    Form1.resx
    Program.cs
    Properties/AssemblyInfo.cs
    Properties/Resources.Designer.cs
    Properties/Resources.resx
    Properties/Settings.Designer.cs
    Properties/Settings.settings
)

# Set the .NET Framework version for the executable.
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DOTNET_TARGET_FRAMEWORK_VERSION "v4.6.1")
# Set the executable to be 32-bit.
set_property(TARGET ${PROJECT_NAME} PROPERTY WIN32_EXECUTABLE TRUE)
# Set the C# language version (defaults to 3.0).
set(CMAKE_CSharp_FLAGS "/langversion:latest")

# Set the source file properties for Windows Forms use.
csharp_set_windows_forms_properties(
    Form1.cs
    Form1.Designer.cs
    Form1.resx
    Program.cs
    Properties/AssemblyInfo.cs
    Properties/Resources.Designer.cs
    Properties/Resources.resx
    Properties/Settings.Designer.cs
    Properties/Settings.settings
)

# Add in the .NET reference libraries.
set_property(TARGET ${PROJECT_NAME} PROPERTY VS_DOTNET_REFERENCES
    "Microsoft.CSharp"
    "System"
    "System.Core"
    "System.Data"
    "System.Deployment"
    "System.Drawing"
    "System.Net.Http"
    "System.Windows.Forms"
    "System.Xml"
    "System.Xml.Linq"
)

Для сборок или DLL, просто используйте add_library вместо add_executable.

0 голосов
/ 15 января 2010

Вот пример файла макроса C # для CMake - нажмите здесь . Если честно, я сам не пробовал, но выглядит нормально.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...