参考文档:
tvm_phone/tvm-cmake-ios.md at master · zhaowd2001/tvm_phone · GitHub
https://blog.csdn.net/qq_38743313/article/details/101601778/
参考了前面几个文档,发现都不是最好的解决办法,准确的说就没起作用,哈哈哈。
我的测试目录结构如下:
根目录/
assets/test.txt
interface/test/somefile.h
src/somefile.cpp
CMakeLists.txt
ios.toolchain.cmake
build.sh
assets是我想直接复制到framework中去的资源
CMakeLists.txt内容如下
cmake_minimum_required(VERSION 3.10.2)
project(CMakeTestLib)
enable_language(CXX)
set(LIBRARY_OUTPUT_PATH ${CMAKE_SOURCE_DIR}/lib/${OUTPUT_PATH})
file(GLOB_RECURSE SOURCE_FILES ${CMAKE_SOURCE_DIR}/src/*.cpp)
file(GLOB_RECURSE INCLUDE_FILES ${CMAKE_SOURCE_DIR}/interface/*.h)
file(GLOB_RECURSE ASSETS_FILES ${CMAKE_SOURCE_DIR}/assets/*.txt)
MESSAGE( STATUS "SOURCE_FILES: " ${SOURCE_FILES} )
MESSAGE( STATUS "INCLUDE_FILES: " ${INCLUDE_FILES} )
MESSAGE( STATUS "ASSETS_FILES: " ${ASSETS_FILES} )
set(RESOURCE_FILES
${CMAKE_SOURCE_DIR}/assets/note.txt
)
include_directories(${PROJECT_NAME}
${CMAKE_SOURCE_DIR}/interface
)
add_library(${PROJECT_NAME}
SHARED
${SOURCE_FILES}
${CMAKE_SOURCE_DIR}/interface
${CMAKE_SOURCE_DIR}/assets
)
# Debug symbols set in XCode project
# set_xcode_property(${PROJECT_NAME} GCC_GENERATE_DEBUGGING_SYMBOLS YES "All")
set_target_properties(${PROJECT_NAME} PROPERTIES
FRAMEWORK TRUE
FRAMEWORK_VERSION A
MACOSX_FRAMEWORK_IDENTIFIER com.test.${PROJECT_NAME}
# MACOSX_FRAMEWORK_INFO_PLIST Info.plist
# "current version" in semantic format in Mach-O binary file
VERSION 1.0.1
# "compatibility version" in semantic format in Mach-O binary file
SOVERSION 1.0.1
PUBLIC_HEADER ${CMAKE_SOURCE_DIR}/interface
RESOURCE ${CMAKE_SOURCE_DIR}/assets
#XCODE_ATTRIBUTE_CODE_SIGN_IDENTITY "iPhone Developer"
)
target_include_directories(${PROJECT_NAME} PRIVATE ${CMAKE_SOURCE_DIR}/interface)
注意事项:
1、无论是headers还是assets,都要先在add_library中添加了才有用。
2、PUBLIC_HEADER和RESOURCE 后面都可以直接写目录,而非文件列表。