区分两个具有相同名称的函数

时间:2018-11-22 22:52:53

标签: cmake

我想在我的项目中使用多个外部CMake文件。不幸的是,两个不同的文件使用相同的CMake函数名称foo。我不想修改这些外部文件。
有没有一种方法可以调用一个特定的函数,否则CMake会出错吗?如果其中一个函数具有命名参数,即foo(a b c …)foo(DESTINATION a b c …)会有所帮助吗?

1 个答案:

答案 0 :(得分:1)

新功能的定义替换,具有相同的名称。因此,无法访问以前的功能。

如果在不同的子项目中使用了不同的功能(但名称相同),则可以尝试将一个子项目构建为ExternalProject,这样就不会发生功能冲突。


在CMake中,任何函数定义都包含调用者的唯一信息-参数的最小数量,应将其传递给函数。通过使用此信息,如果可以实现,则无法解决函数的重载。