Merge pull request #2 from BoteRock/master

Build libzmq from source, generate SwiftZMQ.framework for macosx and iphoneos platforms.
This commit is contained in:
Paulo Faria 2016-01-21 07:57:07 -02:00
commit d4e5da572c
7 changed files with 545 additions and 25 deletions

5
.gitignore vendored
View File

@ -24,4 +24,7 @@ xcuserdata
## Other
*.xccheckout
*.moved-aside
*.xcuserstate
*.xcuserstate
.DS_Store
libzmq/
!libzmq/pull_compile_libzmq_git.sh

212
Dependencies/libzmq/pull_compile_libzmq_git.sh vendored Executable file
View File

@ -0,0 +1,212 @@
#!/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"
LIBZMQ_FILE="libzmq.a"
IOS_DEPLOY_TARGET="8.0"
OSX_DEPLOY_TARGET="10.9"
if [[ -f "${DIR}/libzmq-ios.a" ]]; then
exit 0;
#library already built
fi
echo "Initializing build directory..."
if [[ -d ${BUILD_DIR} ]]; then
rm -rf "${BUILD_DIR}"
fi
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 SDKROOT
SDKROOT=$(xcrun -sdk "${SDK}" --show-sdk-path)
export CFLAGS="${CFLAGS} -arch ${ARCH}"
export CXXFLAGS="${CFLAGS}"
export CPPFLAGS="${CFLAGS}"
export LDFLAGS="${CFLAGS}"
mkdir -p "${BUILD_DIR}/${SDK}-${ARCH}"
}
setenv_ios ()
{
export CFLAGS="-mios-version-min=${IOS_DEPLOY_TARGET}"
setenv $1 $2 $3
}
setenv_osx ()
{
export CFLAGS="-mmacosx-version-min=${OSX_DEPLOY_TARGET}"
setenv $1 $2 $3
}
compile_zmq ()
{
make distclean
"${LIBZMQ_DIR}/configure" --disable-dependency-tracking \
--enable-static --disable-shared \
--host=${HOST} \
--prefix="${BUILD_DIR}/${SDK}-${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}"
cd "${LIBZMQ_DIR}" || exit
${LIBZMQ_DIR}/autogen.sh
cd "${DIR}" || exit
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_ios "armv7" "iphoneos" "arm-apple-darwin"
compile_zmq
echo "Compiling libzmq for armv7s..."
setenv_ios "armv7s" "iphoneos" "arm-apple-darwin"
compile_zmq
echo "Compiling libzmq for arm64..."
setenv_ios "arm64" "iphoneos" "arm-apple-darwin"
compile_zmq
echo "Compiling libzmq for i386..."
setenv_ios "i386" "iphonesimulator" "i386-apple-darwin"
compile_zmq
echo "Compiling libzmq for x86_64..."
setenv_ios "x86_64" "iphonesimulator" "x86_64-apple-darwin"
compile_zmq
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=( )
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}"
echo "Copying libzmq headers into universal library..."
mkdir -p "${BUILD_DIR}/universal"
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
rm -rf packaging
rm -rf tools
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

View File

@ -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

View File

@ -7,15 +7,30 @@
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 = (); }; };
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 */; };
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 */; };
539074001C50484E00E8F9C6 /* zmq_utils.h in Headers */ = {isa = PBXBuildFile; fileRef = 53C76A2A1C4EDFD500F0357B /* zmq_utils.h */; };
539074011C50484E00E8F9C6 /* zmq.h in Headers */ = {isa = PBXBuildFile; fileRef = 53C76A2B1C4EDFD500F0357B /* zmq.h */; };
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 */; };
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 */
@ -29,6 +44,13 @@
/* 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 = "<group>"; };
53C76A2A1C4EDFD500F0357B /* zmq_utils.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zmq_utils.h; sourceTree = "<group>"; };
53C76A2B1C4EDFD500F0357B /* zmq.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zmq.h; sourceTree = "<group>"; };
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 = "<group>"; };
@ -46,10 +68,21 @@
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
539073FC1C50484E00E8F9C6 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
539073FD1C50484E00E8F9C6 /* libc++.tbd in Frameworks */,
53045E9B1C5091580037E4C1 /* libzmq-ios.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
B00ED9DC1BD8A2CD00BBBBAE /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
53C76A301C4EE1FE00F0357B /* libc++.tbd in Frameworks */,
53045E9A1C50914D0037E4C1 /* libzmq-osx.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@ -64,9 +97,23 @@
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
53C2A3B91C4DE5B2008600D1 /* libzmq */ = {
isa = PBXGroup;
children = (
53045E971C50914D0037E4C1 /* libzmq-ios.a */,
53045E981C50914D0037E4C1 /* libzmq-osx.a */,
53C76A2A1C4EDFD500F0357B /* zmq_utils.h */,
53C76A2B1C4EDFD500F0357B /* zmq.h */,
53C2A3BA1C4DE5B2008600D1 /* pull_compile_libzmq_git.sh */,
);
name = libzmq;
path = dependencies/libzmq;
sourceTree = "<group>";
};
B00ED9D61BD8A2CD00BBBBAE = {
isa = PBXGroup;
children = (
53C76A2F1C4EE1FE00F0357B /* libc++.tbd */,
B00ED9FA1BD8A2D900BBBBAE /* Dependencies */,
B00EDA351BDDD1FA00BBBBAE /* SwiftZMQ */,
B00EDA3F1BDDD1FB00BBBBAE /* SwiftZMQTests */,
@ -79,6 +126,7 @@
children = (
B00ED9E01BD8A2CD00BBBBAE /* SwiftZMQ.framework */,
B00ED9EA1BD8A2CD00BBBBAE /* SwiftZMQTests.xctest */,
539074071C50484E00E8F9C6 /* SwiftZMQ_iOS.framework */,
);
name = Products;
sourceTree = "<group>";
@ -86,6 +134,7 @@
B00ED9FA1BD8A2D900BBBBAE /* Dependencies */ = {
isa = PBXGroup;
children = (
53C2A3B91C4DE5B2008600D1 /* libzmq */,
B00EDA001BD8A34B00BBBBAE /* ZeroMQ */,
);
name = Dependencies;
@ -128,20 +177,51 @@
/* 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;
files = (
53C76A2D1C4EDFD500F0357B /* zmq_utils.h in Headers */,
53C76A2E1C4EDFD500F0357B /* zmq.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* 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" */;
buildPhases = (
53C2A3BC1C4DE652008600D1 /* Run Script */,
B00ED9DB1BD8A2CD00BBBBAE /* Sources */,
B00ED9DC1BD8A2CD00BBBBAE /* Frameworks */,
B00ED9DD1BD8A2CD00BBBBAE /* Headers */,
@ -181,7 +261,7 @@
isa = PBXProject;
attributes = {
LastSwiftUpdateCheck = 0700;
LastUpgradeCheck = 0700;
LastUpgradeCheck = 0720;
ORGANIZATIONNAME = Zewo;
TargetAttributes = {
B00ED9DF1BD8A2CD00BBBBAE = {
@ -206,11 +286,19 @@
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;
@ -227,7 +315,52 @@
};
/* 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";
};
53C2A3BC1C4DE652008600D1 /* 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\n";
};
/* 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;
@ -261,6 +394,75 @@
/* 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",
"$(PROJECT_DIR)/Dependencies/libzmq",
);
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "-L/usr/local/lib ";
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",
"$(PROJECT_DIR)/Dependencies/libzmq",
);
OTHER_CFLAGS = "";
OTHER_LDFLAGS = "-L/usr/local/lib ";
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 = {
@ -298,12 +500,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 = YES;
ONLY_ACTIVE_ARCH = YES;
OTHER_LDFLAGS = "-lzmq";
SDKROOT = macosx;
OTHER_LDFLAGS = "";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
@ -341,11 +542,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;
OTHER_LDFLAGS = "";
VERSIONING_SYSTEM = "apple-generic";
VERSION_INFO_PREFIX = "";
};
@ -354,6 +555,7 @@
B00ED9F51BD8A2CD00BBBBAE /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
COMBINE_HIDPI_IMAGES = YES;
DEFINES_MODULE = YES;
@ -368,14 +570,15 @@
"$(inherited)",
"$(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;
SKIP_INSTALL = YES;
SWIFT_INCLUDE_PATHS = "$(SRCROOT)/Dependencies";
SWIFT_OPTIMIZATION_LEVEL = "-Onone";
@ -385,6 +588,7 @@
B00ED9F61BD8A2CD00BBBBAE /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
COMBINE_HIDPI_IMAGES = YES;
DEFINES_MODULE = YES;
@ -399,14 +603,15 @@
"$(inherited)",
"$(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;
SKIP_INSTALL = YES;
SWIFT_INCLUDE_PATHS = "$(SRCROOT)/Dependencies";
};
@ -418,6 +623,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;
};
@ -429,6 +635,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;
};
@ -437,6 +644,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 = (

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0700"
LastUpgradeVersion = "0720"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View File

@ -0,0 +1,80 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "0720"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "539073F21C50484E00E8F9C6"
BuildableName = "SwiftZMQ_iOS.framework"
BlueprintName = "SwiftZMQ_iOS"
ReferencedContainer = "container:SwiftZMQ.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "539073F21C50484E00E8F9C6"
BuildableName = "SwiftZMQ_iOS.framework"
BlueprintName = "SwiftZMQ_iOS"
ReferencedContainer = "container:SwiftZMQ.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "539073F21C50484E00E8F9C6"
BuildableName = "SwiftZMQ_iOS.framework"
BlueprintName = "SwiftZMQ_iOS"
ReferencedContainer = "container:SwiftZMQ.xcodeproj">
</BuildableReference>
</MacroExpansion>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@ -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
}
}
@ -74,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
}
}
}