我正在使用CMake 2.8.8和ExternalProject
模块。 CMake检索项目的源文件并正确构建它们(在unix上生成project.a
和project.so
个文件。我想总是使用动态库。我怎么能这样做,仍然是跨平台的?
我试过
list(
APPEND foo_LIBRARIES
${binary_dir}/${CMAKE_FIND_LIBRARY_PREFIXES}project${CMAKE_FIND_LIBRARY_SUFFIXES}
)
但这不起作用,因为{CMAKE_FIND_LIBRARY_SUFFIXES}
是.a;.so
的列表。
list(
APPEND foo_LIBRARIES
${binary_dir}/${CMAKE_FIND_LIBRARY_PREFIXES}project.so
)
有效,但仅适用于unix系统。有没有一种干净的方法来实现这一目标?
答案 0 :(得分:2)
鉴于WIN32
${CMAKE_FIND_LIBRARY_SUFFIXES}
只是.lib
,您可以执行以下操作:
set(ProjectSuffix ${CMAKE_FIND_LIBRARY_SUFFIXES})
list(REMOVE_ITEM ProjectSuffix .a)
list(APPEND foo_LIBRARIES
${binary_dir}/${CMAKE_FIND_LIBRARY_PREFIXES}project${ProjectSuffix})