CMake с IOS Framework - PullRequest
       17

CMake с IOS Framework

0 голосов
/ 17 июня 2019

Я разработал фреймворк ios, который использовал CMake. Я пишу приведенные ниже сценарии в CMakeLists.txt, чтобы я мог использовать команду cmake для создания каталога .xcodeproj, чтобы я мог использовать его в xcode.

set(LIB_NAME mylib)
set(LIB_TYPE STATIC)
file(GLOB_RECURSE EXTRA_FILES platform/ios/*.mm platform/ios/*.m platform/ios/*.h)

file(GLOB_RECURSE SOURCE_FILES
        "src/*.cpp"
        "src/*.c"
        "src/*.h"
        "src/*.hpp")

source_group(${CMAKE_CURRENT_SOURCE_DIR} FILES ${SOURCE_FILES})

add_library(${LIB_NAME} ${LIB_TYPE} ${SOURCE_FILES} ${EXTRA_FILES})
target_link_libraries(${LIB_NAME} ${LIBEVENT} ${LIBxxx} ${EXTRA_LIBS})

file(GLOB_RECURSE IOS_PUBLIC_HEADERS "${PROJECT_SOURCE_DIR}/platform/ios/*.h")
set_target_properties(${LIB_NAME} PROPERTIES
            FRAMEWORK TRUE
            MACOSX_FRAMEWORK_IDENTIFIER xxxx.xxxx
            MACOSX_FRAMEWORK_INFO_PLIST 
            ${PROJECT_SOURCE_DIR}/platform/ios/Info.plist
            PUBLIC_HEADER "${IOS_PUBLIC_HEADERS}"
            XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer"
            )

и после того, как я ввожу эту команду в cli, я могу создать фреймворк IOS в каталоге Products.

cmake ../.. -GXcode -DCMAKE_TOOLCHAIN_FILE=../../ios.toolchain.cmake

Переменная IOS_PUBLIC_HEADERS содержит некоторые заголовочные файлы, которые я хочу, чтобы кто-то использовал, используя мою инфраструктуру. Проблема в том, что когда я использую фреймворк в моей демонстрации, компиляция говорит:

"view/Baseview.h" file not found.

Некоторые заголовочные файлы в переменной IOS_PUBLIC_HEADERS используют директиву import <view/Baseview.h> для использования моего внутреннего заголовочного файла, который я не хочу, чтобы мой клиентский пользователь включал.

кто-нибудь может помочь?

все равно спасибо, прости мой плохой английский.

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