Не могу найти хороший каталог include и lib в моем проекте после find_package - PullRequest
0 голосов
/ 10 июня 2018

Я создаю свою собственную библиотеку, используя этот файл CMakeLists.txt:

PROJECT (AstroLib)
cmake_minimum_required(VERSION 3.0)

set(AALib_VERSION_MAJOR 1 CACHE STRING "major version" FORCE)
set(AALib_VERSION_MINOR 95 CACHE STRING "minor version" FORCE)
set(AALib_VERSION ${AALib_VERSION_MAJOR}.${AALib_VERSION_MINOR} CACHE STRING "version" FORCE)


set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE ON)

include(GenerateExportHeader)


file(GLOB AALib_SRCS     "AALIb/source/*.cpp")
file(GLOB AALib_Headers     "AALIb/include/*.h" "AALIb/include/*.hpp")

message ("AALib_VERSION ${AALib_VERSION}")
message ("CMAKE_CURRENT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR}")
message ("CMAKE_CURRENT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}")


add_library (AALib STATIC ${AALib_SRCS})

target_include_directories(AALib PUBLIC
    $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/AALib/include>
    $<INSTALL_INTERFACE:include>
    PRIVATE AALib/source)

generate_export_header( AALib )

set_property(TARGET AALib PROPERTY VERSION ${AALib_VERSION})

install(TARGETS AALib EXPORT AALibConfig
  LIBRARY DESTINATION "lib/${CMAKE_BUILD_TYPE}"
  ARCHIVE DESTINATION "lib/${CMAKE_BUILD_TYPE}"
  RUNTIME DESTINATION bin
  INCLUDES DESTINATION include
)
install(FILES "${CMAKE_CURRENT_BINARY_DIR}/AALib_export.h"  DESTINATION include   COMPONENT    Devel)
install(FILES ${AALib_Headers} DESTINATION include)

include(CMakePackageConfigHelpers)
write_basic_package_version_file(
  "${CMAKE_CURRENT_BINARY_DIR}/AALib/AALibConfigVersion.cmake"
  VERSION ${AALib_VERSION}
  COMPATIBILITY AnyNewerVersion
)

export(TARGETS AALib
  FILE "${CMAKE_CURRENT_BINARY_DIR}/AALib/AALibConfig.cmake"
  NAMESPACE Upstream::
)

install(EXPORT AALibConfig DESTINATION AALib/cmake)

set(FOO "rtatzera")
#configure_file(AALibTargets.cmake   "${CMAKE_CURRENT_BINARY_DIR}/AALib/AALibConfig.cmake"  COPYONLY)

set(ConfigPackageLocation lib/cmake/AALib)

message ("ConfigPackageLocation ${ConfigPackageLocation}")

install(EXPORT AALibConfig
  FILE
    AALibConfig.cmake
  NAMESPACE
    Upstream::
  DESTINATION
    ${ConfigPackageLocation}
)

Я запускаю cmake-gui с этим файлом cmakelists.txt, и я могу собрать и установить свою библиотеку на своем компьютере.

Теперь я хочу использовать эту библиотеку в другом проекте, используя этот файл cmakelists.txt:

cmake_minimum_required(VERSION 3.0)

PROJECT (DataMeteo)

find_package(OpenCV  REQUIRED)
find_package(AALib  REQUIRED)


file(GLOB DataMeteo_SRCS
    "*.h"
    "*.cpp")
ADD_EXECUTABLE (DataMeteo ${DataMeteo_SRCS})

message ( "AALib = ${AAlib}")
if (OpenCV_FOUND AND AALib_FOUND)
    target_link_libraries( DataMeteo PUBLIC  ${AALIb_} ${OpenCV_LIBS})
else (OpenCV_FOUND AND AALib_FOUND)
     message("OPENC not found or AALib NOT FOUND ")
endif (OpenCV_FOUND AND AALib_FOUND)

В проекте VS я могу найти все библиотеки opencv и include, но я не могу найти include и lib из моей собственной библиотеки,Когда я запускаю cmake-gui, ошибки не возникает.

Где находятся ошибки в моем коде (cmakelists.txt)?

Конфигурация Windows 10 64 бита VS2017 CMake 3.11.0

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