Скопируйте целевой файл перед установкой ссылки на другой (CMake) - PullRequest
0 голосов
/ 27 августа 2018

У меня есть CMakeLists.txt, который собирает некоторый плагин c ++ и другой CMakeLists.txt, который собирает приложение, которое должно загрузить этот плагин. Перед запуском приложения мне нужно скопировать файл плагина по некоторому пути относительно двоичного файла приложения (скажем, path_to_executable/Plugins).

Плагин CMakeLists.txt:

...

add_library(plugin SHARED lib.cpp)

...

приложений CMakeLists.txt:

...

target_sources(app PRIVATE main.cpp)
add_subdirectory(plugin_subfolder)
add_dependencies(app plugin)
???

Как я могу создать правило, которое гарантирует, что файл плагина находится в правильном месте перед компиляцией цели app?

1 Ответ

0 голосов
/ 27 августа 2018

Вы можете создать свою библиотеку прямо в том месте, где вам нужно, без любого двухэтапного процесса, сначала создав ее где-то, а затем скопировав (что также возможно). Для этого вы можете установить свойство LIBRARY_OUTPUT_DIRECTORY в своей библиотеке:

set_target_properties(plugin PROPERTIES LIBRARY_OUTPUT_DIRECTORY 
    "path_to_executable/Plugins")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...