CMake - опционально включает статическую библиотеку, если она скомпилирована в подпроекте - PullRequest
0 голосов
/ 07 ноября 2019

У нас есть проект, в котором на основе некоторых настроек мы можем или не можем скомпилировать статическую библиотеку в нашем проекте. В случае, если мы не создадим его, мы будем использовать фиктивную реализацию, которая обернута в макрос DUMMY_LIB_IMPL. Чтобы быть более ясным,

{ROOT_DIR}/ 
  CMakeLists.txt
  |
  |_ P1/CMakeLists.txt --> The cmake file which has the below snippet
  |_ P2/CMakeLists.txt --> May/MayNot compile "lib_that_may_be_compiled_by_us"

Так что это часть того, с чем мы закончили в P1 / CMakeLists.txt

find_library(OPTIONAL_LIB lib_that_may_be_compiled_by_us)
if(OPTIONAL_LIB)
    target_link_libraries(p1 lib_that_may_be_compiled_by_us)
    message("Found library at" ${OPTIONAL_LIB})
else()
    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DDUMMY_LIB_IMPL")
    message("Could not find client library enabling MACRO DUMMY_LIB_IMPL")
endif()

К сожалению, find_lib (...) здесь делаетПохоже, не сможет найти библиотеку. Попытка добавить путь, по которому мы его строим, но не помогает.

Есть ли альтернативный способ добиться чего-то подобного? Что не так с текущим фрагментом выше?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...