我想在我的项目中使用多个外部CMake文件。不幸的是,两个不同的文件使用相同的CMake函数名称foo
。我不想修改这些外部文件。
有没有一种方法可以调用一个特定的函数,否则CMake会出错吗?如果其中一个函数具有命名参数,即foo(a b c …)
和foo(DESTINATION a b c …)
会有所帮助吗?
答案 0 :(得分:1)
新功能的定义替换,具有相同的名称。因此,无法访问以前的功能。
如果在不同的子项目中使用了不同的功能(但名称相同),则可以尝试将一个子项目构建为ExternalProject
,这样就不会发生功能冲突。
在CMake中,任何函数定义都包含调用者的唯一信息-参数的最小数量,应将其传递给函数。通过使用此信息,如果可以实现,则无法解决函数的重载。