Отложенная линковка библиотек из одного sub-модуля в другой sub-модуль
Так получилось что у меня получился в какой то момент проект в котором есть sub-модуль, в котором есть sub-модуль .... Примерно 5-6 проектов которые каскадно друг в друге. Это не удобно читать и использовать. Если реализовать через find_package, то проект станет гибче, можно будет подключать sub-модуль с библиотекой или использовать какую нибудь системную.
И тогда структура будет не каскадная, а достаточно обычная. В рабочем проекте будут подключены все sub-модули.
Теперь побольше конкретики:
Project
-> subs
-> lib_one
-> lib_two
Во второй библиотеке нужна логика из первой библиотеки.
1) Первая библиотека CMakeLists.txt:
cmake_minimum_required(VERSION 3.6)
set(One_SOURCES
One.h
One.cpp
)
add_library(One_LIB STATIC ${One_SOURCES})
2) Вторая библиотека CMakeLists.txt:
cmake_minimum_required(VERSION 3.6)
set(Two_SOURCES
./Two.cpp
./Two.h
)
add_library(Two_LIB STATIC ${Two_SOURCES})
find_package(One_LIB)
target_link_libraries(Two_LIB PRIVATE One_LIB)
В основном проекте CMakeLists.txt:
cmake_minimum_required(VERSION 3.6)
set(PROJ_NAME MAIN)
project(${PROJ_NAME})
set(SOURCES
./main.cpp
)
add_executable(${PROJ_NAME} ${SOURCES})
add_subdirectory(subs)
find_package(One_LIB)
target_link_libraries(${PROJ_NAME} PRIVATE One_LIB)
find_package(Two_LIB)
target_link_libraries(${PROJ_NAME} PRIVATE Two_LIB)
Этот примерный проект, упрощенный. И он собирается. Хотя есть Warning. Мой же полный проект не собирается, как мне кажется по причине неправильного подключение библиотек.
Прошу помочь разобраться или возможно Вы можете поделиться ссылкой на хорошие источники на эту тему. Буду Вам очень признателен.