Распространение ITK как зависимости между несколькими родительскими проектами в Cmake – проблема с управлением версиямиC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Распространение ITK как зависимости между несколькими родительскими проектами в Cmake – проблема с управлением версиями

Сообщение Anonymous »

Итак, я разработал библиотеку B, которая является зависимостью (используется) библиотекой A и имеет (она использует) ITK как зависимость. Таким образом, A зависит от B, а B зависит от ITK. Когда я собираю B, все в порядке. Решение проекта B (MS Visual Studio) содержит дополнительные зависимости ITK в формате ITKCommon-5.3.lib. Однако когда я собираю A, его решение содержит дополнительные зависимости, такие как ITKCommon.lib, что является проблемой, поскольку нет файлов lib без версии. К сожалению, я не могу понять, в чем проблема. Вот соответствующие части файлов Cmake:
CMakeLists.txt из A

Код: Выделить всё

add_subdirectory(${CMAKE_CURRENT_LIST_DIR}/../B ${CMAKE_CURRENT_LIST_DIR}/../B/build)
target_link_libraries(A
PUBLIC
${CMAKE_CURRENT_LIST_DIR}/../B/build/$$/RLnavigationLib.lib
${ITK_LIBRARIES}
)
CMakeLists.txt из B

Код: Выделить всё

cmake_minimum_required(VERSION 3.14)

project(B)

add_library(B SHARED B.h B.cpp)

set(ITK_DIR "${CMAKE_CURRENT_LIST_DIR}/../../OTS/itk/build")
include(${CMAKE_CURRENT_LIST_DIR}/../cmake/getITK.cmake)

target_link_libraries(B PUBLIC ${ITK_LIBRARIES})
target_include_directories(B PUBLIC ${ITK_INCLUDE_DIRS})

# Ensure that B is built only after ITK is fully available
add_dependencies(B ITK_DEPENDS)

set_target_properties(B PROPERTIES
LIBRARY_OUTPUT_DIRECTORY_DEBUG "${PROJECT_BINARY_DIR}/_build/Debug/bin"
LIBRARY_OUTPUT_DIRECTORY_RELEASE "${PROJECT_BINARY_DIR}/_build/Release/bin"
)

target_compile_definitions(B PRIVATE B_EXPORT)
getITK.cmake

Код: Выделить всё

# Build as an idependent project during build time of the parent project
include(ExternalProject)

set(ITK_SRC_DIR ${CMAKE_CURRENT_LIST_DIR}/../../OTS/itk)
set(ITK_BIN_DIR ${ITK_SRC_DIR}/build)

find_package(ITK QUIET)

if(NOT ITK_FOUND)
message(STATUS "ITK Runtime not found, will be downloaded in build phase into ${ITK_SRC_DIR} and builded to ${ITK_BIN_DIR} ...")

# Download ITK Runtime
ExternalProject_Add(
ITK
GIT_REPOSITORY https://github.com/InsightSoftwareConsortium/ITK.git
GIT_TAG v5.3.0
SOURCE_DIR ${ITK_SRC_DIR}
BINARY_DIR ${ITK_BIN_DIR}
BUILD_IN_SOURCE 0
CMAKE_ARGS
-DITK_BUILD_DEFAULT_MODULES=OFF
-DModule_ITKDistanceMap=ON
-DBUILD_SHARED_LIBS=ON
-DITK_SKIP_PATH_LENGTH_CHECKS=ON
)

find_package(ITK REQUIRED)

endif()

add_custom_target(ITK_DEPENDS ALL DEPENDS ITK)

set(ITK_INCLUDE_DIRS ${ITK_INCLUDE_DIRS} CACHE INTERNAL "ITK include dirs")
set(ITK_LIBRARIES ${ITK_LIBRARIES} CACHE INTERNAL "ITK libraries")
Учтите, что библиотека ITK загружена и собрана правильно, поэтому она находится в начале getITK.cmake и не будет использовать ExternalProject_Add().< /п>

Подробнее здесь: https://stackoverflow.com/questions/790 ... s-in-cmake
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Проблема с управлением обработкой и управлением cookie Fastapi
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Проблема с управлением обработкой и управлением cookie Fastapi
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Проблема с управлением обработкой и управлением cookie Fastapi
    Anonymous » » в форуме Python
    0 Ответы
    21 Просмотры
    Последнее сообщение Anonymous
  • Проблема с управлением обработкой и управлением cookie Fastapi
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Проблема с управлением обработкой и управлением cookie Fastapi
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C++»