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

Sha*_*ley 8 cmake visual-studio-2010

我的公司有自己的idl编译器,我有CMake生成文件作为构建过程的一部分.我希望.idl文件在visual studio项目中,但这意味着我最终会尝试用midl编译idl文件(这可能会失败).

我知道我的问题与向cmake生成的项目添加数据文件非常相似,但主要区别在于microsoft确实有一个编译器,我只是不希望它们使用它.

-update-

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

function foo()
    add_custom_command...
    set(HEADERS ${HEADERS} bar.idl PARENT_SCOPE)
    source_group("Source Files\\idl Files" REGULAR_EXPRESSION .*.idl)
endfunction()
Run Code Online (Sandbox Code Playgroud)

然后 - 在我打电话给foo之后 - 我打电话 add_executable(${PROJECT_NAME} ${SOURCES} ${HEADERS})

我注意到的一件事是nmake将编译我想要它编译的方式,但是visual studio将调用添加到我不想要的midl.

任何帮助将不胜感激.

-update 2-

我可以通过添加/来破解"修复"问题的方法.到visual studio里面的midl命令行(但我不能要求每个开发人员每次构建时都这样做),所以如果有人知道如何从cmake向midl命令行添加一个参数也会有所帮助.

Fra*_*ser 9

它可能也是一个黑客,但我认为你可以通过将.idl文件标记为HEADER_FILE_ONLY:

set_source_files_properties(${HEADERS} PROPERTIES HEADER_FILE_ONLY TRUE)
Run Code Online (Sandbox Code Playgroud)