CMake 2.8.9 и выше добавьте параметр TYPE
к include_external_msproject
примерно так:
include_external_msproject(
MyProject MyProject.csproj
TYPE FAE04EC0-301F-11D3-BF4B-00C04F79EFBC)
Это позволяет вам указать, что проект является C # (магический GUID выше), в противном случае все будет сложно ( см. Документы ).
Возможно, вы все еще захотите использовать шаблонный подход configure_file
, упомянутый в другом месте с вашим файлом .csproj
, чтобы получить правильные пути к нему, если только вы не встраиваетесь прямо в дерево исходных текстов.
Хорошей новостью является то, что вы можете подстановочные знаки для ваших файлов C # в файле .csproj.template
, например, так:
<ItemGroup>
<Compile Include="${DOS_STYLE_SOURCE_DIR}\**\*.cs" />
</ItemGroup>
И вам понадобится что-то подобное в вашем CMakeLists.txt
, чтобы преобразовать разделители путей прямой обратной косой черты CMake в обратный слеш в стиле Windows, в противном случае файлы будут скомпилированы, но они не будут отображаться как ссылки в проекте Visual Studio:
FILE(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}" DOS_STYLE_SOURCE_DIR)
Тогда это просто:
CONFIGURE_FILE(MyProject.csproj.template MyProject.csproj)
В вашем CMakeLists.txt
, чтобы сконфигурировать файл шаблона в реальный файл проекта с правильным подстановочным путем.
НТН.