У меня есть файл списка CMake, который собирает имеющуюся у меня библиотеку c ++, включая 5 сторонних библиотек c ++, которые также создаются с помощью cmake. Этот проект создает библиотеку Android .aar и платформу iOS.
Хотя андроид работает без нареканий, я нахожу проблему после проблемы с iOS. Мне удается создать файл .framework, но он НЕ включает сторонние библиотеки (которые создаются правильно), поэтому для возможности использования .framework мне в конечном итоге необходимо вручную добавить сторонние библиотеки в проект моего приложения ,
Как я могу сказать CMake, что библиотеки должны быть включены / встроены / поставлены с файлом .framework?
Что у меня сейчас есть:
...
# libpng
include_directories(${ROOT}/thirdparties/libpng)
include_directories(${CMAKE_CURRENT_BINARY_DIR}/thirdparties/libpng)
set(PNG_PNG_INCLUDE_DIR ${ROOT}/thirdparties/libpng)
set(PNG_LIBRARY png16_static)
set(PNG_SHARED OFF)
set(PNG_TESTS OFF CACHE BOOL "skip tests for libpng")
add_subdirectory(${ROOT}/thirdparties/libpng)
... (almost the same for all third party libraries)
if( IOS )
add_library(myLibrary STATIC ${SOURCES} ${SOURCES_JNI} ${SOURCES_MYSQL} ${PUBLIC_HEADER} ${RESOURCES})
else()
add_library(myLibrary SHARED ${SOURCES} ${SOURCES_JNI} ${SOURCES_MYSQL} ${PUBLIC_HEADER} ${RESOURCES})
endif()
target_link_libraries(myLibrary
hpdfs
png16_static
${mysqlcppconn}
zlibstatic
${CRYPTO_LIBRARY}
${PTHREAD}
)
Заранее спасибо за помощь!