在cmake中添加符号链接而不使用“make install”

在cmake中添加符号链接而不使用“make install”,cmake,Cmake,我有很多图书馆要建。对于每个库,我创建3个sym链接。 我使用以下方法创建两个符号链接: add_library(${PROJECT_NAME} ${SRC}) set_target_properties(${PROJECT_NAME} PROPERTIES SOVERSION ${perception_kit_VERSION}) target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS} ${Boost_LIBS}) 但其余两个是通过以下方式创建

我有很多图书馆要建。对于每个库,我创建3个sym链接。 我使用以下方法创建两个符号链接:

add_library(${PROJECT_NAME} ${SRC})
set_target_properties(${PROJECT_NAME} PROPERTIES SOVERSION ${perception_kit_VERSION})
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS} ${Boost_LIBS})
但其余两个是通过以下方式创建的:

#code for generating symlink. will work with make install
if (CMAKE_HOST_UNIX)
  set (libname_major_minor_patch "lib${PROJECT_NAME}.so.${perception_kit_VERSION_MAJOR}.${perception_kit_VERSION_MINOR}.${perception_kit_VERSION_PATCH}")
  set (libname_major_minor "lib${PROJECT_NAME}.so.${perception_kit_VERSION_MAJOR}.${perception_kit_VERSION_MINOR}")
  set (libname_major "lib${PROJECT_NAME}.so.${perception_kit_VERSION_MAJOR}")
  set (libname "lib${PROJECT_NAME}.so")

  install(CODE "
          EXECUTE_PROCESS (COMMAND ln -sf ${libname_major_minor_patch} ${libname_major_minor}  WORKING_DIRECTORY ${LIBRARY_OUTPUT_PATH} )
")
  install(CODE "
          EXECUTE_PROCESS (COMMAND ln -sf ${libname_major_minor_patch} ${libname_major}  WORKING_DIRECTORY ${LIBRARY_OUTPUT_PATH} )
")

endif(CMAKE_HOST_UNIX)

后两个仅在使用make install时创建。有没有一种方法可以在不使用make-install的情况下创建所有sym链接

要执行生成后命令,可以使用

所以在这种情况下,我想你会想要

add_custom_command(
    TARGET ${PROJECT_NAME} POST_BUILD
    COMMAND ln -sf ${libname_major_minor_patch} ${libname_major_minor}
    COMMAND ln -sf ${libname_major_minor_patch} ${libname_major}
)

要执行生成后命令,可以使用

所以在这种情况下,我想你会想要

add_custom_command(
    TARGET ${PROJECT_NAME} POST_BUILD
    COMMAND ln -sf ${libname_major_minor_patch} ${libname_major_minor}
    COMMAND ln -sf ${libname_major_minor_patch} ${libname_major}
)