【发布时间】:2013-11-15 18:14:20
【问题描述】:
我的公司有自己的 idl 编译器,我让 CMake 在构建过程中生成文件。我希望 .idl 文件位于 Visual Studio 项目中,但这意味着我最终会导致微软试图用 midl 编译 idl 文件(这很失败)。
我知道我的问题与Adding data files to cmake-generated projects 非常相似,但主要区别在于微软确实有一个编译器,我只是不想让他们使用它。
-更新-
这是一个将 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。
任何帮助将不胜感激。
-更新 2-
我可以通过添加 /? 来破解“解决”问题的方法?到 Visual Studio 中的 midl 命令行(但我不能要求每个开发人员每次构建时都这样做),所以如果有人知道如何从 cmake 向 midl 命令行添加参数,那也会有所帮助。
【问题讨论】: