diff --git a/.gitignore b/.gitignore index 476e269..d276a5c 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ a.out compile_commands.json libsimple.* build/ +build-ios/ *.gch bin/ output/ diff --git a/README.md b/README.md index df39bd7..33df698 100644 --- a/README.md +++ b/README.md @@ -71,7 +71,7 @@ make install 支持 iOS 编译: ``` -cmake ../.. -G Xcode -DCMAKE_TOOLCHAIN_FILE=../../contrib/ios.toolchain.cmake -DPLATFORM=OS64COMBINED -DENABLE_BITCODE=0 +./build-ios.sh ``` ### 代码 diff --git a/build-ios.sh b/build-ios.sh new file mode 100755 index 0000000..7e34fa9 --- /dev/null +++ b/build-ios.sh @@ -0,0 +1,15 @@ +#!/bin/zsh + +current_dir=$(pwd)/$(dirname "$0") +build_dir="${current_dir}/build-ios" +lib_prefix="${current_dir}/output" + +cmake "$current_dir" -G Xcode -DCMAKE_TOOLCHAIN_FILE=contrib/ios.toolchain.cmake \ + -DPLATFORM=OS64COMBINED -DENABLE_BITCODE=1 \ + -DCMAKE_INSTALL_PREFIX="" -B "$build_dir" \ + -DDEPLOYMENT_TARGET=8.0 + +cd "$build_dir" || exit + +cmake --build "$build_dir" --config Release +cmake --install "$build_dir" --config Release --prefix "${lib_prefix}" diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index f2615cc..a05ed3f 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -25,7 +25,12 @@ set(SOURCE_FILES entry.cc ) +if (IOS) +# iOS only support static library. +add_library(simple STATIC ${SOURCE_FILES}) +else() add_library(simple SHARED ${SOURCE_FILES}) +endif() if(SIMPLE_WITH_JIEBA) add_dependencies(simple cppjieba) @@ -44,3 +49,9 @@ endif() target_link_libraries(simple PUBLIC coverage_config PRIVATE PINYIN_TEXT SQLite3) install(TARGETS simple DESTINATION bin) + +if (IOS) +# iOS build as static library. so we need install PINYIN_TEXT too. +install(TARGETS PINYIN_TEXT DESTINATION bin) +endif() +