IOS рдХреЗ рд▓рд┐рдП рдХреНрд░реЙрд╕-рдХрдВрдкрд╛рдЗрд▓рд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА, рдЗрд╕реЗ рд╕рд╣реА рдХрд░ рд░рд╣реА рд╣реИ

рдПрдХ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рджреМрд░рд╛рди, рдПрдХ рдХреНрд╖рдг рдЖрддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреЛ рдПрдХ рдЙрдкрдпреБрдХреНрдд рд▓рд╛рдЗрд╕реЗрдВрд╕ рдХреЗ рд╕рд╛рде рдЦреБрд▓реЗ рд╕реНрд░реЛрдд рдХреА рджреБрдирд┐рдпрд╛ рд╕реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдПрдореНрдмреЗрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдк рдЪрд┐рддреНрд░реЛрдВ рдХреЗ рдбрд┐рдХреЛрдбрд┐рдВрдЧ рдореЗрдВ рддреЗрдЬреА рд▓рд╛рдирд╛ рдЪрд╛рд╣рддреЗ рдереЗ, рдпрд╛ рдПрдлрд╕реА 4 рдХреЗ рд╕рд╛рде рд╕рд╛рдЗрдХреНрд▓рд╛рдЗрдЯ 3 рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдпрд╛ рд▓рд┐рдмрд┐рдХреВ рд╕реЗ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрдиреНрд╕, рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рд▓рд┐рдмрд┐рдХреНрдпреВрдХреЛрд░ рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВред



рдЗрд╕рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЙрд╕реЗ 5 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░: armv7, armv7s, arm64, i386, x86_64 рдХреЗ рд▓рд┐рдП рдЗрдХрдЯреНрдард╛ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдХреНрд░реЙрд╕-рд╕рдВрдХрд▓рди рдХреЗ рд╕рд╛рде, рдХрдИ рдиреБрдХрд╕рд╛рди рд╣реИрдВ рдЬреЛ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╕рд┐рджреНрдз рд╕рдорд╛рдзрд╛рди рд╣реЛрдиреЗ рдкрд░ рдареЛрдХрд░ рдирд╣реАрдВ рдЦрд╛рдирд╛ рдЪрд╛рд╣рддрд╛ред рдЗрд╕ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдкреЛрд╕реНрдЯ рдореЗрдВ рдореИрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░реЛрдЯреЛрдмреБрдлрд╝ рдФрд░ sqlite3 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрд╕реЗрдВрдмрд▓реА рдСрдЯреЛрдореЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред



рдХреБрдЫ рднреА рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рд╣рдореЗрдВ рдпрд╣ рддрдп рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХрд┐ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдкрд░ рд╣рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдПред



рдЗрди рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдорд╛рдзрд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдПрдХ рдореЗрдХрдлрд╛рдЗрд▓ рдЬреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдбрд╛рдЙрдирд▓реЛрдбрд┐рдВрдЧ, рдЕрдирдкреИрдХрд┐рдВрдЧ, рдкреИрдЪрд┐рдВрдЧ рдФрд░ рдмрд┐рд▓реНрдбрд┐рдВрдЧ рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдХреЛрдб рдмрдбрд╝рд╛ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЖрдк рдЗрд╕реЗ рдпрд╣рд╛рдВ рд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЪрд░реНрдЪрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред (рдпрд╛ рдЬреАрдереБрдм рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдЪрд▓рд╛рдПрдВ, рдФрд░ рдлрд┐рд░ рдкрдврд╝реЗрдВред )



рд╣рдо рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдФрд░ build_arches:



рдореЗрдВ рдирд╡реАрдирддрдо SDK рдХреЗ рд▓рд┐рдП рдкрде рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ arch:



рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рд╣реА build_arches:



рдЪрд▓рд╛рддреЗ рд╣реИрдВ arch:



рднрд░реЗ рд╣реБрдП рдЪрд░ ARCH рдФрд░ IOS_PLATFORM рдХреЗ рд╕рд╛рдеред build_arches:



рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж, рдПрдХ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдИ рдЬрд╛рддреА рд╣реИ рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг рдПрдХрддреНрд░ рдХрд░рддреА рд╣реИред



 XCODE_TOOLCHAIN = $(shell xcode-select --print-path)/Toolchains/XcodeDefault.xctoolchain IOS_PLATFORM ?= iphoneos # Pick latest SDK in the directory #IOS_PLATFORM_DEVELOPER = $(shell xcrun -sdk ${IOS_PLATFORM} -show-sdk-platform-path) IOS_SDK = $(shell xcrun -sdk ${IOS_PLATFORM} -show-sdk-path) all: build_arches mkdir -p lib # Make fat libraries for all architectures for file in build/armv7/lib/*.a; \ do name=`basename $$file .a`; \ ${XCODE_TOOLCHAIN}/usr/bin/lipo -create \ -arch armv7 build/armv7/lib/$$name.a \ -arch armv7s build/armv7s/lib/$$name.a \ -arch arm64 build/arm64/lib/$$name.a \ -arch i386 build/i386/lib/$$name.a \ -arch x86_64 build/x86_64/lib/$$name.a \ -output lib/$$name.a \ ; \ done; echo "Making fat libs" # Build separate architectures build_arches: ${MAKE} arch ARCH=armv7 IOS_PLATFORM=iphoneos ${MAKE} arch ARCH=armv7s IOS_PLATFORM=iphoneos ${MAKE} arch ARCH=arm64 IOS_PLATFORM=iphoneos ${MAKE} arch ARCH=i386 IOS_PLATFORM=iphonesimulator ${MAKE} arch ARCH=x86_64 IOS_PLATFORM=iphonesimulator
      
      





рдЬрдм рдореЗрдХ arch:



рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд┐рд░реНрднрд░рддрд╛ рдкрд░ рдХрд╛рдо рдХрд░реЗрдЧрд╛ arch:



рд▓рдХреНрд╖реНрдп, рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмрдирд╛рдП рдЬрд╛ рд░рд╣реЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдХреЛ рдЖрд░рдВрднреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╣рдордиреЗ PREFIX рднрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рд╕реНрдерд╛рдкрд┐рдд рд▓рд╛рдЗрдмреНрд░реЗрд░рд┐рдпреЛрдВ рдХреЛ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдмрд┐рд▓реНрдб рдкрд░рд┐рдгрд╛рдо рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдЧрд╛ ред/build/armv7 ,//build/armv7s, рдЖрджрд┐ред



arch:



рд▓рдХреНрд╖реНрдп arch:



рдЙрди рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рди рдкрд░ рдпрд╣ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ рдЬреЛ рд╣рдо рдПрдХрддреНрд░ рдХрд░рддреЗ рд╣реИрдВред рдирдП рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рдЬреЛрдбрд╝рддреЗ рд╕рдордп, рдЙрдирдХреЗ рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ arch:



рдЖрдзрд╛рд░ рдкрд░ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ arch:



рдЕрдиреНрдпрдерд╛ рдЙрдиреНрд╣реЗрдВ рдЗрдХрдЯреНрдард╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред



 PREFIX = ${CURDIR}/build/${ARCH} LIBDIR = ${PREFIX}/lib INCLUDEDIR = ${PREFIX}/include CXX = ${XCODE_TOOLCHAIN}/usr/bin/clang++ CC = ${XCODE_TOOLCHAIN}/usr/bin/clang CFLAGS = -isysroot ${IOS_SDK} -I${IOS_SDK}/usr/include -arch ${ARCH} -miphoneos-version-min=5.0 CXXFLAGS = -stdlib=libc++ -isysroot ${IOS_SDK} -I${IOS_SDK}/usr/include -arch ${ARCH} -miphoneos-version-min=5.0 LDFLAGS = -stdlib=libc++ -isysroot ${IOS_SDK} -L${LIBDIR} -L${IOS_SDK}/usr/lib -arch ${ARCH} -miphoneos-version-min=5.0 LIBTOOLFLAGS = -arch_only ${ARCH} arch: ${LIBDIR}/libsqlite3.a ${LIBDIR}/libprotobuf.a
      
      





рдЕрдВрддрд┐рдо рднрд╛рдЧ рд╕рдмрд╕реЗ рд╕рд░рд▓ рд╣реИред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрд╕реЗрдВрдмрд▓реА рдЧреЛрд▓, рдЬреЛ рд╕реНрд░реЛрдд рдбрд╛рдЙрдирд▓реЛрдб рд▓рдХреНрд╖реНрдпреЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдЖрдк рдХрд╕реНрдЯрдо рдХреБрдВрдЬрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



 ${LIBDIR}/libsqlite3.a: ${CURDIR}/sqlite3 cd sqlite3 && env CXX=${CXX} CC=${CC} CFLAGS="${CFLAGS}" \ CXXFLAGS="${CXXFLAGS} -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS4_UNICODE61" \ LDFLAGS="${LDFLAGS}" ./configure --host=arm-apple-darwin --disable-shared --prefix=${PREFIX} && ${MAKE} clean install ${LIBDIR}/libprotobuf.a: ${CURDIR}/protobuf cd protobuf && env CXX=${CXX} CC=${CC} CFLAGS="${CFLAGS}" CXXFLAGS="${CXXFLAGS}" LDFLAGS="${LDFLAGS}" \ ./configure --host=arm-apple-darwin --disable-shared --with-protoc=/usr/local/bin/protoc --prefix=${PREFIX} && ${MAKE} clean install ${CURDIR}/sqlite3: curl https://www.sqlite.org/2014/sqlite-autoconf-3080403.tar.gz > sqlite3.tar.gz tar xzvf sqlite3.tar.gz rm sqlite3.tar.gz mv sqlite-autoconf-3080403 sqlite3 touch sqlite3 ${CURDIR}/protobuf: curl https://protobuf.googlecode.com/files/protobuf-2.5.0.tar.gz > protobuf.tar.gz tar xzvf protobuf.tar.gz rm protobuf.tar.gz mv protobuf-2.5.0 protobuf # add arm64 support https://code.google.com/p/protobuf/issues/detail?id=575 patch -p0 <protobuf_arm64.patch touch protobuf clean: rm -rf build lib sqlite3 protobuf
      
      





рдЖрдЙрдЯрдкреБрдЯ рдкрд░: / lib рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╡рд╕рд╛ рд╕рдВрд╕реНрдХрд░рдг рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдмрд┐рд▓реНрдб / {$ ARCH} / рдореЗрдВ рд╣реЗрдбрд░ рдлрд╛рдЗрд▓реЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ рдХрд╛рдо рдореЗрдВ рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддреА рд╣реИрдВред



рдкреНрд░рддреНрдпреЗрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд▓рд┐рдП рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рд╣рдореЗрд╢рд╛ рдЕрд▓рдЧ рд╕реЗ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рд╣реЛрддреА рд╣реИрдВ рдЬреЛ ./configure рд╕реНрдЯреЗрдЬ рдкрд░, рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдЖрдХрд╛рд░реЛрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╕реНрдЯреЛрд░ рдХрд░рддреА рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, config.h рдореЗрдВред рдЬрдм рд╣рдо рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ arm64 рдФрд░ armv7 рдХреЗ рд▓рд┐рдП рдРрд╕реА рдлрд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдПрдХ рдЬреЛрдЦрд┐рдо рд╣реИ рдХрд┐ рдХрд╛рдо рдХреЗ рдХреБрдЫ рдЪрд░рдг рдореЗрдВ рдХреБрдЫ рдЧрд▓рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рд╕рд┐рд░реНрдл рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдСрдкрд░реЗрд╢рди рд▓реЙрдЬрд┐рдХ рдореЗрдВ рдХреБрдЫ рдЕрдиреБрдорд╛рди рдирд╣реАрдВ рд▓рдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрдЧрддрддрд╛ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рд╕рднреА рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд рдкрд░реАрдХреНрд╖рдг рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдпрд╛ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рд╕рднреА рд╡рд╕рд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реЗрдбрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд╣реИрдбрд░ рд╕рд░реНрдЪ рдкрд╛рде рдореЗрдВ рдЖрдкрдХреЛ "$(SRCROOT)/../../libs/build/$(arch)/include"



ред рдЬрд╣рд╛рдБ /../../libs/build/



xcodeproj рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рдкреЗрдХреНрд╖ рдмрд┐рд▓реНрдб рдлрд╝реЛрд▓реНрдбрд░ /../../libs/build/



рдкрде рд╣реИред



рдореИрдВрдиреЗ рдЗрд╕ рдирд┐рд░реНрдорд╛рдг рд╡рд┐рдзрд┐ рдХреЛ рдореИрдкрдирд┐рдХ рд░реИрд╕реНрдЯрд░ рдХреЗ рдЧрд┐рдердм рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЕрд╕реЗрдВрдмрд▓реА рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ , рдЬрд╣рд╛рдБ рдЖрдк рдореЗрдХрдлрд╛рдЗрд▓ рдХрд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╕рдВрд╕реНрдХрд░рдг рднреА рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬрдм рдПрдХ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХрдИ рдЕрдиреНрдп рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддреА рд╣реИред



рдЗрд╕ рдкреЛрд╕реНрдЯ рдХреА рдлрд╛рдЗрд▓реЗрдВ рдЧрд┐рдердм рд╕реЗ рдбрд╛рдЙрдирд▓реЛрдб рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ рдФрд░ рдХреНрд░реЙрд╕-рд╕рдВрдХрд▓рди рдХреА рдЪрд▓ рд░рд╣реА рд▓рд╛рдЗрдиреЛрдВ рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░ рд╕рдХрддреА рд╣реИрдВред рдмрд╕ рдЯрд╛рдЗрдк рдХрд░реЗрдВ



All Articles