Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 将文件添加到CMake但不编译它们_Visual Studio 2010_Cmake - Fatal编程技术网

Visual studio 2010 将文件添加到CMake但不编译它们

Visual studio 2010 将文件添加到CMake但不编译它们,visual-studio-2010,cmake,Visual Studio 2010,Cmake,我的公司有自己的idl编译器,我有CMake生成文件作为构建过程的一部分。我希望.idl文件在VisualStudio项目中,但这意味着我最终会遇到microsoft试图用midl编译idl文件的情况(失败得很惨) 我知道我的问题与非常相似,但主要区别在于微软有一个编译器,我只是不想让他们使用它 -更新- 下面是将idl文件添加到解决方案的函数的代码示例(整个代码太多了,但是如果有任何声明可能有助于回答问题,请告诉我): 然后稍后-在我调用foo之后-我调用add_executable(${PR

我的公司有自己的idl编译器,我有CMake生成文件作为构建过程的一部分。我希望.idl文件在VisualStudio项目中,但这意味着我最终会遇到microsoft试图用midl编译idl文件的情况(失败得很惨)

我知道我的问题与非常相似,但主要区别在于微软有一个编译器,我只是不想让他们使用它

-更新-

下面是将idl文件添加到解决方案的函数的代码示例(整个代码太多了,但是如果有任何声明可能有助于回答问题,请告诉我):

然后稍后-在我调用foo之后-我调用
add_executable(${PROJECT_NAME}${SOURCES}${HEADERS})

我注意到的一点是,nmake将按照我希望的方式编译,但是VisualStudio添加了我不希望的对midl的调用

任何帮助都将不胜感激

-更新2-


我可以通过添加/?到VisualStudio内部的midl命令行(但我不能要求每个开发人员在每次构建时都这样做),因此如果有人知道如何从cmake向midl命令行添加参数,这也会有所帮助。

这可能是一个小技巧,但我认为可以通过将.idl文件标记为:


工作起来很有魅力,还帮你做了另一件很好的事情。非常感谢你!
function foo()
    add_custom_command...
    set(HEADERS ${HEADERS} bar.idl PARENT_SCOPE)
    source_group("Source Files\\idl Files" REGULAR_EXPRESSION .*.idl)
endfunction()
set_source_files_properties(${HEADERS} PROPERTIES HEADER_FILE_ONLY TRUE)