我正在试图从.cs文件集中构buildcsharp dll。 我使用add_library()函数来添加源文件(.cs文件)。但它给出警告,如“add_library for library libname without any source files”。请提供一个解决scheme使其工作。
提前致谢。
CMakeLists.txt是:
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目前对C#没有语言支持。
特别是, add_library
命令不能使用.cs
源文件。 您可以尝试使用自定义目标来手动处理所有编译,但请注意,这是非常困难的,并且收益有限。
另外,看看CMake的ExternelProject_Add
。 如果你只想在更大的CMake环境中使用MSBuild构建一个外部的.csproj,那么这可能是正确的选择。