CMake FindPackage не работает для пользовательских библиотек наддува - PullRequest
0 голосов
/ 30 апреля 2020

Я пытаюсь создать собственный проект Android, для которого требуется библиотека Boost. Я создал Boost для платформ, на которые нацеливаюсь, используя этот git проект . Но по какой-то причине find_package () для Boost не может найти пути заголовка Boost

Ниже приведена структура проекта и приложения Android, а также место, где я разместил библиотеку Boost.

android_app
  ├── src
  │   └──<folder>
  │      └──<folder>
  │         └──CMakeLists.txt
  └── lib
      └── boost_armeabi-v7a
          ├── include
          │   └── boost_1_68_0
          │       └──boost
          │          ├──align.hpp
          │          ├──......
          │          └──config.hpp
          └── lib
              ├──libboost_atomic.a
              ├──......
              └──libboost_wserialization.a

В файле CMake, который я настроил следующим образом

set(Boost_NO_SYSTEM_PATHS ON)
set(Boost_NO_BOOST_CMAKE ON)

set(LOCAL_LIB_DIR "${PROJECT_SOURCE_DIR}/../../../lib")
set(Boost_ADDITIONAL_VERSIONS   "1.68.0")

set(BOOST_INCLUDEDIR "${LOCAL_LIB_DIR}/boost_${ANDROID_ABI}/include")
set(BOOST_LIBRARYDIR "${LOCAL_LIB_DIR}/boost_${ANDROID_ABI}/lib")

find_package(Boost REQUIRED)

Ниже приведена ошибка, которую я получаю при find_package.

Unable to find the Boost header files.  Please set BOOST_ROOT to the root 
directory containing Boost or BOOST_INCLUDEDIR to the directory containing Boost's headers.

Я добавил несколько операторов сообщений и, наконец, суженный до этого фрагмента кода в файле FindBoost CMake (3.10.2), установленном из Android Studio

find_path(Boost_INCLUDE_DIR
        NAMES         boost/config.hpp
        HINTS         ${_boost_INCLUDE_SEARCH_DIRS}
        PATH_SUFFIXES ${_boost_PATH_SUFFIXES}
    )

Сбрасывая туда переменные, одна из комбинаций для {_boost_INCLUDE_SEARCH_DIRS}/{_boost_PATH_SUFFIXES} должна быть допустимой для моего пути , но после этого Boost_INCLUDE_DIR устанавливается как NOTFOUND. Я понятия не имею, почему это не получается.

Одно из значений _boost_INCLUDE_SEARCH_DIRS равно /home/<user>/<path-to-repo>/app/lib/boost_armeabi-v7a/include, а одно из значений в PATH_SUFFIXES равно boost_1_68_0. Может кто-нибудь помочь мне понять, почему это не удается?

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