add_library不cmake的工作CSHARP添加源文件? [英] add_library is not working in cmake for adding csharp source files?

查看:1983
本文介绍了add_library不cmake的工作CSHARP添加源文件?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图搭建起集的.cs文件CSHARP DLL。我用add_library()函数添加源文件(文件的.cs)。但是它给警告,如add_library图书馆LIBNAME没有任何的源文件。请提供一个解决方案,它的工作。



在此先感谢



的CMakeLists.txt是:

  cmake_minimum_required(版本2.8)

项目(MyAddIn)

AUX_SOURCE_DIRECTORY($ {CMAKE_CURRENT_SOURCE_DIR} / MyAdd-IN / MyAddIn_SOURCES)


SET_SOURCE_FILES_PROPERTIES($ {MyAddIn_SOURCES}属性的语言CSHARP)

ADD_LIBRARY(AddInTrg SHARED $ {MyAddIn_SOURCES})

SET_TARGET_PROPERTIES(AddInTrg性能
LINKER_LANGUAGE CSHARP
RUNTIME_OUTPUT_DIRECTORY斌
RUNTIME_OUTPUT_DIRECTORY_DEBUG斌
RUNTIME_OUTPUT_NAME MyAddIn_Bin
ARCHIVE_OUTPUT_DIRECTORY LIB
ARCHIVE_OUTPUT_DIRECTORY_DEBUG LIB
output_name中MyAddIn_Bin)

add_custom_command(OUTPUT $ {} CMAKE_BINARY_DIR /bin/MyAddIn_Bin.dll
$ working_directory的{} CMAKE_CURRENT_SOURCE_DIR / MyAdd-在
命令C:/WINDOWS/Microsoft.NET/Framework/v3.5/csc.exe
ARGS
-target:库
$退房手续{} CMAKE_CURRENT_BINARY_DIR /bin/MyAddIn_Bin.dll
$ {} CMAKE_CURRENT_SOURCE_DIR /MyAdd-In/Ribbon.cs$ {} CMAKE_CURRENT_SOURCE_DIR / MyAdd -in / ThisAddIn.cs$ {} CMAKE_CURRENT_SOURCE_DIR /MyAdd-In/Ribbon.xml
COMMENT - 生成的AddIn DLL的)


解决方案

的CMake目前拥有C#没有语言支持。



在特定的,在 add_library 命令将不会与的.cs 源文件。你可以尝试将处理所有的编译使用自定义目标手动,但要知道,这是极其不易拉断而涨幅有限。



同时,采取看的CMake的 ExternelProject_Add 。如果你想要的是建立使用的MSBuild从一个更大的CMake环境内外部的.csproj这可能是正确的选择。


I am trying to build the csharp dll from the set of .cs files. I used add_library() function to add the source files(.cs files).But it is giving warning like "add_library for library libname without any source files".Please provide a solution to make it to work.

Thanks in advance.

CMakeLists.txt is:

cmake_minimum_required(VERSION 2.8)

project(MyAddIn)

AUX_SOURCE_DIRECTORY(${CMAKE_CURRENT_SOURCE_DIR}/MyAdd-In/ MyAddIn_SOURCES)     


SET_SOURCE_FILES_PROPERTIES(${MyAddIn_SOURCES} PROPERTIES LANGUAGE CSharp)

ADD_LIBRARY(AddInTrg SHARED ${MyAddIn_SOURCES})

SET_TARGET_PROPERTIES(AddInTrg PROPERTIES 
                               LINKER_LANGUAGE CSharp
                               RUNTIME_OUTPUT_DIRECTORY bin
                               RUNTIME_OUTPUT_DIRECTORY_DEBUG bin
                               RUNTIME_OUTPUT_NAME MyAddIn_Bin
                               ARCHIVE_OUTPUT_DIRECTORY lib
                               ARCHIVE_OUTPUT_DIRECTORY_DEBUG lib
                               OUTPUT_NAME MyAddIn_Bin)

add_custom_command(OUTPUT ${CMAKE_BINARY_DIR}/bin/MyAddIn_Bin.dll
                   WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/MyAdd-In
                   COMMAND C:/WINDOWS/Microsoft.NET/Framework/v3.5/csc.exe
                   ARGS 
                   -target:library                 
                   -out ${CMAKE_CURRENT_BINARY_DIR}/bin/MyAddIn_Bin.dll
                   "${CMAKE_CURRENT_SOURCE_DIR}/MyAdd-In/Ribbon.cs" "${CMAKE_CURRENT_SOURCE_DIR}/MyAdd-In/ThisAddIn.cs" "${CMAKE_CURRENT_SOURCE_DIR}/MyAdd-In/Ribbon.xml"
                   COMMENT "-- Generating AddIn Dll")

解决方案

CMake currently has no language support for C#.

In particular, the add_library command will not work with .cs source files. You could attempt to handle all of the compilation manually using custom targets, but be aware that this is extremely difficult to pull off and the gains are limited.

Also, take a look at CMake's ExternelProject_Add. This might be the right choice if all you want is to build an external .csproj using MSBuild from within a bigger CMake environment.

这篇关于add_library不cmake的工作CSHARP添加源文件?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆