diff --git a/README.md b/README.md index 99712ee..5bc22f4 100644 --- a/README.md +++ b/README.md @@ -9,61 +9,18 @@ Build the runtime Google Protobuf Buffers v3.6.1 C++ libraries (libprotoc.a, lib * macOS (arm64) * iOS Device (arm64) * iOS Simulator (x86_64) +* iOS Simulator (arm64) * WatchOS device (armv7k) * WatchOS device (arm64_32) +* WatchOS device (arm64) * WatchOS simulator (i386) * WatchOS simulator (x86_64) -* iOS Fat Mach-O -* WatchOS Fat Mach-O +* WatchOS simulator (arm64) +* iOS Simulator Fat Mach-O +* iOS arm64 Mach-O +* WatchOS Simulator Fat Mach-O +* WatchOS device Fat Mach-O Just clone this repo and run `./build-protofbuf.sh` - - - +![Screen shot](screenshot.jpg) \ No newline at end of file diff --git a/build-protobuf.sh b/build-protobuf.sh index 89e3a5e..f0ea082 100755 --- a/build-protobuf.sh +++ b/build-protobuf.sh @@ -36,6 +36,7 @@ BUILD_MACOSX_ARM64=YES BUILD_I386_IOSSIM=NO BUILD_X86_64_IOSSIM=YES +BUILD_ARM64_IOSSIM=YES BUILD_IOS_ARMV7=NO BUILD_IOS_ARMV7S=NO @@ -43,7 +44,11 @@ BUILD_IOS_ARM64=YES BUILD_WATCHOS_ARMV7K=YES BUILD_WATCHOS_ARM64_32=YES -BUILD_WATCHSIMULATOR=YES +BUILD_WATCHOS_ARM64=YES + +BUILD_I386_WATCHOSSIM=YES +BUILD_X86_64_WATCHOSSIM=YES +BUILD_ARM64_WATCHOSSIM=YES PROTOBUF_SRC_DIR=./temp @@ -51,7 +56,7 @@ DARWIN=darwin`uname -r` XCODEDIR=`xcode-select --print-path` IOS_SDK_VERSION=`xcrun --sdk iphoneos --show-sdk-version` -MIN_SDK_VERSION=13.0 +MIN_SDK_VERSION=14.0 MACOSX_PLATFORM=`xcrun --sdk macosx --show-sdk-platform-path` MACOSX_SYSROOT=`xcrun --sdk macosx --show-sdk-path` @@ -65,7 +70,7 @@ IPHONESIMULATOR_SYSROOT=`xcrun --sdk iphonesimulator --show-sdk-path` WATCHOS_PLATFORM=`xcrun --sdk watchos --show-sdk-platform-path` WATCHOS_SYSROOT=`xcrun --sdk watchos --show-sdk-path` -MIN_WATCHOS_VERSION=6.0 +MIN_WATCHOS_VERSION=7.0 WATCHSIMULATOR_PLATFORM=`xcrun --sdk watchsimulator --show-sdk-platform-path` WATCHSIMULATOR_SYSROOT=`xcrun --sdk watchsimulator --show-sdk-path` @@ -82,7 +87,7 @@ SILENCED_WARNINGS="-Wno-unused-local-typedef -Wno-unused-function" # instead of `libc++` here. STDLIB=libc++ -CFLAGS="${CLANG_VERBOSE} ${SILENCED_WARNINGS} -DNDEBUG -g -Os -pipe -fPIC -fcxx-exceptions -fembed-bitcode" +CFLAGS="${CLANG_VERBOSE} ${SILENCED_WARNINGS} -DNDEBUG -g -Os -pipe -fPIC -fcxx-exceptions" CFLAGS_OSX="${CLANG_VERBOSE} ${SILENCED_WARNINGS} -DNDEBUG -g -Os -pipe -fPIC -fcxx-exceptions" CXXFLAGS="${CLANG_VERBOSE} ${CFLAGS} -std=c++11 -stdlib=${STDLIB}" CXXFLAGS_OSX="${CLANG_VERBOSE} ${CFLAGS_OSX} -std=c++11 -stdlib=${STDLIB}" @@ -100,12 +105,16 @@ echo "BUILD_MACOSX_X86_64 ........ ${BUILD_MACOSX_X86_64}" echo "BUILD_MACOSX_ARM64 ......... ${BUILD_MACOSX_ARM64}" echo "BUILD_I386_IOSSIM .......... ${BUILD_I386_IOSSIM}" echo "BUILD_X86_64_IOSSIM ........ ${BUILD_X86_64_IOSSIM}" +echo "BUILD_ARM64_IOSSIM ......... ${BUILD_ARM64_IOSSIM}" echo "BUILD_IOS_ARMV7 ............ ${BUILD_IOS_ARMV7}" echo "BUILD_IOS_ARMV7S ........... ${BUILD_IOS_ARMV7S}" echo "BUILD_IOS_ARM64 ............ ${BUILD_IOS_ARM64}" -echo "BUILD_WATCHOS_ARMV7K ........${BUILD_WATCHOS_ARMV7K}" -echo "BUILD_WATCHOS_ARM64_32 ......${BUILD_WATCHOS_ARM64_32}" -echo "BUILD_WATCHSIMULATOR ....... ${BUILD_WATCHSIMULATOR}" +echo "BUILD_WATCHOS_ARMV7K ....... ${BUILD_WATCHOS_ARMV7K}" +echo "BUILD_WATCHOS_ARM64_32 ..... ${BUILD_WATCHOS_ARM64_32}" +echo "BUILD_WATCHOS_ARM64 ........ ${BUILD_WATCHOS_ARM64}" +echo "BUILD_I386_WATCHOSSIM ...... ${BUILD_I386_WATCHOSSIM}" +echo "BUILD_X86_64_WATCHOSSIM .... ${BUILD_X86_64_WATCHOSSIM}" +echo "BUILD_ARM64_WATCHOSSIM ..... ${BUILD_ARM64_WATCHOSSIM}" echo "PROTOBUF_SRC_DIR ........... ${PROTOBUF_SRC_DIR}" echo "DARWIN ..................... ${DARWIN}" echo "XCODEDIR ................... ${XCODEDIR}" @@ -280,9 +289,9 @@ then export MACOSX_DEPLOYMENT_TARGET="${MIN_MACOS_VERSION}" cd ${PROTOBUF_SRC_DIR} make distclean - mkdir "${PREFIX}/platform/sim-i386-ios/" - ./configure --build=x86_64-apple-${DARWIN} --host=i386-apple-${DARWIN} --with-protoc=${PROTOC} --disable-shared --prefix=${PREFIX} --exec-prefix=${PREFIX}/platform/sim-i386-ios "CC=${CC}" "CFLAGS=${CFLAGS_OSX} -mios-simulator-version-min=${MIN_SDK_VERSION} -arch i386 -isysroot ${IPHONESIMULATOR_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS_OSX} -mios-simulator-version-min=${MIN_SDK_VERSION} -arch i386 -isysroot ${IPHONESIMULATOR_SYSROOT}" LDFLAGS="-arch i386 -mios-simulator-version-min=${MIN_SDK_VERSION} ${LDFLAGS} -L${IPHONESIMULATOR_SYSROOT}/usr/lib/" "LIBS=${LIBS}" - cp "config.log" "${PREFIX}/platform/sim-i386-ios/" + mkdir "${PREFIX}/platform/sim-ios-i386/" + ./configure --build=x86_64-apple-${DARWIN} --host=i386-apple-${DARWIN} --with-protoc=${PROTOC} --disable-shared --prefix=${PREFIX} --exec-prefix=${PREFIX}/platform/sim-ios-i386 "CC=${CC}" "CFLAGS=${CFLAGS_OSX} -mios-simulator-version-min=${MIN_SDK_VERSION} -arch i386 -isysroot ${IPHONESIMULATOR_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS_OSX} -mios-simulator-version-min=${MIN_SDK_VERSION} -arch i386 -isysroot ${IPHONESIMULATOR_SYSROOT}" LDFLAGS="-arch i386 -mios-simulator-version-min=${MIN_SDK_VERSION} ${LDFLAGS} -L${IPHONESIMULATOR_SYSROOT}/usr/lib/" "LIBS=${LIBS}" + cp "config.log" "${PREFIX}/platform/sim-ios-i386/" make -j 16 make install unset MACOSX_DEPLOYMENT_TARGET @@ -303,9 +312,32 @@ then export MACOSX_DEPLOYMENT_TARGET="${MIN_MACOS_VERSION}" cd ${PROTOBUF_SRC_DIR} make distclean - mkdir "${PREFIX}/platform/sim-x86_64-ios/" - ./configure --build=x86_64-apple-${DARWIN} --host=x86_64 --with-protoc=${PROTOC} --disable-shared --prefix=${PREFIX} --exec-prefix=${PREFIX}/platform/sim-x86_64-ios "CC=${CC}" "CFLAGS=${CFLAGS_OSX} -mios-simulator-version-min=${MIN_SDK_VERSION} -arch x86_64 -isysroot ${IPHONESIMULATOR_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS_OSX} -mios-simulator-version-min=${MIN_SDK_VERSION} -arch x86_64 -isysroot ${IPHONESIMULATOR_SYSROOT}" LDFLAGS="-arch x86_64 -mios-simulator-version-min=${MIN_SDK_VERSION} ${LDFLAGS} -L${IPHONESIMULATOR_SYSROOT}/usr/lib/" "LIBS=${LIBS}" - cp "config.log" "${PREFIX}/platform/sim-x86_64-ios/" + mkdir "${PREFIX}/platform/sim-ios-x86_64/" + ./configure --build=x86_64-apple-${DARWIN} --host=x86_64 --with-protoc=${PROTOC} --disable-shared --prefix=${PREFIX} --exec-prefix=${PREFIX}/platform/sim-ios-x86_64 "CC=${CC}" "CFLAGS=${CFLAGS_OSX} -mios-simulator-version-min=${MIN_SDK_VERSION} -arch x86_64 -isysroot ${IPHONESIMULATOR_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS_OSX} -mios-simulator-version-min=${MIN_SDK_VERSION} -arch x86_64 -isysroot ${IPHONESIMULATOR_SYSROOT}" LDFLAGS="-arch x86_64 -mios-simulator-version-min=${MIN_SDK_VERSION} ${LDFLAGS} -L${IPHONESIMULATOR_SYSROOT}/usr/lib/" "LIBS=${LIBS}" + cp "config.log" "${PREFIX}/platform/sim-ios-x86_64/" + make -j 16 + make install + unset MACOSX_DEPLOYMENT_TARGET + unset IPHONEOS_DEPLOYMENT_TARGET + ) +fi + +echo "$(tput setaf 2)" +echo "#############################" +echo "# arm64 for iPhone Simulator" +echo "#############################" +echo "$(tput sgr0)" + +if [ "${BUILD_ARM64_IOSSIM}" == "YES" ] +then + ( + export IPHONEOS_DEPLOYMENT_TARGET="${MIN_SDK_VERSION}" + export MACOSX_DEPLOYMENT_TARGET="${MIN_MACOS_VERSION}" + cd ${PROTOBUF_SRC_DIR} + make distclean + mkdir "${PREFIX}/platform/sim-ios-arm64/" + ./configure --build=x86_64-apple-${DARWIN} --host=arm --with-protoc=${PROTOC} --disable-shared --prefix=${PREFIX} --exec-prefix=${PREFIX}/platform/sim-ios-arm64 "CC=${CC}" "CFLAGS=${CFLAGS_OSX} -mios-simulator-version-min=${MIN_SDK_VERSION} -arch arm64 -isysroot ${IPHONESIMULATOR_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS_OSX} -mios-simulator-version-min=${MIN_SDK_VERSION} -arch arm64 -isysroot ${IPHONESIMULATOR_SYSROOT}" LDFLAGS="-arch arm64 -mios-simulator-version-min=${MIN_SDK_VERSION} ${LDFLAGS} -L${IPHONESIMULATOR_SYSROOT}/usr/lib/" "LIBS=${LIBS}" + cp "config.log" "${PREFIX}/platform/sim-ios-arm64/" make -j 16 make install unset MACOSX_DEPLOYMENT_TARGET @@ -325,12 +357,12 @@ then export IPHONEOS_DEPLOYMENT_TARGET="${MIN_SDK_VERSION}" cd ${PROTOBUF_SRC_DIR} make distclean - mkdir "${PREFIX}/platform/armv7-ios/" - ./configure --build=x86_64-apple-${DARWIN} --host=armv7-apple-${DARWIN} --with-protoc=${PROTOC} --disable-shared --prefix=${PREFIX} --exec-prefix=${PREFIX}/platform/armv7-ios "CC=${CC}" "CFLAGS=${CFLAGS} -miphoneos-version-min=${MIN_SDK_VERSION} -arch armv7 -isysroot ${IPHONEOS_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -arch armv7 -isysroot ${IPHONEOS_SYSROOT}" LDFLAGS="-arch armv7 -miphoneos-version-min=${MIN_SDK_VERSION} ${LDFLAGS}" "LIBS=${LIBS}" + mkdir "${PREFIX}/platform/device-ios-armv7/" + ./configure --build=x86_64-apple-${DARWIN} --host=armv7-apple-${DARWIN} --with-protoc=${PROTOC} --disable-shared --prefix=${PREFIX} --exec-prefix=${PREFIX}/platform/device-ios-armv7 "CC=${CC}" "CFLAGS=${CFLAGS} -miphoneos-version-min=${MIN_SDK_VERSION} -arch armv7 -isysroot ${IPHONEOS_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -arch armv7 -isysroot ${IPHONEOS_SYSROOT}" LDFLAGS="-arch armv7 -miphoneos-version-min=${MIN_SDK_VERSION} ${LDFLAGS}" "LIBS=${LIBS}" make -j 16 make install unset IPHONEOS_DEPLOYMENT_TARGET - cp "config.log" "${PREFIX}/platform/armv7-ios/" + cp "config.log" "${PREFIX}/platform/device-ios-armv7/" ) fi @@ -346,12 +378,12 @@ then export IPHONEOS_DEPLOYMENT_TARGET="${MIN_SDK_VERSION}" cd ${PROTOBUF_SRC_DIR} make distclean - mkdir "${PREFIX}/platform/armv7s-ios/" - ./configure --build=x86_64-apple-${DARWIN} --host=armv7s-apple-${DARWIN} --with-protoc=${PROTOC} --disable-shared --prefix=${PREFIX} --exec-prefix=${PREFIX}/platform/armv7s-ios "CC=${CC}" "CFLAGS=${CFLAGS} -miphoneos-version-min=${MIN_SDK_VERSION} -arch armv7s -isysroot ${IPHONEOS_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -arch armv7s -isysroot ${IPHONEOS_SYSROOT}" LDFLAGS="-arch armv7s -miphoneos-version-min=${MIN_SDK_VERSION} ${LDFLAGS}" "LIBS=${LIBS}" + mkdir "${PREFIX}/platform/device-ios-armv7s/" + ./configure --build=x86_64-apple-${DARWIN} --host=armv7s-apple-${DARWIN} --with-protoc=${PROTOC} --disable-shared --prefix=${PREFIX} --exec-prefix=${PREFIX}/platform/device-ios-armv7s "CC=${CC}" "CFLAGS=${CFLAGS} -miphoneos-version-min=${MIN_SDK_VERSION} -arch armv7s -isysroot ${IPHONEOS_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -arch armv7s -isysroot ${IPHONEOS_SYSROOT}" LDFLAGS="-arch armv7s -miphoneos-version-min=${MIN_SDK_VERSION} ${LDFLAGS}" "LIBS=${LIBS}" make -j 16 make install unset IPHONEOS_DEPLOYMENT_TARGET - cp "config.log" "${PREFIX}/platform/armv7s-ios/" + cp "config.log" "${PREFIX}/platform/device-ios-armv7s/" ) fi @@ -367,9 +399,9 @@ then export IPHONEOS_DEPLOYMENT_TARGET="${MIN_SDK_VERSION}" cd ${PROTOBUF_SRC_DIR} make distclean - mkdir "${PREFIX}/platform/arm64-ios/" - ./configure --build=x86_64-apple-${DARWIN} --host=arm --with-protoc=${PROTOC} --disable-shared --prefix=${PREFIX} --exec-prefix=${PREFIX}/platform/arm64-ios "CC=${CC}" "CFLAGS=${CFLAGS} -miphoneos-version-min=${MIN_SDK_VERSION} -arch arm64 -isysroot ${IPHONEOS_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -arch arm64 -isysroot ${IPHONEOS_SYSROOT}" LDFLAGS="-arch arm64 -miphoneos-version-min=${MIN_SDK_VERSION} ${LDFLAGS}" "LIBS=${LIBS}" - cp "config.log" "${PREFIX}/platform/arm64-ios/" + mkdir "${PREFIX}/platform/device-ios-arm64/" + ./configure --build=x86_64-apple-${DARWIN} --host=arm --with-protoc=${PROTOC} --disable-shared --prefix=${PREFIX} --exec-prefix=${PREFIX}/platform/device-ios-arm64 "CC=${CC}" "CFLAGS=${CFLAGS} -miphoneos-version-min=${MIN_SDK_VERSION} -arch arm64 -isysroot ${IPHONEOS_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -arch arm64 -isysroot ${IPHONEOS_SYSROOT}" LDFLAGS="-arch arm64 -miphoneos-version-min=${MIN_SDK_VERSION} ${LDFLAGS}" "LIBS=${LIBS}" + cp "config.log" "${PREFIX}/platform/device-ios-arm64/" make -j 16 make install unset IPHONEOS_DEPLOYMENT_TARGET @@ -388,9 +420,9 @@ then export WATCHOS_DEPLOYMENT_TARGET="${MIN_WATCHOS_VERSION}" cd ${PROTOBUF_SRC_DIR} make distclean - mkdir "${PREFIX}/platform/armv7k-watchos/" - ./configure --build=x86_64-apple-${DARWIN} --host=arm --with-protoc=${PROTOC} --disable-shared --prefix=${PREFIX} --exec-prefix=${PREFIX}/platform/armv7k-watchos "CC=${CC}" "CFLAGS=${CFLAGS} -mwatchos-version-min=${MIN_WATCHOS_VERSION} -arch armv7k -isysroot ${WATCHOS_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -arch armv7k -isysroot ${WATCHOS_SYSROOT}" LDFLAGS="-arch armv7k -mwatchos-version-min=${MIN_WATCHOS_VERSION} ${LDFLAGS}" "LIBS=${LIBS}" - cp "config.log" "${PREFIX}/platform/armv7k-watchos/" + mkdir "${PREFIX}/platform/device-watchos-armv7k/" + ./configure --build=x86_64-apple-${DARWIN} --host=arm --with-protoc=${PROTOC} --disable-shared --prefix=${PREFIX} --exec-prefix=${PREFIX}/platform/device-watchos-armv7k "CC=${CC}" "CFLAGS=${CFLAGS} -mwatchos-version-min=${MIN_WATCHOS_VERSION} -arch armv7k -isysroot ${WATCHOS_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -arch armv7k -isysroot ${WATCHOS_SYSROOT}" LDFLAGS="-arch armv7k -mwatchos-version-min=${MIN_WATCHOS_VERSION} ${LDFLAGS}" "LIBS=${LIBS}" + cp "config.log" "${PREFIX}/platform/device-watchos-armv7k/" make -j 16 make install unset WATCHOS_DEPLOYMENT_TARGET @@ -409,45 +441,97 @@ then export WATCHOS_DEPLOYMENT_TARGET="${MIN_WATCHOS_VERSION}" cd ${PROTOBUF_SRC_DIR} make distclean - mkdir "${PREFIX}/platform/armv64_32-watchos/" - ./configure --build=x86_64-apple-${DARWIN} --host=arm --with-protoc=${PROTOC} --disable-shared --prefix=${PREFIX} --exec-prefix=${PREFIX}/platform/armv64_32-watchos "CC=${CC}" "CFLAGS=${CFLAGS} -mwatchos-version-min=${MIN_WATCHOS_VERSION} -arch arm64_32 -isysroot ${WATCHOS_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -arch arm64_32 -isysroot ${WATCHOS_SYSROOT}" LDFLAGS="-arch arm64_32 -mwatchos-version-min=${MIN_WATCHOS_VERSION} ${LDFLAGS}" "LIBS=${LIBS}" - cp "config.log" "${PREFIX}/platform/armv64_32-watchos/" + mkdir "${PREFIX}/platform/device-watchos-armv64_32/" + ./configure --build=x86_64-apple-${DARWIN} --host=arm --with-protoc=${PROTOC} --disable-shared --prefix=${PREFIX} --exec-prefix=${PREFIX}/platform/device-watchos-armv64_32 "CC=${CC}" "CFLAGS=${CFLAGS} -mwatchos-version-min=${MIN_WATCHOS_VERSION} -arch arm64_32 -isysroot ${WATCHOS_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -arch arm64_32 -isysroot ${WATCHOS_SYSROOT}" LDFLAGS="-arch arm64_32 -mwatchos-version-min=${MIN_WATCHOS_VERSION} ${LDFLAGS}" "LIBS=${LIBS}" + cp "config.log" "${PREFIX}/platform/device-watchos-armv64_32/" make -j 16 make install unset WATCHOS_DEPLOYMENT_TARGET ) fi +echo "$(tput setaf 2)" +echo "######################" +echo "# ARM64 for WatchOS" +echo "######################" +echo "$(tput sgr0)" + +if [ "${BUILD_WATCHOS_ARM64}" == "YES" ] +then + ( + export WATCHOS_DEPLOYMENT_TARGET="${MIN_WATCHOS_VERSION}" + cd ${PROTOBUF_SRC_DIR} + make distclean + mkdir "${PREFIX}/platform/device-watchos-armv64/" + ./configure --build=x86_64-apple-${DARWIN} --host=arm --with-protoc=${PROTOC} --disable-shared --prefix=${PREFIX} --exec-prefix=${PREFIX}/platform/device-watchos-armv64 "CC=${CC}" "CFLAGS=${CFLAGS} -mwatchos-version-min=${MIN_WATCHOS_VERSION} -arch arm64 -isysroot ${WATCHOS_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS} -arch arm64 -isysroot ${WATCHOS_SYSROOT}" LDFLAGS="-arch arm64 -mwatchos-version-min=${MIN_WATCHOS_VERSION} ${LDFLAGS}" "LIBS=${LIBS}" + cp "config.log" "${PREFIX}/platform/device-watchos-armv64/" + make -j 16 + make install + unset WATCHOS_DEPLOYMENT_TARGET + ) +fi + + echo "$(tput setaf 2)" echo "##################################" -echo "# i386, x86_64 for Watch Simulator" +echo "# x86_64 for Watch Simulator" echo "##################################" echo "$(tput sgr0)" -if [ "${BUILD_WATCHSIMULATOR}" == "YES" ] +if [ "${BUILD_X86_64_WATCHOSSIM}" == "YES" ] then ( export WATCHOS_DEPLOYMENT_TARGET="${MIN_WATCHOS_VERSION}" cd ${PROTOBUF_SRC_DIR} make distclean - mkdir "${PREFIX}/platform/sim-x86_64-watchos/" - ./configure --build=x86_64-apple-${DARWIN} --host=x86_64 --with-protoc=${PROTOC} --disable-shared --prefix=${PREFIX} --exec-prefix=${PREFIX}/platform/sim-x86_64-watchos "CC=${CC}" "CFLAGS=${CFLAGS} -mwatchos-simulator-version-min=${MIN_WATCHOS_VERSION} -arch x86_64 -isysroot ${WATCHSIMULATOR_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS_OSX} -arch x86_64 -isysroot ${WATCHSIMULATOR_SYSROOT}" LDFLAGS="-arch x86_64 -mwatchos-simulator-version-min=${MIN_WATCHOS_VERSION} ${LDFLAGS} -L${WATCHSIMULATOR_SYSROOT}/usr/lib/" "LIBS=${LIBS}" - cp "config.log" "${PREFIX}/platform/sim-x86_64-watchos/" + mkdir "${PREFIX}/platform/sim-watchos-x86_64/" + ./configure --build=x86_64-apple-${DARWIN} --host=x86_64 --with-protoc=${PROTOC} --disable-shared --prefix=${PREFIX} --exec-prefix=${PREFIX}/platform/sim-watchos-x86_64 "CC=${CC}" "CFLAGS=${CFLAGS} -mwatchos-simulator-version-min=${MIN_WATCHOS_VERSION} -arch x86_64 -isysroot ${WATCHSIMULATOR_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS_OSX} -arch x86_64 -isysroot ${WATCHSIMULATOR_SYSROOT}" LDFLAGS="-arch x86_64 -mwatchos-simulator-version-min=${MIN_WATCHOS_VERSION} ${LDFLAGS} -L${WATCHSIMULATOR_SYSROOT}/usr/lib/" "LIBS=${LIBS}" + cp "config.log" "${PREFIX}/platform/sim-watchos-x86_64/" make -j 16 make install - unset WATCHOS_DEPLOYMENT_TARGET - + unset WATCHOS_DEPLOYMENT_TARGET + ) +fi + +echo "$(tput setaf 2)" +echo "##################################" +echo "# i386 for Watch Simulator" +echo "##################################" +echo "$(tput sgr0)" + +if [ "${BUILD_I386_WATCHOSSIM}" == "YES" ] +then + ( export WATCHOS_DEPLOYMENT_TARGET="${MIN_WATCHOS_VERSION}" cd ${PROTOBUF_SRC_DIR} make distclean - mkdir "${PREFIX}/platform/sim-i386-watchos/" - ./configure --build=x86_64-apple-${DARWIN} --host=i386-apple-${DARWIN} --with-protoc=${PROTOC} --disable-shared --prefix=${PREFIX} --exec-prefix=${PREFIX}/platform/sim-i386-watchos "CC=${CC}" "CFLAGS=${CFLAGS} -mwatchos-simulator-version-min=${MIN_WATCHOS_VERSION} -arch i386 -isysroot ${WATCHSIMULATOR_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS_OSX} -arch i386 -isysroot ${WATCHSIMULATOR_SYSROOT}" LDFLAGS="-arch i386 -mwatchos-simulator-version-min=${MIN_WATCHOS_VERSION} ${LDFLAGS} -L${WATCHSIMULATOR_SYSROOT}/usr/lib/" "LIBS=${LIBS}" - cp "config.log" "${PREFIX}/platform/sim-i386-watchos/" + mkdir "${PREFIX}/platform/sim-watchos-i386/" + ./configure --build=x86_64-apple-${DARWIN} --host=i386-apple-${DARWIN} --with-protoc=${PROTOC} --disable-shared --prefix=${PREFIX} --exec-prefix=${PREFIX}/platform/sim-watchos-i386 "CC=${CC}" "CFLAGS=${CFLAGS} -mwatchos-simulator-version-min=${MIN_WATCHOS_VERSION} -arch i386 -isysroot ${WATCHSIMULATOR_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS_OSX} -arch i386 -isysroot ${WATCHSIMULATOR_SYSROOT}" LDFLAGS="-arch i386 -mwatchos-simulator-version-min=${MIN_WATCHOS_VERSION} ${LDFLAGS} -L${WATCHSIMULATOR_SYSROOT}/usr/lib/" "LIBS=${LIBS}" + cp "config.log" "${PREFIX}/platform/sim-watchos-i386/" + make -j 16 + make install + unset WATCHOS_DEPLOYMENT_TARGET + ) +fi + +echo "$(tput setaf 2)" +echo "##################################" +echo "# arm64 for Watch Simulator" +echo "##################################" +echo "$(tput sgr0)" + +if [ "${BUILD_ARM64_WATCHOSSIM}" == "YES" ] +then + ( + export WATCHOS_DEPLOYMENT_TARGET="${MIN_WATCHOS_VERSION}" + cd ${PROTOBUF_SRC_DIR} + make distclean + mkdir "${PREFIX}/platform/sim-watchos-arm64/" + ./configure --build=x86_64-apple-${DARWIN} --host=arm --with-protoc=${PROTOC} --disable-shared --prefix=${PREFIX} --exec-prefix=${PREFIX}/platform/sim-watchos-arm64 "CC=${CC}" "CFLAGS=${CFLAGS} -mwatchos-simulator-version-min=${MIN_WATCHOS_VERSION} -arch arm64 -isysroot ${WATCHSIMULATOR_SYSROOT}" "CXX=${CXX}" "CXXFLAGS=${CXXFLAGS_OSX} -arch arm64 -isysroot ${WATCHSIMULATOR_SYSROOT}" LDFLAGS="-arch arm64 -mwatchos-simulator-version-min=${MIN_WATCHOS_VERSION} ${LDFLAGS} -L${WATCHSIMULATOR_SYSROOT}/usr/lib/" "LIBS=${LIBS}" + cp "config.log" "${PREFIX}/platform/sim-watchos-arm64/" make -j 16 make install unset WATCHOS_DEPLOYMENT_TARGET - - ) fi @@ -458,14 +542,18 @@ echo "###################################################################" echo "$(tput sgr0)" ( cd ${PREFIX}/platform -mkdir watchos -mkdir ios +mkdir device-watchos +mkdir device-ios +mkdir sim-watchos +mkdir sim-ios mkdir macos for i in `ls x86_64-mac/lib/*.a` do i=`basename $i` -lipo -create *watchos/lib/$i -output watchos/$i -lipo -create *ios/lib/$i -output ios/$i +lipo -create device-watchos*/lib/$i -output device-watchos/$i +lipo -create device-ios*/lib/$i -output device-ios/$i +lipo -create sim-ios*/lib/$i -output sim-ios/$i +lipo -create sim-watchos*/lib/$i -output sim-watchos/$i lipo -create *mac/lib/$i -output macos/$i done ) @@ -474,21 +562,31 @@ cd ${PREFIX} mkdir bin mkdir lib mkdir -p lib/macos -mkdir lib/watchos -mkdir lib/ios +mkdir lib/device-watchos +mkdir lib/device-ios +mkdir lib/sim-watchos +mkdir lib/sim-ios cp -r platform/x86_64-mac/bin/protoc bin/protoc_x86-64 cp -r platform/arm64-mac/bin/protoc bin/protoc_arm64 cp -r platform/macos/* lib/macos -cp -r platform/watchos/* lib/watchos -cp -r platform/ios/* lib/ios +cp -r platform/device-watchos/* lib/device-watchos +cp -r platform/sim-watchos/* lib/sim-watchos +cp -r platform/sim-ios/* lib/sim-ios +cp -r platform/device-ios/* lib/device-ios #rm -rf platform -lipo -info lib/watchos/libprotobuf.a -lipo -info lib/watchos/libprotobuf-lite.a +lipo -info lib/device-watchos/libprotobuf.a +lipo -info lib/device-watchos/libprotobuf-lite.a + +lipo -info lib/sim-watchos/libprotobuf.a +lipo -info lib/sim-watchos/libprotobuf-lite.a + +lipo -info lib/sim-ios/libprotobuf.a +lipo -info lib/sim-ios/libprotobuf-lite.a -lipo -info lib/ios/libprotobuf.a -lipo -info lib/ios/libprotobuf-lite.a +lipo -info lib/device-ios/libprotobuf.a +lipo -info lib/device-ios/libprotobuf-lite.a lipo -info lib/macos/libprotobuf.a lipo -info lib/macos/libprotobuf-lite.a diff --git a/screenshot.jpg b/screenshot.jpg new file mode 100644 index 0000000..3fd5d39 Binary files /dev/null and b/screenshot.jpg differ