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

时间:2013-11-15 18:14:20

标签: visual-studio-2010 cmake

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

我知道我的问题与Adding data files to cmake-generated projects非常相似,但主要区别在于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()

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

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

非常感谢任何帮助。

-update 2 -

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

1 个答案:

答案 0 :(得分:7)

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

set_source_files_properties(${HEADERS} PROPERTIES HEADER_FILE_ONLY TRUE)
相关问题