使用Xcode 5进行CMake:如何添加外部库作为' Target Dependencies'而不是链接器标志?

时间:2014-04-08 08:16:19

标签: xcode macos linker cmake

我们正在OS X(目前为10.8)下构建我们的软件。项目构建由CMake(2.8.12)管理。

外部依赖关系(即不是由项目的 CMakeLists 添加的目标)使用我们不喜欢的规范方式处理:

  • 从根 CMakeLists 调用find_package(${external_lib})
  • 如果指定的目标需要与之前找到的包相关联,则目标的 CMakeLists 会调用target_link_libraries(${TARGET_NAME} ${${external_lib}_LIBRARIES})

从构建角度来看,该过程很有效(目标实际上是与外部库链接)。然而,外部库实际上是作为编译器的附加标志,在Build Settings::Other Linker Flags中,当看起来Xcode本地方式用于将 dirname 添加到Build Settings::Library Search Path时},以及基本名称Build phases::Target Dependencies

有没有办法实现这种行为(不破坏其他平台的行为)?

1 个答案:

答案 0 :(得分:0)

多年前,CMake的行为发生了变化,使用完整路径。

http://www.cmake.org/cmake/help/v3.0/policy/CMP0003.html

你为什么要分开它?