Я разработал фреймворк 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>
для использования моего внутреннего заголовочного файла, который я не хочу, чтобы мой клиентский пользователь включал.
кто-нибудь может помочь?
все равно спасибо, прости мой плохой английский.