Я знаю, что в CMake 3 и более поздних версиях цели имеют всевозможные свойства или атрибуты, которые можно установить (с видимостью PRIVATE, PUBLIC или INTERFACE), и что теоретически простое указание одной цели зависит от другой цели, может позаботиться обо всем для меня.
Но как мне это сделать на практике? В частности, предположим, что у меня есть:
ExternalProject_Add(foo_project
PREFIX CMakeFiles/foo_project
TMP_DIR CMakeFiles/foo_project/tmp
STAMP_DIR CMakeFiles/foo_project/stamp
GIT_REPOSITORY git@github.com:joeuser/foo.git
GIT_TAG 8d6e40a6c6c5a634a656b00f15e118968d01476e
UPDATE_COMMAND ""
SOURCE_DIR "${BASE_DIR_FOR_THIRD_PARTY_CODE}/foo"
BUILD_IN_SOURCE 1
INSTALL_COMMAND ""
)
И у меня есть некоторый исполняемый файл bar, созданный из bar.cpp - включая заголовки foo и ссылки на библиотеки foo. Какой правильный способ настроить это?