From 8d6cbd9b2c2dd2ab6605cc78d4c2af236ae96289 Mon Sep 17 00:00:00 2001 From: Andres Botero Date: Mon, 18 Jan 2016 19:20:32 -0500 Subject: [PATCH 01/10] Add .Server and .Client SocketTypes available in zmq4-2 --- SwiftZMQ/Context.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/SwiftZMQ/Context.swift b/SwiftZMQ/Context.swift index 2489a03..b1d7813 100644 --- a/SwiftZMQ/Context.swift +++ b/SwiftZMQ/Context.swift @@ -37,6 +37,8 @@ public enum SocketType { case Pull case Pair case Stream + case Server + case Client } extension SocketType { @@ -54,6 +56,9 @@ extension SocketType { case ZMQ_PULL: self = Pull case ZMQ_PAIR: self = Pair case ZMQ_STREAM: self = Stream + case ZMQ_SERVER: self = Server + case ZMQ_CLIENT: self = Client + default: return nil } } From 00178bb3b38ba0c600e86ecda1c68159a9176b55 Mon Sep 17 00:00:00 2001 From: Andres Botero Date: Mon, 18 Jan 2016 19:29:25 -0500 Subject: [PATCH 02/10] added multiplatform compilation --- SwiftZMQ.xcodeproj/project.pbxproj | 36 ++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 9 deletions(-) diff --git a/SwiftZMQ.xcodeproj/project.pbxproj b/SwiftZMQ.xcodeproj/project.pbxproj index 2ea2c42..7137aaf 100644 --- a/SwiftZMQ.xcodeproj/project.pbxproj +++ b/SwiftZMQ.xcodeproj/project.pbxproj @@ -7,15 +7,15 @@ objects = { /* Begin PBXBuildFile section */ - B00ED9EB1BD8A2CD00BBBBAE /* SwiftZMQ.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B00ED9E01BD8A2CD00BBBBAE /* SwiftZMQ.framework */; settings = {ASSET_TAGS = (); }; }; - B00EDA421BDDD1FB00BBBBAE /* Context.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA361BDDD1FB00BBBBAE /* Context.swift */; settings = {ASSET_TAGS = (); }; }; - B00EDA431BDDD1FB00BBBBAE /* CURVE.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA371BDDD1FB00BBBBAE /* CURVE.swift */; settings = {ASSET_TAGS = (); }; }; - B00EDA441BDDD1FB00BBBBAE /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA381BDDD1FB00BBBBAE /* Error.swift */; settings = {ASSET_TAGS = (); }; }; - B00EDA461BDDD1FB00BBBBAE /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA3A1BDDD1FB00BBBBAE /* Message.swift */; settings = {ASSET_TAGS = (); }; }; - B00EDA471BDDD1FB00BBBBAE /* Poller.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA3B1BDDD1FB00BBBBAE /* Poller.swift */; settings = {ASSET_TAGS = (); }; }; - B00EDA481BDDD1FB00BBBBAE /* Proxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA3C1BDDD1FB00BBBBAE /* Proxy.swift */; settings = {ASSET_TAGS = (); }; }; - B00EDA491BDDD1FB00BBBBAE /* Socket.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA3D1BDDD1FB00BBBBAE /* Socket.swift */; settings = {ASSET_TAGS = (); }; }; - B00EDA4D1BDDD27000BBBBAE /* ZMQTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA411BDDD1FB00BBBBAE /* ZMQTests.swift */; settings = {ASSET_TAGS = (); }; }; + B00ED9EB1BD8A2CD00BBBBAE /* SwiftZMQ.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B00ED9E01BD8A2CD00BBBBAE /* SwiftZMQ.framework */; }; + B00EDA421BDDD1FB00BBBBAE /* Context.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA361BDDD1FB00BBBBAE /* Context.swift */; }; + B00EDA431BDDD1FB00BBBBAE /* CURVE.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA371BDDD1FB00BBBBAE /* CURVE.swift */; }; + B00EDA441BDDD1FB00BBBBAE /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA381BDDD1FB00BBBBAE /* Error.swift */; }; + B00EDA461BDDD1FB00BBBBAE /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA3A1BDDD1FB00BBBBAE /* Message.swift */; }; + B00EDA471BDDD1FB00BBBBAE /* Poller.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA3B1BDDD1FB00BBBBAE /* Poller.swift */; }; + B00EDA481BDDD1FB00BBBBAE /* Proxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA3C1BDDD1FB00BBBBAE /* Proxy.swift */; }; + B00EDA491BDDD1FB00BBBBAE /* Socket.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA3D1BDDD1FB00BBBBAE /* Socket.swift */; }; + B00EDA4D1BDDD27000BBBBAE /* ZMQTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA411BDDD1FB00BBBBAE /* ZMQTests.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -354,6 +354,13 @@ B00ED9F51BD8A2CD00BBBBAE /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = ( + i386, + x86_64, + armv7, + armv7s, + arm64, + ); CLANG_ENABLE_MODULES = YES; COMBINE_HIDPI_IMAGES = YES; DEFINES_MODULE = YES; @@ -377,14 +384,23 @@ PRODUCT_BUNDLE_IDENTIFIER = com.zewo.SwiftZMQ; PRODUCT_NAME = SwiftZMQ; SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator"; SWIFT_INCLUDE_PATHS = "$(SRCROOT)/Dependencies"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VALID_ARCHS = "i386 x86_64 armv7 armv7s arm64"; }; name = Debug; }; B00ED9F61BD8A2CD00BBBBAE /* Release */ = { isa = XCBuildConfiguration; buildSettings = { + ARCHS = ( + i386, + x86_64, + armv7, + armv7s, + arm64, + ); CLANG_ENABLE_MODULES = YES; COMBINE_HIDPI_IMAGES = YES; DEFINES_MODULE = YES; @@ -408,7 +424,9 @@ PRODUCT_BUNDLE_IDENTIFIER = com.zewo.SwiftZMQ; PRODUCT_NAME = SwiftZMQ; SKIP_INSTALL = YES; + SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator"; SWIFT_INCLUDE_PATHS = "$(SRCROOT)/Dependencies"; + VALID_ARCHS = "i386 x86_64 armv7 armv7s arm64"; }; name = Release; }; From fea01ec271a511ae5cc877ebf6e952d5f1ab1d71 Mon Sep 17 00:00:00 2001 From: Andres Botero Date: Mon, 18 Jan 2016 22:34:17 -0500 Subject: [PATCH 03/10] Add script to clone libzmq source and compile+lipo --- .gitignore | 3 +- .../libzmq/pull_compile_libzmq_git.sh | 211 ++++++++++++++++++ SwiftZMQ.xcodeproj/project.pbxproj | 13 ++ 3 files changed, 226 insertions(+), 1 deletion(-) create mode 100755 Dependencies/libzmq/pull_compile_libzmq_git.sh diff --git a/.gitignore b/.gitignore index 5e98e4f..f62fbe4 100644 --- a/.gitignore +++ b/.gitignore @@ -24,4 +24,5 @@ xcuserdata ## Other *.xccheckout *.moved-aside -*.xcuserstate \ No newline at end of file +*.xcuserstate +.DS_Store diff --git a/Dependencies/libzmq/pull_compile_libzmq_git.sh b/Dependencies/libzmq/pull_compile_libzmq_git.sh new file mode 100755 index 0000000..c8e8766 --- /dev/null +++ b/Dependencies/libzmq/pull_compile_libzmq_git.sh @@ -0,0 +1,211 @@ +#!/usr/bin/env bash + + +# Script adapted from https://github.com/samsoir/libzmq-ios-universal +# tried to keep things to a minimum + + + + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + + +GLOBAL_OUTDIR=${DIR}/dependencies +BUILD_DIR=${DIR}/build +LIBZMQ_DIR="${DIR}/libzmq-git" +# CURRENT_DIR=`pwd` +LIBZMQ_FILE="libzmq.a" +# LIBZMQ_UNIVERSAL_FILE="libzmq.a" +# LIBZMQ_UNIVERSAL_PREFIX="universal" +# ZMQ_BUILD_LOG_FILE=$BUILD_DIR/build.log +IOS_DEPLOY_TARGET="8.0" +OSX_DEPLOY_TARGET="10.9" +# VERSION_NUMBER="1.0.0" + + +if [[ -f "${BUILD_DIR}/universal/lib/${LIBZMQ_FILE}" ]]; then +exit 0; +#library already built +fi + + + + +echo "Initializing build directory..." +if [[ -d ${BUILD_DIR} ]]; then +rm -rf "${BUILD_DIR}" +fi + + + +# mkdir -p "${BUILD_DIR}/armv7" +# mkdir -p "${BUILD_DIR}/arm64" +# mkdir -p "${BUILD_DIR}/i386" +# better create them in setenv_all + +echo "Initializing dependency directory..." +if [[ -d ${GLOBAL_OUTDIR} ]]; then +rm -rf "${GLOBAL_OUTDIR}" +fi + +mkdir -p "${GLOBAL_OUTDIR}/include" "${GLOBAL_OUTDIR}/lib" + + + + +setenv () +{ +export ARCH=$1 +export SDK=$2 +export HOST=$3 + +# export CC="$(xcrun -find -sdk ${SDK} cc)" +# export CXX="$(xcrun -find -sdk ${SDK} cxx)" +# export CPP="${CC} -E" # xcrun find cpp did not work + +# after an hour trying to figure what wasn't working with CPP, just realized it was CPPFLAGS, and is not necessary to export CC or CPP + +export SDKROOT +SDKROOT=$(xcrun -sdk "${SDK}" --show-sdk-path) +# export CFLAGS="-arch ${ARCH} -isysroot ${SDKROOT} -mios-version-min=${IOS_DEPLOY_TARGET}" +export CFLAGS="${CFLAGS} -arch ${ARCH}" + +export CXXFLAGS="${CFLAGS}" +export CPPFLAGS="${CFLAGS}" +export LDFLAGS="${CFLAGS}" + +mkdir -p "${BUILD_DIR}/${ARCH}" + +} + +setenv_armv7 () +{ +export CFLAGS="-mios-version-min=${IOS_DEPLOY_TARGET}" +setenv "armv7" "iphoneos" "arm-apple-darwin" +} + +setenv_armv7s () +{ +export CFLAGS="-mios-version-min=${IOS_DEPLOY_TARGET}" +setenv "armv7s" "iphoneos" "arm-apple-darwin" +} + +setenv_arm64 () +{ +export CFLAGS="-mios-version-min=${IOS_DEPLOY_TARGET}" +setenv "arm64" "iphoneos" "arm-apple-darwin" +} + +setenv_i386 () +{ +export CFLAGS="-mmacosx-version-min=${OSX_DEPLOY_TARGET}" +setenv "i386" "macosx" "i386-apple-darwin" +} + +setenv_x86_64 () +{ +export CFLAGS="-mmacosx-version-min=${OSX_DEPLOY_TARGET}" +setenv "x86_64" "macosx" "x86_64-apple-darwin" +} + + +compile_zmq () +{ +make distclean + +cd "${LIBZMQ_DIR}" || exit + +${LIBZMQ_DIR}/autogen.sh + +cd "${DIR}" || exit + + +"${LIBZMQ_DIR}/configure" --disable-dependency-tracking \ +--enable-static --disable-shared \ +--host=${HOST} \ +--prefix="${BUILD_DIR}/${ARCH}" --without-libsodium + +make +make install +make clean +} + + +rm -rf "${LIBZMQ_DIR}" + +echo "Cloning libzmq from source https://github.com/zeromq/libzmq.git" + +git clone "https://github.com/zeromq/libzmq.git" "${LIBZMQ_DIR}" + + +echo "running autogen.sh" + +"${LIBZMQ_DIR}"/autogen.sh + + +echo "Compiling libzmq for armv7..." +setenv_armv7 +compile_zmq + +echo "Compiling libzmq for armv7s..." +setenv_armv7s +compile_zmq + +echo "Compiling libzmq for arm64..." +setenv_arm64 +compile_zmq + +echo "Compiling libzmq for i386..." +setenv_i386 +compile_zmq + +echo "Compiling libzmq for x86_64..." +setenv_x86_64 +compile_zmq + + +echo "Creating universal static library for armv7, armv7s, arm64, i386, x86_64" + +mkdir -p "${BUILD_DIR}/${LIBZMQ_UNIVERSAL_PREFIX}/lib" + +for arch in armv7 armv7s arm64 i386 x86_64 ; do +lipo_input+=("${BUILD_DIR}/${arch}/lib/${LIBZMQ_FILE}") +done + + +mkdir -p "${BUILD_DIR}/universal/lib/" + +lipo -create ${lipo_input[*]} -output "${BUILD_DIR}/universal/lib/${LIBZMQ_FILE}" + + +echo "Copying libzmq headers into universal library..." + +mkdir -p "${BUILD_DIR}/${LIBZMQ_UNIVERSAL_PREFIX}/include" +cp -R "${LIBZMQ_DIR}/include" "${BUILD_DIR}/universal" + +echo "Tidying up..." +rm -rf builds +rm -rf config.* +rm -rf dependencies +rm -rf doc +rm -rf foreign +rm -f libtool +rm -f Makefile +rm -rf perf +rm -rf src +rm -rf tests + + +cat << EOF + +Finished compiling libzmq as a static library for iOS. + +Universal library can be found in build/universal; +"lib" folder contains "libzmq.a" static library +"include" folder contains headers + +To use in your project follow linking instructions +available on the iOS zeromq page +http://www.zeromq.org/build:iphone + +EOF diff --git a/SwiftZMQ.xcodeproj/project.pbxproj b/SwiftZMQ.xcodeproj/project.pbxproj index 7137aaf..daff660 100644 --- a/SwiftZMQ.xcodeproj/project.pbxproj +++ b/SwiftZMQ.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + 53C2A3BB1C4DE5B2008600D1 /* pull_compile_libzmq_git.sh in Resources */ = {isa = PBXBuildFile; fileRef = 53C2A3BA1C4DE5B2008600D1 /* pull_compile_libzmq_git.sh */; }; B00ED9EB1BD8A2CD00BBBBAE /* SwiftZMQ.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B00ED9E01BD8A2CD00BBBBAE /* SwiftZMQ.framework */; }; B00EDA421BDDD1FB00BBBBAE /* Context.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA361BDDD1FB00BBBBAE /* Context.swift */; }; B00EDA431BDDD1FB00BBBBAE /* CURVE.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA371BDDD1FB00BBBBAE /* CURVE.swift */; }; @@ -29,6 +30,7 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 53C2A3BA1C4DE5B2008600D1 /* pull_compile_libzmq_git.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = pull_compile_libzmq_git.sh; sourceTree = ""; }; B00ED9E01BD8A2CD00BBBBAE /* SwiftZMQ.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftZMQ.framework; sourceTree = BUILT_PRODUCTS_DIR; }; B00ED9EA1BD8A2CD00BBBBAE /* SwiftZMQTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SwiftZMQTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; B00EDA021BD8A34B00BBBBAE /* module.map */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.module-map"; path = module.map; sourceTree = ""; }; @@ -64,6 +66,15 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 53C2A3B91C4DE5B2008600D1 /* libzmq */ = { + isa = PBXGroup; + children = ( + 53C2A3BA1C4DE5B2008600D1 /* pull_compile_libzmq_git.sh */, + ); + name = libzmq; + path = dependencies/libzmq; + sourceTree = ""; + }; B00ED9D61BD8A2CD00BBBBAE = { isa = PBXGroup; children = ( @@ -86,6 +97,7 @@ B00ED9FA1BD8A2D900BBBBAE /* Dependencies */ = { isa = PBXGroup; children = ( + 53C2A3B91C4DE5B2008600D1 /* libzmq */, B00EDA001BD8A34B00BBBBAE /* ZeroMQ */, ); name = Dependencies; @@ -215,6 +227,7 @@ isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( + 53C2A3BB1C4DE5B2008600D1 /* pull_compile_libzmq_git.sh in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; From 8aaf61e5a0cd86ece9e23936acc26dfd2e6cf868 Mon Sep 17 00:00:00 2001 From: Andres Botero Date: Tue, 19 Jan 2016 16:42:31 -0500 Subject: [PATCH 04/10] Add missing change in SocketTypes support --- SwiftZMQ/Context.swift | 2 ++ 1 file changed, 2 insertions(+) diff --git a/SwiftZMQ/Context.swift b/SwiftZMQ/Context.swift index b1d7813..aaf94d5 100644 --- a/SwiftZMQ/Context.swift +++ b/SwiftZMQ/Context.swift @@ -79,6 +79,8 @@ extension SocketType { case .Pull: return ZMQ_PULL case .Pair: return ZMQ_PAIR case .Stream: return ZMQ_STREAM + case .Server: return ZMQ_SERVER + case .Client: return ZMQ_CLIENT } } } From f4b6a6decea74a0e797a670b79ff2c9f1e61adc3 Mon Sep 17 00:00:00 2001 From: Andres Botero Date: Tue, 19 Jan 2016 16:44:18 -0500 Subject: [PATCH 05/10] Add compiled libzmq to project --- .gitignore | 2 + .../libzmq/pull_compile_libzmq_git.sh | 2 + SwiftZMQ.xcodeproj/project.pbxproj | 79 +++++++++++++++---- .../xcschemes/SwiftZMQ OSX.xcscheme | 2 +- 4 files changed, 69 insertions(+), 16 deletions(-) diff --git a/.gitignore b/.gitignore index f62fbe4..83dbe79 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,5 @@ xcuserdata *.moved-aside *.xcuserstate .DS_Store +libzmq/ +!libzmq/pull_compile_libzmq_git.sh diff --git a/Dependencies/libzmq/pull_compile_libzmq_git.sh b/Dependencies/libzmq/pull_compile_libzmq_git.sh index c8e8766..a9ee55c 100755 --- a/Dependencies/libzmq/pull_compile_libzmq_git.sh +++ b/Dependencies/libzmq/pull_compile_libzmq_git.sh @@ -194,6 +194,8 @@ rm -f Makefile rm -rf perf rm -rf src rm -rf tests +rm -rf packaging +rm -rf tools cat << EOF diff --git a/SwiftZMQ.xcodeproj/project.pbxproj b/SwiftZMQ.xcodeproj/project.pbxproj index daff660..29e1413 100644 --- a/SwiftZMQ.xcodeproj/project.pbxproj +++ b/SwiftZMQ.xcodeproj/project.pbxproj @@ -8,6 +8,10 @@ /* Begin PBXBuildFile section */ 53C2A3BB1C4DE5B2008600D1 /* pull_compile_libzmq_git.sh in Resources */ = {isa = PBXBuildFile; fileRef = 53C2A3BA1C4DE5B2008600D1 /* pull_compile_libzmq_git.sh */; }; + 53C76A2C1C4EDFD500F0357B /* libzmq.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 53C76A291C4EDFD500F0357B /* libzmq.a */; }; + 53C76A2D1C4EDFD500F0357B /* zmq_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 53C76A2A1C4EDFD500F0357B /* zmq_utils.h */; }; + 53C76A2E1C4EDFD500F0357B /* zmq.h in Headers */ = {isa = PBXBuildFile; fileRef = 53C76A2B1C4EDFD500F0357B /* zmq.h */; }; + 53C76A301C4EE1FE00F0357B /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 53C76A2F1C4EE1FE00F0357B /* libc++.tbd */; }; B00ED9EB1BD8A2CD00BBBBAE /* SwiftZMQ.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = B00ED9E01BD8A2CD00BBBBAE /* SwiftZMQ.framework */; }; B00EDA421BDDD1FB00BBBBAE /* Context.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA361BDDD1FB00BBBBAE /* Context.swift */; }; B00EDA431BDDD1FB00BBBBAE /* CURVE.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA371BDDD1FB00BBBBAE /* CURVE.swift */; }; @@ -31,6 +35,10 @@ /* Begin PBXFileReference section */ 53C2A3BA1C4DE5B2008600D1 /* pull_compile_libzmq_git.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = pull_compile_libzmq_git.sh; sourceTree = ""; }; + 53C76A291C4EDFD500F0357B /* libzmq.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libzmq.a; sourceTree = ""; }; + 53C76A2A1C4EDFD500F0357B /* zmq_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zmq_utils.h; sourceTree = ""; }; + 53C76A2B1C4EDFD500F0357B /* zmq.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zmq.h; sourceTree = ""; }; + 53C76A2F1C4EE1FE00F0357B /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; B00ED9E01BD8A2CD00BBBBAE /* SwiftZMQ.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftZMQ.framework; sourceTree = BUILT_PRODUCTS_DIR; }; B00ED9EA1BD8A2CD00BBBBAE /* SwiftZMQTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SwiftZMQTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; B00EDA021BD8A34B00BBBBAE /* module.map */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = "sourcecode.module-map"; path = module.map; sourceTree = ""; }; @@ -52,6 +60,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 53C76A301C4EE1FE00F0357B /* libc++.tbd in Frameworks */, + 53C76A2C1C4EDFD500F0357B /* libzmq.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -69,6 +79,9 @@ 53C2A3B91C4DE5B2008600D1 /* libzmq */ = { isa = PBXGroup; children = ( + 53C76A291C4EDFD500F0357B /* libzmq.a */, + 53C76A2A1C4EDFD500F0357B /* zmq_utils.h */, + 53C76A2B1C4EDFD500F0357B /* zmq.h */, 53C2A3BA1C4DE5B2008600D1 /* pull_compile_libzmq_git.sh */, ); name = libzmq; @@ -78,6 +91,7 @@ B00ED9D61BD8A2CD00BBBBAE = { isa = PBXGroup; children = ( + 53C76A2F1C4EE1FE00F0357B /* libc++.tbd */, B00ED9FA1BD8A2D900BBBBAE /* Dependencies */, B00EDA351BDDD1FA00BBBBAE /* SwiftZMQ */, B00EDA3F1BDDD1FB00BBBBAE /* SwiftZMQTests */, @@ -144,6 +158,8 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + 53C76A2D1C4EDFD500F0357B /* zmq_utils.h in Headers */, + 53C76A2E1C4EDFD500F0357B /* zmq.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -154,6 +170,7 @@ isa = PBXNativeTarget; buildConfigurationList = B00ED9F41BD8A2CD00BBBBAE /* Build configuration list for PBXNativeTarget "SwiftZMQ" */; buildPhases = ( + 53C2A3BC1C4DE652008600D1 /* Run Script */, B00ED9DB1BD8A2CD00BBBBAE /* Sources */, B00ED9DC1BD8A2CD00BBBBAE /* Frameworks */, B00ED9DD1BD8A2CD00BBBBAE /* Headers */, @@ -193,7 +210,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0700; - LastUpgradeCheck = 0700; + LastUpgradeCheck = 0720; ORGANIZATIONNAME = Zewo; TargetAttributes = { B00ED9DF1BD8A2CD00BBBBAE = { @@ -240,6 +257,26 @@ }; /* End PBXResourcesBuildPhase section */ +/* Begin PBXShellScriptBuildPhase section */ + 53C2A3BC1C4DE652008600D1 /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + "${PROJECT_DIR}/dependencies/libzmq/build/universal/lib/libzmq.a", + "${PROJECT_DIR}/dependencies/libzmq/build/universal/include/zmq.h", + "${PROJECT_DIR}/dependencies/libzmq/build/universal/include/zmq_utils.h", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "${PROJECT_DIR}/dependencies/libzmq/pull_compile_libzmq_git.sh\n\ncp ${PROJECT_DIR}/dependencies/libzmq/build/universal/include/zmq.h ${PROJECT_DIR}/dependencies/libzmq/\ncp ${PROJECT_DIR}/dependencies/libzmq/build/universal/include/zmq_utils.h ${PROJECT_DIR}/dependencies/libzmq/\ncp ${PROJECT_DIR}/dependencies/libzmq/build/universal/lib/libzmq.a ${PROJECT_DIR}/dependencies/libzmq/\n\n"; + }; +/* End PBXShellScriptBuildPhase section */ + /* Begin PBXSourcesBuildPhase section */ B00ED9DB1BD8A2CD00BBBBAE /* Sources */ = { isa = PBXSourcesBuildPhase; @@ -278,6 +315,13 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + armv7, + armv7s, + arm64, + i386, + x86_64, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -317,7 +361,9 @@ ONLY_ACTIVE_ARCH = YES; OTHER_LDFLAGS = "-lzmq"; SDKROOT = macosx; + SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + VALID_ARCHS = "i386 x86_64 armv7 armv7s arm64"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -327,6 +373,13 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; + ARCHS = ( + armv7, + armv7s, + arm64, + i386, + x86_64, + ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -359,6 +412,8 @@ MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = "-lzmq"; SDKROOT = macosx; + SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator"; + VALID_ARCHS = "i386 x86_64 armv7 armv7s arm64"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -367,13 +422,7 @@ B00ED9F51BD8A2CD00BBBBAE /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = ( - i386, - x86_64, - armv7, - armv7s, - arm64, - ); + CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; COMBINE_HIDPI_IMAGES = YES; DEFINES_MODULE = YES; @@ -388,6 +437,7 @@ "$(inherited)", "$(PROJECT_DIR)", "$(PROJECT_DIR)/Dependencies/ZeroMQ", + "$(PROJECT_DIR)/dependencies/libzmq", ); OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( @@ -396,6 +446,7 @@ ); PRODUCT_BUNDLE_IDENTIFIER = com.zewo.SwiftZMQ; PRODUCT_NAME = SwiftZMQ; + SDKROOT = macosx; SKIP_INSTALL = YES; SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator"; SWIFT_INCLUDE_PATHS = "$(SRCROOT)/Dependencies"; @@ -407,13 +458,7 @@ B00ED9F61BD8A2CD00BBBBAE /* Release */ = { isa = XCBuildConfiguration; buildSettings = { - ARCHS = ( - i386, - x86_64, - armv7, - armv7s, - arm64, - ); + CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; COMBINE_HIDPI_IMAGES = YES; DEFINES_MODULE = YES; @@ -428,6 +473,7 @@ "$(inherited)", "$(PROJECT_DIR)", "$(PROJECT_DIR)/Dependencies/ZeroMQ", + "$(PROJECT_DIR)/dependencies/libzmq", ); OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( @@ -436,6 +482,7 @@ ); PRODUCT_BUNDLE_IDENTIFIER = com.zewo.SwiftZMQ; PRODUCT_NAME = SwiftZMQ; + SDKROOT = macosx; SKIP_INSTALL = YES; SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator"; SWIFT_INCLUDE_PATHS = "$(SRCROOT)/Dependencies"; @@ -449,6 +496,7 @@ COMBINE_HIDPI_IMAGES = YES; INFOPLIST_FILE = SwiftZMQ/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + OTHER_LDFLAGS = ""; PRODUCT_BUNDLE_IDENTIFIER = com.zewo.SwiftZMQTests; PRODUCT_NAME = SwiftZMQTests; }; @@ -460,6 +508,7 @@ COMBINE_HIDPI_IMAGES = YES; INFOPLIST_FILE = SwiftZMQ/Info.plist; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/../Frameworks"; + OTHER_LDFLAGS = ""; PRODUCT_BUNDLE_IDENTIFIER = com.zewo.SwiftZMQTests; PRODUCT_NAME = SwiftZMQTests; }; diff --git a/SwiftZMQ.xcodeproj/xcshareddata/xcschemes/SwiftZMQ OSX.xcscheme b/SwiftZMQ.xcodeproj/xcshareddata/xcschemes/SwiftZMQ OSX.xcscheme index f498780..8fe3e37 100644 --- a/SwiftZMQ.xcodeproj/xcshareddata/xcschemes/SwiftZMQ OSX.xcscheme +++ b/SwiftZMQ.xcodeproj/xcshareddata/xcschemes/SwiftZMQ OSX.xcscheme @@ -1,6 +1,6 @@ Date: Wed, 20 Jan 2016 18:13:42 -0500 Subject: [PATCH 06/10] Add iOS build target --- SwiftZMQ.xcodeproj/project.pbxproj | 202 +++++++++++++++--- .../xcschemes/SwiftZMQ iOS.xcscheme | 80 +++++++ 2 files changed, 252 insertions(+), 30 deletions(-) create mode 100644 SwiftZMQ.xcodeproj/xcshareddata/xcschemes/SwiftZMQ iOS.xcscheme diff --git a/SwiftZMQ.xcodeproj/project.pbxproj b/SwiftZMQ.xcodeproj/project.pbxproj index 29e1413..90202cf 100644 --- a/SwiftZMQ.xcodeproj/project.pbxproj +++ b/SwiftZMQ.xcodeproj/project.pbxproj @@ -7,7 +7,17 @@ objects = { /* Begin PBXBuildFile section */ - 53C2A3BB1C4DE5B2008600D1 /* pull_compile_libzmq_git.sh in Resources */ = {isa = PBXBuildFile; fileRef = 53C2A3BA1C4DE5B2008600D1 /* pull_compile_libzmq_git.sh */; }; + 539073F51C50484E00E8F9C6 /* Context.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA361BDDD1FB00BBBBAE /* Context.swift */; }; + 539073F61C50484E00E8F9C6 /* Socket.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA3D1BDDD1FB00BBBBAE /* Socket.swift */; }; + 539073F71C50484E00E8F9C6 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA3A1BDDD1FB00BBBBAE /* Message.swift */; }; + 539073F81C50484E00E8F9C6 /* Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA381BDDD1FB00BBBBAE /* Error.swift */; }; + 539073F91C50484E00E8F9C6 /* CURVE.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA371BDDD1FB00BBBBAE /* CURVE.swift */; }; + 539073FA1C50484E00E8F9C6 /* Proxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA3C1BDDD1FB00BBBBAE /* Proxy.swift */; }; + 539073FB1C50484E00E8F9C6 /* Poller.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA3B1BDDD1FB00BBBBAE /* Poller.swift */; }; + 539073FD1C50484E00E8F9C6 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 53C76A2F1C4EE1FE00F0357B /* libc++.tbd */; }; + 539073FE1C50484E00E8F9C6 /* libzmq.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 53C76A291C4EDFD500F0357B /* libzmq.a */; }; + 539074001C50484E00E8F9C6 /* zmq_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 53C76A2A1C4EDFD500F0357B /* zmq_utils.h */; }; + 539074011C50484E00E8F9C6 /* zmq.h in Headers */ = {isa = PBXBuildFile; fileRef = 53C76A2B1C4EDFD500F0357B /* zmq.h */; }; 53C76A2C1C4EDFD500F0357B /* libzmq.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 53C76A291C4EDFD500F0357B /* libzmq.a */; }; 53C76A2D1C4EDFD500F0357B /* zmq_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 53C76A2A1C4EDFD500F0357B /* zmq_utils.h */; }; 53C76A2E1C4EDFD500F0357B /* zmq.h in Headers */ = {isa = PBXBuildFile; fileRef = 53C76A2B1C4EDFD500F0357B /* zmq.h */; }; @@ -34,6 +44,7 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 539074071C50484E00E8F9C6 /* SwiftZMQ_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftZMQ_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 53C2A3BA1C4DE5B2008600D1 /* pull_compile_libzmq_git.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = pull_compile_libzmq_git.sh; sourceTree = ""; }; 53C76A291C4EDFD500F0357B /* libzmq.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libzmq.a; sourceTree = ""; }; 53C76A2A1C4EDFD500F0357B /* zmq_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zmq_utils.h; sourceTree = ""; }; @@ -56,6 +67,15 @@ /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ + 539073FC1C50484E00E8F9C6 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 539073FD1C50484E00E8F9C6 /* libc++.tbd in Frameworks */, + 539073FE1C50484E00E8F9C6 /* libzmq.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; B00ED9DC1BD8A2CD00BBBBAE /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -104,6 +124,7 @@ children = ( B00ED9E01BD8A2CD00BBBBAE /* SwiftZMQ.framework */, B00ED9EA1BD8A2CD00BBBBAE /* SwiftZMQTests.xctest */, + 539074071C50484E00E8F9C6 /* SwiftZMQ_iOS.framework */, ); name = Products; sourceTree = ""; @@ -154,6 +175,15 @@ /* End PBXGroup section */ /* Begin PBXHeadersBuildPhase section */ + 539073FF1C50484E00E8F9C6 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + 539074001C50484E00E8F9C6 /* zmq_utils.h in Headers */, + 539074011C50484E00E8F9C6 /* zmq.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; B00ED9DD1BD8A2CD00BBBBAE /* Headers */ = { isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; @@ -166,6 +196,25 @@ /* End PBXHeadersBuildPhase section */ /* Begin PBXNativeTarget section */ + 539073F21C50484E00E8F9C6 /* SwiftZMQ_iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 539074041C50484E00E8F9C6 /* Build configuration list for PBXNativeTarget "SwiftZMQ_iOS" */; + buildPhases = ( + 539073F31C50484E00E8F9C6 /* Run Script */, + 539073F41C50484E00E8F9C6 /* Sources */, + 539073FC1C50484E00E8F9C6 /* Frameworks */, + 539073FF1C50484E00E8F9C6 /* Headers */, + 539074021C50484E00E8F9C6 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = SwiftZMQ_iOS; + productName = swiftzmq; + productReference = 539074071C50484E00E8F9C6 /* SwiftZMQ_iOS.framework */; + productType = "com.apple.product-type.framework"; + }; B00ED9DF1BD8A2CD00BBBBAE /* SwiftZMQ */ = { isa = PBXNativeTarget; buildConfigurationList = B00ED9F41BD8A2CD00BBBBAE /* Build configuration list for PBXNativeTarget "SwiftZMQ" */; @@ -235,16 +284,23 @@ targets = ( B00ED9DF1BD8A2CD00BBBBAE /* SwiftZMQ */, B00ED9E91BD8A2CD00BBBBAE /* SwiftZMQTests */, + 539073F21C50484E00E8F9C6 /* SwiftZMQ_iOS */, ); }; /* End PBXProject section */ /* Begin PBXResourcesBuildPhase section */ + 539074021C50484E00E8F9C6 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; B00ED9DE1BD8A2CD00BBBBAE /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = ( - 53C2A3BB1C4DE5B2008600D1 /* pull_compile_libzmq_git.sh in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -258,6 +314,20 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ + 539073F31C50484E00E8F9C6 /* Run Script */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + name = "Run Script"; + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "${PROJECT_DIR}/dependencies/libzmq/pull_compile_libzmq_git.sh\n\ncp ${PROJECT_DIR}/dependencies/libzmq/build/universal/include/zmq.h ${PROJECT_DIR}/dependencies/libzmq/\ncp ${PROJECT_DIR}/dependencies/libzmq/build/universal/include/zmq_utils.h ${PROJECT_DIR}/dependencies/libzmq/\ncp ${PROJECT_DIR}/dependencies/libzmq/build/universal/lib/libzmq.a ${PROJECT_DIR}/dependencies/libzmq/\n\n"; + }; 53C2A3BC1C4DE652008600D1 /* Run Script */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; @@ -267,9 +337,6 @@ ); name = "Run Script"; outputPaths = ( - "${PROJECT_DIR}/dependencies/libzmq/build/universal/lib/libzmq.a", - "${PROJECT_DIR}/dependencies/libzmq/build/universal/include/zmq.h", - "${PROJECT_DIR}/dependencies/libzmq/build/universal/include/zmq_utils.h", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -278,6 +345,20 @@ /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ + 539073F41C50484E00E8F9C6 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 539073F51C50484E00E8F9C6 /* Context.swift in Sources */, + 539073F61C50484E00E8F9C6 /* Socket.swift in Sources */, + 539073F71C50484E00E8F9C6 /* Message.swift in Sources */, + 539073F81C50484E00E8F9C6 /* Error.swift in Sources */, + 539073F91C50484E00E8F9C6 /* CURVE.swift in Sources */, + 539073FA1C50484E00E8F9C6 /* Proxy.swift in Sources */, + 539073FB1C50484E00E8F9C6 /* Poller.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; B00ED9DB1BD8A2CD00BBBBAE /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -311,17 +392,83 @@ /* End PBXTargetDependency section */ /* Begin XCBuildConfiguration section */ + 539074051C50484E00E8F9C6 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_BITCODE = NO; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = SwiftZMQ/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + "$(PROJECT_DIR)/Dependencies/ZeroMQ", + "$(PROJECT_DIR)/dependencies/libzmq", + ); + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ( + "-L/usr/local/lib", + "-lzmq", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.zewo.SwiftZMQ-iOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_INCLUDE_PATHS = "$(SRCROOT)/Dependencies"; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 539074061C50484E00E8F9C6 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_IDENTITY = "iPhone Developer"; + COMBINE_HIDPI_IMAGES = YES; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + ENABLE_BITCODE = NO; + FRAMEWORK_VERSION = A; + INFOPLIST_FILE = SwiftZMQ/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; + LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks @loader_path/Frameworks"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + "$(PROJECT_DIR)/Dependencies/ZeroMQ", + "$(PROJECT_DIR)/dependencies/libzmq", + ); + OTHER_CFLAGS = ""; + OTHER_LDFLAGS = ( + "-L/usr/local/lib", + "-lzmq", + ); + PRODUCT_BUNDLE_IDENTIFIER = "com.zewo.SwiftZMQ-iOS"; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SKIP_INSTALL = YES; + SWIFT_INCLUDE_PATHS = "$(SRCROOT)/Dependencies"; + }; + name = Release; + }; B00ED9F21BD8A2CD00BBBBAE /* Debug */ = { isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; - ARCHS = ( - armv7, - armv7s, - arm64, - i386, - x86_64, - ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -355,15 +502,12 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = /usr/local/include; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LIBRARY_SEARCH_PATHS = /usr/local/lib; MACOSX_DEPLOYMENT_TARGET = 10.10; MTL_ENABLE_DEBUG_INFO = YES; - ONLY_ACTIVE_ARCH = YES; OTHER_LDFLAGS = "-lzmq"; - SDKROOT = macosx; - SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - VALID_ARCHS = "i386 x86_64 armv7 armv7s arm64"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -373,13 +517,6 @@ isa = XCBuildConfiguration; buildSettings = { ALWAYS_SEARCH_USER_PATHS = YES; - ARCHS = ( - armv7, - armv7s, - arm64, - i386, - x86_64, - ); CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; CLANG_CXX_LIBRARY = "libc++"; CLANG_ENABLE_MODULES = YES; @@ -407,13 +544,11 @@ GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; HEADER_SEARCH_PATHS = /usr/local/include; + IPHONEOS_DEPLOYMENT_TARGET = 8.0; LIBRARY_SEARCH_PATHS = /usr/local/lib; MACOSX_DEPLOYMENT_TARGET = 10.10; MTL_ENABLE_DEBUG_INFO = NO; OTHER_LDFLAGS = "-lzmq"; - SDKROOT = macosx; - SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator"; - VALID_ARCHS = "i386 x86_64 armv7 armv7s arm64"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -439,6 +574,7 @@ "$(PROJECT_DIR)/Dependencies/ZeroMQ", "$(PROJECT_DIR)/dependencies/libzmq", ); + MACOSX_DEPLOYMENT_TARGET = 10.9; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( "-L/usr/local/lib", @@ -448,10 +584,8 @@ PRODUCT_NAME = SwiftZMQ; SDKROOT = macosx; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator"; SWIFT_INCLUDE_PATHS = "$(SRCROOT)/Dependencies"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - VALID_ARCHS = "i386 x86_64 armv7 armv7s arm64"; }; name = Debug; }; @@ -475,6 +609,7 @@ "$(PROJECT_DIR)/Dependencies/ZeroMQ", "$(PROJECT_DIR)/dependencies/libzmq", ); + MACOSX_DEPLOYMENT_TARGET = 10.9; OTHER_CFLAGS = ""; OTHER_LDFLAGS = ( "-L/usr/local/lib", @@ -484,9 +619,7 @@ PRODUCT_NAME = SwiftZMQ; SDKROOT = macosx; SKIP_INSTALL = YES; - SUPPORTED_PLATFORMS = "macosx iphoneos iphonesimulator"; SWIFT_INCLUDE_PATHS = "$(SRCROOT)/Dependencies"; - VALID_ARCHS = "i386 x86_64 armv7 armv7s arm64"; }; name = Release; }; @@ -517,6 +650,15 @@ /* End XCBuildConfiguration section */ /* Begin XCConfigurationList section */ + 539074041C50484E00E8F9C6 /* Build configuration list for PBXNativeTarget "SwiftZMQ_iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 539074051C50484E00E8F9C6 /* Debug */, + 539074061C50484E00E8F9C6 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; B00ED9DA1BD8A2CD00BBBBAE /* Build configuration list for PBXProject "SwiftZMQ" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/SwiftZMQ.xcodeproj/xcshareddata/xcschemes/SwiftZMQ iOS.xcscheme b/SwiftZMQ.xcodeproj/xcshareddata/xcschemes/SwiftZMQ iOS.xcscheme new file mode 100644 index 0000000..3fe128a --- /dev/null +++ b/SwiftZMQ.xcodeproj/xcshareddata/xcschemes/SwiftZMQ iOS.xcscheme @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + From 92b1a95fb4be3e3b6934a4dc27e616d8d9936a1d Mon Sep 17 00:00:00 2001 From: Andres Botero Date: Wed, 20 Jan 2016 18:25:14 -0500 Subject: [PATCH 07/10] updated readme --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b4b92db..c02d513 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,8 @@ SwiftZMQ - [x] Poller - [x] Proxy +This fork clones the libzmq repo and compiles it statically into the SwiftZMQ framework, also it adds the iOS framework target + ##Example ```swift From 8b344800277e5c6bb77ba0796352a5165b3a329e Mon Sep 17 00:00:00 2001 From: Andres Botero Date: Wed, 20 Jan 2016 21:48:37 -0500 Subject: [PATCH 08/10] Add diferent libzmq for ios and osx --- .../libzmq/pull_compile_libzmq_git.sh | 134 +++++++++--------- SwiftZMQ.xcodeproj/project.pbxproj | 2 +- 2 files changed, 68 insertions(+), 68 deletions(-) diff --git a/Dependencies/libzmq/pull_compile_libzmq_git.sh b/Dependencies/libzmq/pull_compile_libzmq_git.sh index a9ee55c..34c60f0 100755 --- a/Dependencies/libzmq/pull_compile_libzmq_git.sh +++ b/Dependencies/libzmq/pull_compile_libzmq_git.sh @@ -12,18 +12,15 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" GLOBAL_OUTDIR=${DIR}/dependencies BUILD_DIR=${DIR}/build + LIBZMQ_DIR="${DIR}/libzmq-git" -# CURRENT_DIR=`pwd` LIBZMQ_FILE="libzmq.a" -# LIBZMQ_UNIVERSAL_FILE="libzmq.a" -# LIBZMQ_UNIVERSAL_PREFIX="universal" -# ZMQ_BUILD_LOG_FILE=$BUILD_DIR/build.log + IOS_DEPLOY_TARGET="8.0" OSX_DEPLOY_TARGET="10.9" -# VERSION_NUMBER="1.0.0" -if [[ -f "${BUILD_DIR}/universal/lib/${LIBZMQ_FILE}" ]]; then +if [[ -f "${DIR}/libzmq-ios.a" ]]; then exit 0; #library already built fi @@ -37,12 +34,6 @@ rm -rf "${BUILD_DIR}" fi - -# mkdir -p "${BUILD_DIR}/armv7" -# mkdir -p "${BUILD_DIR}/arm64" -# mkdir -p "${BUILD_DIR}/i386" -# better create them in setenv_all - echo "Initializing dependency directory..." if [[ -d ${GLOBAL_OUTDIR} ]]; then rm -rf "${GLOBAL_OUTDIR}" @@ -59,56 +50,35 @@ export ARCH=$1 export SDK=$2 export HOST=$3 -# export CC="$(xcrun -find -sdk ${SDK} cc)" -# export CXX="$(xcrun -find -sdk ${SDK} cxx)" -# export CPP="${CC} -E" # xcrun find cpp did not work - -# after an hour trying to figure what wasn't working with CPP, just realized it was CPPFLAGS, and is not necessary to export CC or CPP export SDKROOT SDKROOT=$(xcrun -sdk "${SDK}" --show-sdk-path) -# export CFLAGS="-arch ${ARCH} -isysroot ${SDKROOT} -mios-version-min=${IOS_DEPLOY_TARGET}" + export CFLAGS="${CFLAGS} -arch ${ARCH}" export CXXFLAGS="${CFLAGS}" export CPPFLAGS="${CFLAGS}" export LDFLAGS="${CFLAGS}" -mkdir -p "${BUILD_DIR}/${ARCH}" +mkdir -p "${BUILD_DIR}/${SDK}-${ARCH}" } -setenv_armv7 () + + + +setenv_ios () { export CFLAGS="-mios-version-min=${IOS_DEPLOY_TARGET}" -setenv "armv7" "iphoneos" "arm-apple-darwin" +setenv $1 $2 $3 } -setenv_armv7s () -{ -export CFLAGS="-mios-version-min=${IOS_DEPLOY_TARGET}" -setenv "armv7s" "iphoneos" "arm-apple-darwin" -} - -setenv_arm64 () -{ -export CFLAGS="-mios-version-min=${IOS_DEPLOY_TARGET}" -setenv "arm64" "iphoneos" "arm-apple-darwin" -} - -setenv_i386 () +setenv_osx () { export CFLAGS="-mmacosx-version-min=${OSX_DEPLOY_TARGET}" -setenv "i386" "macosx" "i386-apple-darwin" +setenv $1 $2 $3 } -setenv_x86_64 () -{ -export CFLAGS="-mmacosx-version-min=${OSX_DEPLOY_TARGET}" -setenv "x86_64" "macosx" "x86_64-apple-darwin" -} - - compile_zmq () { make distclean @@ -143,46 +113,84 @@ echo "running autogen.sh" "${LIBZMQ_DIR}"/autogen.sh +echo "Compiling libzmq for iphoneos/iphonesimulator" +echo "=============================================" +# ios and mac osx should be compiled in different files +# https://karp.id.au/post/xcode_7_linker_rules/ + echo "Compiling libzmq for armv7..." -setenv_armv7 +setenv_ios "armv7" "iphoneos" "arm-apple-darwin" compile_zmq echo "Compiling libzmq for armv7s..." -setenv_armv7s +setenv_ios "armv7s" "iphoneos" "arm-apple-darwin" compile_zmq echo "Compiling libzmq for arm64..." -setenv_arm64 +setenv_ios "arm64" "iphoneos" "arm-apple-darwin" compile_zmq echo "Compiling libzmq for i386..." -setenv_i386 +setenv_ios "i386" "iphonesimulator" "i386-apple-darwin" compile_zmq echo "Compiling libzmq for x86_64..." -setenv_x86_64 +setenv_ios "x86_64" "iphonesimulator" "x86_64-apple-darwin" compile_zmq -echo "Creating universal static library for armv7, armv7s, arm64, i386, x86_64" +echo "Creating fat static library for iphoneos/iphonesimulator" + +lipo_input+=("${BUILD_DIR}/iphoneos-armv7/lib/${LIBZMQ_FILE}") +lipo_input+=("${BUILD_DIR}/iphoneos-armv7s/lib/${LIBZMQ_FILE}") +lipo_input+=("${BUILD_DIR}/iphoneos-arm64/lib/${LIBZMQ_FILE}") +lipo_input+=("${BUILD_DIR}/iphonesimulator-i386/lib/${LIBZMQ_FILE}") +lipo_input+=("${BUILD_DIR}/iphonesimulator-x86_64/lib/${LIBZMQ_FILE}") + +mkdir -p "${BUILD_DIR}/universal-ios/" + +lipo -create ${lipo_input[*]} -output "${BUILD_DIR}/universal-ios/${LIBZMQ_FILE}" + + + +echo "Compiling libzmq for macosx" +echo "===========================" + +echo "Compiling libzmq for i386..." +setenv_osx "i386" "macosx" "i386-apple-darwin" +compile_zmq + +echo "Compiling libzmq for x86_64..." +setenv_osx "x86_64" "macosx" "x86_64-apple-darwin" +compile_zmq + + +echo "Creating fat static library for macosx" + +lipo_input+=("${BUILD_DIR}/macosx-i386/lib/${LIBZMQ_FILE}") +lipo_input+=("${BUILD_DIR}/macosx-x86_64/lib/${LIBZMQ_FILE}") + +mkdir -p "${BUILD_DIR}/universal-osx/" + +lipo -create ${lipo_input[*]} -output "${BUILD_DIR}/universal-osx/${LIBZMQ_FILE}" -mkdir -p "${BUILD_DIR}/${LIBZMQ_UNIVERSAL_PREFIX}/lib" -for arch in armv7 armv7s arm64 i386 x86_64 ; do -lipo_input+=("${BUILD_DIR}/${arch}/lib/${LIBZMQ_FILE}") -done -mkdir -p "${BUILD_DIR}/universal/lib/" -lipo -create ${lipo_input[*]} -output "${BUILD_DIR}/universal/lib/${LIBZMQ_FILE}" echo "Copying libzmq headers into universal library..." -mkdir -p "${BUILD_DIR}/${LIBZMQ_UNIVERSAL_PREFIX}/include" +mkdir -p "${BUILD_DIR}/universal" cp -R "${LIBZMQ_DIR}/include" "${BUILD_DIR}/universal" + + + + + + echo "Tidying up..." rm -rf builds rm -rf config.* @@ -198,16 +206,8 @@ rm -rf packaging rm -rf tools -cat << EOF +cp ${DIR}/build/universal/include/zmq.h ${DIR} +cp ${DIR}/build/universal/include/zmq_utils.h ${DIR} +cp ${DIR}/build/universal-ios/libzmq.a ${DIR}/libzmq-ios.a +cp ${DIR}/build/universal-osx/libzmq.a ${DIR}/libzmq-osx.a -Finished compiling libzmq as a static library for iOS. - -Universal library can be found in build/universal; -"lib" folder contains "libzmq.a" static library -"include" folder contains headers - -To use in your project follow linking instructions -available on the iOS zeromq page -http://www.zeromq.org/build:iphone - -EOF diff --git a/SwiftZMQ.xcodeproj/project.pbxproj b/SwiftZMQ.xcodeproj/project.pbxproj index 90202cf..13921c2 100644 --- a/SwiftZMQ.xcodeproj/project.pbxproj +++ b/SwiftZMQ.xcodeproj/project.pbxproj @@ -326,7 +326,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "${PROJECT_DIR}/dependencies/libzmq/pull_compile_libzmq_git.sh\n\ncp ${PROJECT_DIR}/dependencies/libzmq/build/universal/include/zmq.h ${PROJECT_DIR}/dependencies/libzmq/\ncp ${PROJECT_DIR}/dependencies/libzmq/build/universal/include/zmq_utils.h ${PROJECT_DIR}/dependencies/libzmq/\ncp ${PROJECT_DIR}/dependencies/libzmq/build/universal/lib/libzmq.a ${PROJECT_DIR}/dependencies/libzmq/\n\n"; + shellScript = "${PROJECT_DIR}/dependencies/libzmq/pull_compile_libzmq_git.sh"; }; 53C2A3BC1C4DE652008600D1 /* Run Script */ = { isa = PBXShellScriptBuildPhase; From 8d4c90308a277ccd02a01275a68597df8cf59041 Mon Sep 17 00:00:00 2001 From: Andres Botero Date: Wed, 20 Jan 2016 23:13:00 -0500 Subject: [PATCH 09/10] Add different libzmq to the compilation steps --- .../libzmq/pull_compile_libzmq_git.sh | 15 ++++--- SwiftZMQ.xcodeproj/project.pbxproj | 42 ++++++++----------- 2 files changed, 25 insertions(+), 32 deletions(-) diff --git a/Dependencies/libzmq/pull_compile_libzmq_git.sh b/Dependencies/libzmq/pull_compile_libzmq_git.sh index 34c60f0..86e1353 100755 --- a/Dependencies/libzmq/pull_compile_libzmq_git.sh +++ b/Dependencies/libzmq/pull_compile_libzmq_git.sh @@ -83,17 +83,12 @@ compile_zmq () { make distclean -cd "${LIBZMQ_DIR}" || exit - -${LIBZMQ_DIR}/autogen.sh - -cd "${DIR}" || exit "${LIBZMQ_DIR}/configure" --disable-dependency-tracking \ --enable-static --disable-shared \ --host=${HOST} \ ---prefix="${BUILD_DIR}/${ARCH}" --without-libsodium +--prefix="${BUILD_DIR}/${SDK}-${ARCH}" --without-libsodium make make install @@ -108,9 +103,12 @@ echo "Cloning libzmq from source https://github.com/zeromq/libzmq.git" git clone "https://github.com/zeromq/libzmq.git" "${LIBZMQ_DIR}" -echo "running autogen.sh" -"${LIBZMQ_DIR}"/autogen.sh +cd "${LIBZMQ_DIR}" || exit + +${LIBZMQ_DIR}/autogen.sh + +cd "${DIR}" || exit echo "Compiling libzmq for iphoneos/iphonesimulator" @@ -167,6 +165,7 @@ compile_zmq echo "Creating fat static library for macosx" +lipo_input=( ) lipo_input+=("${BUILD_DIR}/macosx-i386/lib/${LIBZMQ_FILE}") lipo_input+=("${BUILD_DIR}/macosx-x86_64/lib/${LIBZMQ_FILE}") diff --git a/SwiftZMQ.xcodeproj/project.pbxproj b/SwiftZMQ.xcodeproj/project.pbxproj index 13921c2..7c4a93a 100644 --- a/SwiftZMQ.xcodeproj/project.pbxproj +++ b/SwiftZMQ.xcodeproj/project.pbxproj @@ -7,6 +7,8 @@ objects = { /* Begin PBXBuildFile section */ + 53045E9A1C50914D0037E4C1 /* libzmq-osx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 53045E981C50914D0037E4C1 /* libzmq-osx.a */; }; + 53045E9B1C5091580037E4C1 /* libzmq-ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 53045E971C50914D0037E4C1 /* libzmq-ios.a */; }; 539073F51C50484E00E8F9C6 /* Context.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA361BDDD1FB00BBBBAE /* Context.swift */; }; 539073F61C50484E00E8F9C6 /* Socket.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA3D1BDDD1FB00BBBBAE /* Socket.swift */; }; 539073F71C50484E00E8F9C6 /* Message.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA3A1BDDD1FB00BBBBAE /* Message.swift */; }; @@ -15,10 +17,8 @@ 539073FA1C50484E00E8F9C6 /* Proxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA3C1BDDD1FB00BBBBAE /* Proxy.swift */; }; 539073FB1C50484E00E8F9C6 /* Poller.swift in Sources */ = {isa = PBXBuildFile; fileRef = B00EDA3B1BDDD1FB00BBBBAE /* Poller.swift */; }; 539073FD1C50484E00E8F9C6 /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 53C76A2F1C4EE1FE00F0357B /* libc++.tbd */; }; - 539073FE1C50484E00E8F9C6 /* libzmq.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 53C76A291C4EDFD500F0357B /* libzmq.a */; }; 539074001C50484E00E8F9C6 /* zmq_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 53C76A2A1C4EDFD500F0357B /* zmq_utils.h */; }; 539074011C50484E00E8F9C6 /* zmq.h in Headers */ = {isa = PBXBuildFile; fileRef = 53C76A2B1C4EDFD500F0357B /* zmq.h */; }; - 53C76A2C1C4EDFD500F0357B /* libzmq.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 53C76A291C4EDFD500F0357B /* libzmq.a */; }; 53C76A2D1C4EDFD500F0357B /* zmq_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 53C76A2A1C4EDFD500F0357B /* zmq_utils.h */; }; 53C76A2E1C4EDFD500F0357B /* zmq.h in Headers */ = {isa = PBXBuildFile; fileRef = 53C76A2B1C4EDFD500F0357B /* zmq.h */; }; 53C76A301C4EE1FE00F0357B /* libc++.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 53C76A2F1C4EE1FE00F0357B /* libc++.tbd */; }; @@ -44,9 +44,10 @@ /* End PBXContainerItemProxy section */ /* Begin PBXFileReference section */ + 53045E971C50914D0037E4C1 /* libzmq-ios.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libzmq-ios.a"; path = "Dependencies/libzmq/libzmq-ios.a"; sourceTree = SOURCE_ROOT; }; + 53045E981C50914D0037E4C1 /* libzmq-osx.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "libzmq-osx.a"; path = "Dependencies/libzmq/libzmq-osx.a"; sourceTree = SOURCE_ROOT; }; 539074071C50484E00E8F9C6 /* SwiftZMQ_iOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = SwiftZMQ_iOS.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 53C2A3BA1C4DE5B2008600D1 /* pull_compile_libzmq_git.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = pull_compile_libzmq_git.sh; sourceTree = ""; }; - 53C76A291C4EDFD500F0357B /* libzmq.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libzmq.a; sourceTree = ""; }; 53C76A2A1C4EDFD500F0357B /* zmq_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zmq_utils.h; sourceTree = ""; }; 53C76A2B1C4EDFD500F0357B /* zmq.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zmq.h; sourceTree = ""; }; 53C76A2F1C4EE1FE00F0357B /* libc++.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = "libc++.tbd"; path = "usr/lib/libc++.tbd"; sourceTree = SDKROOT; }; @@ -72,7 +73,7 @@ buildActionMask = 2147483647; files = ( 539073FD1C50484E00E8F9C6 /* libc++.tbd in Frameworks */, - 539073FE1C50484E00E8F9C6 /* libzmq.a in Frameworks */, + 53045E9B1C5091580037E4C1 /* libzmq-ios.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -81,7 +82,7 @@ buildActionMask = 2147483647; files = ( 53C76A301C4EE1FE00F0357B /* libc++.tbd in Frameworks */, - 53C76A2C1C4EDFD500F0357B /* libzmq.a in Frameworks */, + 53045E9A1C50914D0037E4C1 /* libzmq-osx.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -99,7 +100,8 @@ 53C2A3B91C4DE5B2008600D1 /* libzmq */ = { isa = PBXGroup; children = ( - 53C76A291C4EDFD500F0357B /* libzmq.a */, + 53045E971C50914D0037E4C1 /* libzmq-ios.a */, + 53045E981C50914D0037E4C1 /* libzmq-osx.a */, 53C76A2A1C4EDFD500F0357B /* zmq_utils.h */, 53C76A2B1C4EDFD500F0357B /* zmq.h */, 53C2A3BA1C4DE5B2008600D1 /* pull_compile_libzmq_git.sh */, @@ -414,12 +416,10 @@ "$(PROJECT_DIR)", "$(PROJECT_DIR)/Dependencies/ZeroMQ", "$(PROJECT_DIR)/dependencies/libzmq", + "$(PROJECT_DIR)/Dependencies/libzmq", ); OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ( - "-L/usr/local/lib", - "-lzmq", - ); + OTHER_LDFLAGS = "-L/usr/local/lib "; PRODUCT_BUNDLE_IDENTIFIER = "com.zewo.SwiftZMQ-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; @@ -451,12 +451,10 @@ "$(PROJECT_DIR)", "$(PROJECT_DIR)/Dependencies/ZeroMQ", "$(PROJECT_DIR)/dependencies/libzmq", + "$(PROJECT_DIR)/Dependencies/libzmq", ); OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ( - "-L/usr/local/lib", - "-lzmq", - ); + OTHER_LDFLAGS = "-L/usr/local/lib "; PRODUCT_BUNDLE_IDENTIFIER = "com.zewo.SwiftZMQ-iOS"; PRODUCT_NAME = "$(TARGET_NAME)"; SDKROOT = iphoneos; @@ -506,7 +504,7 @@ LIBRARY_SEARCH_PATHS = /usr/local/lib; MACOSX_DEPLOYMENT_TARGET = 10.10; MTL_ENABLE_DEBUG_INFO = YES; - OTHER_LDFLAGS = "-lzmq"; + OTHER_LDFLAGS = ""; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; @@ -548,7 +546,7 @@ LIBRARY_SEARCH_PATHS = /usr/local/lib; MACOSX_DEPLOYMENT_TARGET = 10.10; MTL_ENABLE_DEBUG_INFO = NO; - OTHER_LDFLAGS = "-lzmq"; + OTHER_LDFLAGS = ""; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -573,13 +571,11 @@ "$(PROJECT_DIR)", "$(PROJECT_DIR)/Dependencies/ZeroMQ", "$(PROJECT_DIR)/dependencies/libzmq", + "$(PROJECT_DIR)/Dependencies/libzmq", ); MACOSX_DEPLOYMENT_TARGET = 10.9; OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ( - "-L/usr/local/lib", - "-lzmq", - ); + OTHER_LDFLAGS = "-L/usr/local/lib"; PRODUCT_BUNDLE_IDENTIFIER = com.zewo.SwiftZMQ; PRODUCT_NAME = SwiftZMQ; SDKROOT = macosx; @@ -608,13 +604,11 @@ "$(PROJECT_DIR)", "$(PROJECT_DIR)/Dependencies/ZeroMQ", "$(PROJECT_DIR)/dependencies/libzmq", + "$(PROJECT_DIR)/Dependencies/libzmq", ); MACOSX_DEPLOYMENT_TARGET = 10.9; OTHER_CFLAGS = ""; - OTHER_LDFLAGS = ( - "-L/usr/local/lib", - "-lzmq", - ); + OTHER_LDFLAGS = "-L/usr/local/lib"; PRODUCT_BUNDLE_IDENTIFIER = com.zewo.SwiftZMQ; PRODUCT_NAME = SwiftZMQ; SDKROOT = macosx; From c5258068f4510d9779478a47ac7d3f432e3f0c57 Mon Sep 17 00:00:00 2001 From: Andres Botero Date: Wed, 20 Jan 2016 23:33:21 -0500 Subject: [PATCH 10/10] Fix run script build phase --- SwiftZMQ.xcodeproj/project.pbxproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/SwiftZMQ.xcodeproj/project.pbxproj b/SwiftZMQ.xcodeproj/project.pbxproj index 7c4a93a..460776c 100644 --- a/SwiftZMQ.xcodeproj/project.pbxproj +++ b/SwiftZMQ.xcodeproj/project.pbxproj @@ -342,7 +342,7 @@ ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "${PROJECT_DIR}/dependencies/libzmq/pull_compile_libzmq_git.sh\n\ncp ${PROJECT_DIR}/dependencies/libzmq/build/universal/include/zmq.h ${PROJECT_DIR}/dependencies/libzmq/\ncp ${PROJECT_DIR}/dependencies/libzmq/build/universal/include/zmq_utils.h ${PROJECT_DIR}/dependencies/libzmq/\ncp ${PROJECT_DIR}/dependencies/libzmq/build/universal/lib/libzmq.a ${PROJECT_DIR}/dependencies/libzmq/\n\n"; + shellScript = "${PROJECT_DIR}/dependencies/libzmq/pull_compile_libzmq_git.sh\n\n"; }; /* End PBXShellScriptBuildPhase section */