From a0b54e9d425aa77fb2cc07437bb2e6510b68e6d5 Mon Sep 17 00:00:00 2001 From: Diego Waxemberg Date: Sun, 31 Aug 2014 13:07:44 -0400 Subject: [PATCH] Created Xcode project for compiling universal static lib for iOS --- .gitignore | 1 + limelight-common.xcodeproj/project.pbxproj | 386 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/limelight-common.xccheckout | 41 ++ .../UserInterfaceState.xcuserstate | Bin 0 -> 13887 bytes .../xcschemes/limelight-common.xcscheme | 59 +++ .../xcschemes/xcschememanagement.plist | 22 + limelight-common/InputStream.c | 4 +- limelight-common/RtspConnection.c | 5 +- limelight-common/SdpGenerator.c | 1 + make_fat_lib.sh | 122 ++++++ 11 files changed, 644 insertions(+), 4 deletions(-) create mode 100644 limelight-common.xcodeproj/project.pbxproj create mode 100644 limelight-common.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 limelight-common.xcodeproj/project.xcworkspace/xcshareddata/limelight-common.xccheckout create mode 100644 limelight-common.xcodeproj/project.xcworkspace/xcuserdata/diegowaxemberg.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 limelight-common.xcodeproj/xcuserdata/diegowaxemberg.xcuserdatad/xcschemes/limelight-common.xcscheme create mode 100644 limelight-common.xcodeproj/xcuserdata/diegowaxemberg.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100755 make_fat_lib.sh diff --git a/.gitignore b/.gitignore index beccb97..a36762f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ limelight-common/ARM/ limelight-common/Debug/ +Build/ diff --git a/limelight-common.xcodeproj/project.pbxproj b/limelight-common.xcodeproj/project.pbxproj new file mode 100644 index 0000000..d4caafc --- /dev/null +++ b/limelight-common.xcodeproj/project.pbxproj @@ -0,0 +1,386 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + FB290E5A19B37A8B004C83CF /* AudioStream.c in Sources */ = {isa = PBXBuildFile; fileRef = FB290E3619B37A8B004C83CF /* AudioStream.c */; }; + FB290E5B19B37A8B004C83CF /* ByteBuffer.c in Sources */ = {isa = PBXBuildFile; fileRef = FB290E3719B37A8B004C83CF /* ByteBuffer.c */; }; + FB290E5C19B37A8B004C83CF /* ByteBuffer.h in Headers */ = {isa = PBXBuildFile; fileRef = FB290E3819B37A8B004C83CF /* ByteBuffer.h */; }; + FB290E5D19B37A8B004C83CF /* Connection.c in Sources */ = {isa = PBXBuildFile; fileRef = FB290E3919B37A8B004C83CF /* Connection.c */; }; + FB290E5E19B37A8B004C83CF /* ControlStream.c in Sources */ = {isa = PBXBuildFile; fileRef = FB290E3A19B37A8B004C83CF /* ControlStream.c */; }; + FB290E5F19B37A8B004C83CF /* Input.h in Headers */ = {isa = PBXBuildFile; fileRef = FB290E3B19B37A8B004C83CF /* Input.h */; }; + FB290E6019B37A8B004C83CF /* InputStream.c in Sources */ = {isa = PBXBuildFile; fileRef = FB290E3C19B37A8B004C83CF /* InputStream.c */; }; + FB290E6119B37A8B004C83CF /* Limelight-internal.h in Headers */ = {isa = PBXBuildFile; fileRef = FB290E3F19B37A8B004C83CF /* Limelight-internal.h */; }; + FB290E6219B37A8B004C83CF /* Limelight.h in Headers */ = {isa = PBXBuildFile; fileRef = FB290E4019B37A8B004C83CF /* Limelight.h */; settings = {ATTRIBUTES = (Public, ); }; }; + FB290E6319B37A8B004C83CF /* LinkedBlockingQueue.c in Sources */ = {isa = PBXBuildFile; fileRef = FB290E4119B37A8B004C83CF /* LinkedBlockingQueue.c */; }; + FB290E6419B37A8B004C83CF /* LinkedBlockingQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = FB290E4219B37A8B004C83CF /* LinkedBlockingQueue.h */; }; + FB290E6519B37A8B004C83CF /* oaes_base64.c in Sources */ = {isa = PBXBuildFile; fileRef = FB290E4519B37A8B004C83CF /* oaes_base64.c */; }; + FB290E6619B37A8B004C83CF /* oaes_base64.h in Headers */ = {isa = PBXBuildFile; fileRef = FB290E4619B37A8B004C83CF /* oaes_base64.h */; }; + FB290E6719B37A8B004C83CF /* oaes_common.h in Headers */ = {isa = PBXBuildFile; fileRef = FB290E4719B37A8B004C83CF /* oaes_common.h */; }; + FB290E6819B37A8B004C83CF /* oaes_config.h in Headers */ = {isa = PBXBuildFile; fileRef = FB290E4819B37A8B004C83CF /* oaes_config.h */; }; + FB290E6919B37A8B004C83CF /* oaes_lib.c in Sources */ = {isa = PBXBuildFile; fileRef = FB290E4919B37A8B004C83CF /* oaes_lib.c */; }; + FB290E6A19B37A8B004C83CF /* oaes_lib.h in Headers */ = {isa = PBXBuildFile; fileRef = FB290E4A19B37A8B004C83CF /* oaes_lib.h */; }; + FB290E6B19B37A8B004C83CF /* Platform.h in Headers */ = {isa = PBXBuildFile; fileRef = FB290E4D19B37A8B004C83CF /* Platform.h */; }; + FB290E6C19B37A8B004C83CF /* PlatformSockets.c in Sources */ = {isa = PBXBuildFile; fileRef = FB290E4E19B37A8B004C83CF /* PlatformSockets.c */; }; + FB290E6D19B37A8B004C83CF /* PlatformSockets.h in Headers */ = {isa = PBXBuildFile; fileRef = FB290E4F19B37A8B004C83CF /* PlatformSockets.h */; }; + FB290E6E19B37A8B004C83CF /* PlatformThreads.c in Sources */ = {isa = PBXBuildFile; fileRef = FB290E5019B37A8B004C83CF /* PlatformThreads.c */; }; + FB290E6F19B37A8B004C83CF /* PlatformThreads.h in Headers */ = {isa = PBXBuildFile; fileRef = FB290E5119B37A8B004C83CF /* PlatformThreads.h */; }; + FB290E7019B37A8B004C83CF /* Rtsp.h in Headers */ = {isa = PBXBuildFile; fileRef = FB290E5219B37A8B004C83CF /* Rtsp.h */; }; + FB290E7119B37A8B004C83CF /* RtspConnection.c in Sources */ = {isa = PBXBuildFile; fileRef = FB290E5319B37A8B004C83CF /* RtspConnection.c */; }; + FB290E7219B37A8B004C83CF /* RtspParser.c in Sources */ = {isa = PBXBuildFile; fileRef = FB290E5419B37A8B004C83CF /* RtspParser.c */; }; + FB290E7319B37A8B004C83CF /* SdpGenerator.c in Sources */ = {isa = PBXBuildFile; fileRef = FB290E5519B37A8B004C83CF /* SdpGenerator.c */; }; + FB290E7419B37A8B004C83CF /* Video.h in Headers */ = {isa = PBXBuildFile; fileRef = FB290E5619B37A8B004C83CF /* Video.h */; }; + FB290E7519B37A8B004C83CF /* VideoDepacketizer.c in Sources */ = {isa = PBXBuildFile; fileRef = FB290E5719B37A8B004C83CF /* VideoDepacketizer.c */; }; + FB290E7619B37A8B004C83CF /* VideoStream.c in Sources */ = {isa = PBXBuildFile; fileRef = FB290E5819B37A8B004C83CF /* VideoStream.c */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + FB290E2E19B37A4E004C83CF /* liblimelight-common.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "liblimelight-common.a"; sourceTree = BUILT_PRODUCTS_DIR; }; + FB290E3619B37A8B004C83CF /* AudioStream.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = AudioStream.c; sourceTree = ""; }; + FB290E3719B37A8B004C83CF /* ByteBuffer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ByteBuffer.c; sourceTree = ""; }; + FB290E3819B37A8B004C83CF /* ByteBuffer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ByteBuffer.h; sourceTree = ""; }; + FB290E3919B37A8B004C83CF /* Connection.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = Connection.c; sourceTree = ""; }; + FB290E3A19B37A8B004C83CF /* ControlStream.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = ControlStream.c; sourceTree = ""; }; + FB290E3B19B37A8B004C83CF /* Input.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Input.h; sourceTree = ""; }; + FB290E3C19B37A8B004C83CF /* InputStream.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = InputStream.c; sourceTree = ""; }; + FB290E3D19B37A8B004C83CF /* limelight-common.vcxproj */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = "limelight-common.vcxproj"; sourceTree = ""; }; + FB290E3E19B37A8B004C83CF /* limelight-common.vcxproj.filters */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = "limelight-common.vcxproj.filters"; sourceTree = ""; }; + FB290E3F19B37A8B004C83CF /* Limelight-internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "Limelight-internal.h"; sourceTree = ""; }; + FB290E4019B37A8B004C83CF /* Limelight.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Limelight.h; sourceTree = ""; }; + FB290E4119B37A8B004C83CF /* LinkedBlockingQueue.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = LinkedBlockingQueue.c; sourceTree = ""; }; + FB290E4219B37A8B004C83CF /* LinkedBlockingQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LinkedBlockingQueue.h; sourceTree = ""; }; + FB290E4419B37A8B004C83CF /* LICENSE */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE; sourceTree = ""; }; + FB290E4519B37A8B004C83CF /* oaes_base64.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = oaes_base64.c; sourceTree = ""; }; + FB290E4619B37A8B004C83CF /* oaes_base64.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = oaes_base64.h; sourceTree = ""; }; + FB290E4719B37A8B004C83CF /* oaes_common.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = oaes_common.h; sourceTree = ""; }; + FB290E4819B37A8B004C83CF /* oaes_config.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = oaes_config.h; sourceTree = ""; }; + FB290E4919B37A8B004C83CF /* oaes_lib.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = oaes_lib.c; sourceTree = ""; }; + FB290E4A19B37A8B004C83CF /* oaes_lib.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = oaes_lib.h; sourceTree = ""; }; + FB290E4B19B37A8B004C83CF /* README */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README; sourceTree = ""; }; + FB290E4C19B37A8B004C83CF /* VERSION */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = VERSION; sourceTree = ""; }; + FB290E4D19B37A8B004C83CF /* Platform.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Platform.h; sourceTree = ""; }; + FB290E4E19B37A8B004C83CF /* PlatformSockets.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = PlatformSockets.c; sourceTree = ""; }; + FB290E4F19B37A8B004C83CF /* PlatformSockets.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformSockets.h; sourceTree = ""; }; + FB290E5019B37A8B004C83CF /* PlatformThreads.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = PlatformThreads.c; sourceTree = ""; }; + FB290E5119B37A8B004C83CF /* PlatformThreads.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PlatformThreads.h; sourceTree = ""; }; + FB290E5219B37A8B004C83CF /* Rtsp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Rtsp.h; sourceTree = ""; }; + FB290E5319B37A8B004C83CF /* RtspConnection.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = RtspConnection.c; sourceTree = ""; }; + FB290E5419B37A8B004C83CF /* RtspParser.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = RtspParser.c; sourceTree = ""; }; + FB290E5519B37A8B004C83CF /* SdpGenerator.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = SdpGenerator.c; sourceTree = ""; }; + FB290E5619B37A8B004C83CF /* Video.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Video.h; sourceTree = ""; }; + FB290E5719B37A8B004C83CF /* VideoDepacketizer.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = VideoDepacketizer.c; sourceTree = ""; }; + FB290E5819B37A8B004C83CF /* VideoStream.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = VideoStream.c; sourceTree = ""; }; + FB290E5919B37A8B004C83CF /* make_fat_lib.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; path = make_fat_lib.sh; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + FB290E2B19B37A4E004C83CF /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + FB290E2519B37A4E004C83CF = { + isa = PBXGroup; + children = ( + FB290E3519B37A8B004C83CF /* limelight-common */, + FB290E5919B37A8B004C83CF /* make_fat_lib.sh */, + FB290E2F19B37A4E004C83CF /* Products */, + ); + sourceTree = ""; + }; + FB290E2F19B37A4E004C83CF /* Products */ = { + isa = PBXGroup; + children = ( + FB290E2E19B37A4E004C83CF /* liblimelight-common.a */, + ); + name = Products; + sourceTree = ""; + }; + FB290E3519B37A8B004C83CF /* limelight-common */ = { + isa = PBXGroup; + children = ( + FB290E3619B37A8B004C83CF /* AudioStream.c */, + FB290E3719B37A8B004C83CF /* ByteBuffer.c */, + FB290E3819B37A8B004C83CF /* ByteBuffer.h */, + FB290E3919B37A8B004C83CF /* Connection.c */, + FB290E3A19B37A8B004C83CF /* ControlStream.c */, + FB290E3B19B37A8B004C83CF /* Input.h */, + FB290E3C19B37A8B004C83CF /* InputStream.c */, + FB290E3D19B37A8B004C83CF /* limelight-common.vcxproj */, + FB290E3E19B37A8B004C83CF /* limelight-common.vcxproj.filters */, + FB290E3F19B37A8B004C83CF /* Limelight-internal.h */, + FB290E4019B37A8B004C83CF /* Limelight.h */, + FB290E4119B37A8B004C83CF /* LinkedBlockingQueue.c */, + FB290E4219B37A8B004C83CF /* LinkedBlockingQueue.h */, + FB290E4319B37A8B004C83CF /* OpenAES */, + FB290E4D19B37A8B004C83CF /* Platform.h */, + FB290E4E19B37A8B004C83CF /* PlatformSockets.c */, + FB290E4F19B37A8B004C83CF /* PlatformSockets.h */, + FB290E5019B37A8B004C83CF /* PlatformThreads.c */, + FB290E5119B37A8B004C83CF /* PlatformThreads.h */, + FB290E5219B37A8B004C83CF /* Rtsp.h */, + FB290E5319B37A8B004C83CF /* RtspConnection.c */, + FB290E5419B37A8B004C83CF /* RtspParser.c */, + FB290E5519B37A8B004C83CF /* SdpGenerator.c */, + FB290E5619B37A8B004C83CF /* Video.h */, + FB290E5719B37A8B004C83CF /* VideoDepacketizer.c */, + FB290E5819B37A8B004C83CF /* VideoStream.c */, + ); + path = "limelight-common"; + sourceTree = ""; + }; + FB290E4319B37A8B004C83CF /* OpenAES */ = { + isa = PBXGroup; + children = ( + FB290E4419B37A8B004C83CF /* LICENSE */, + FB290E4519B37A8B004C83CF /* oaes_base64.c */, + FB290E4619B37A8B004C83CF /* oaes_base64.h */, + FB290E4719B37A8B004C83CF /* oaes_common.h */, + FB290E4819B37A8B004C83CF /* oaes_config.h */, + FB290E4919B37A8B004C83CF /* oaes_lib.c */, + FB290E4A19B37A8B004C83CF /* oaes_lib.h */, + FB290E4B19B37A8B004C83CF /* README */, + FB290E4C19B37A8B004C83CF /* VERSION */, + ); + path = OpenAES; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + FB290E2C19B37A4E004C83CF /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + FB290E6219B37A8B004C83CF /* Limelight.h in Headers */, + FB290E7019B37A8B004C83CF /* Rtsp.h in Headers */, + FB290E6819B37A8B004C83CF /* oaes_config.h in Headers */, + FB290E6619B37A8B004C83CF /* oaes_base64.h in Headers */, + FB290E6F19B37A8B004C83CF /* PlatformThreads.h in Headers */, + FB290E5C19B37A8B004C83CF /* ByteBuffer.h in Headers */, + FB290E6719B37A8B004C83CF /* oaes_common.h in Headers */, + FB290E5F19B37A8B004C83CF /* Input.h in Headers */, + FB290E6A19B37A8B004C83CF /* oaes_lib.h in Headers */, + FB290E6119B37A8B004C83CF /* Limelight-internal.h in Headers */, + FB290E6419B37A8B004C83CF /* LinkedBlockingQueue.h in Headers */, + FB290E6B19B37A8B004C83CF /* Platform.h in Headers */, + FB290E7419B37A8B004C83CF /* Video.h in Headers */, + FB290E6D19B37A8B004C83CF /* PlatformSockets.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + FB290E2D19B37A4E004C83CF /* limelight-common */ = { + isa = PBXNativeTarget; + buildConfigurationList = FB290E3219B37A4E004C83CF /* Build configuration list for PBXNativeTarget "limelight-common" */; + buildPhases = ( + FB290E2A19B37A4E004C83CF /* Sources */, + FB290E2B19B37A4E004C83CF /* Frameworks */, + FB290E2C19B37A4E004C83CF /* Headers */, + FB290E7719B37ABD004C83CF /* ShellScript */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "limelight-common"; + productName = "limelight-common"; + productReference = FB290E2E19B37A4E004C83CF /* liblimelight-common.a */; + productType = "com.apple.product-type.library.static"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + FB290E2619B37A4E004C83CF /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0510; + ORGANIZATIONNAME = "Limelight Stream"; + }; + buildConfigurationList = FB290E2919B37A4E004C83CF /* Build configuration list for PBXProject "limelight-common" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = FB290E2519B37A4E004C83CF; + productRefGroup = FB290E2F19B37A4E004C83CF /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + FB290E2D19B37A4E004C83CF /* limelight-common */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXShellScriptBuildPhase section */ + FB290E7719B37ABD004C83CF /* ShellScript */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "##########################################\n#\n# c.f. http://stackoverflow.com/questions/3520977/build-fat-static-library-device-simulator-using-xcode-and-sdk-4\n#\n# Version 2.7\n#\n# Latest Change:\n# - Supports iPhone 5 / iPod Touch 5 (uses Apple's workaround to lipo bug)\n#\n# Purpose:\n# Automatically create a Universal static library for iPhone + iPad + iPhone Simulator from within XCode\n#\n# Author: Adam Martin - http://twitter.com/t_machine_org\n# Based on: original script from Eonil (main changes: Eonil's script WILL NOT WORK in Xcode GUI - it WILL CRASH YOUR COMPUTER)\n#\n\nset -e\nset -o pipefail\n\n#################[ Tests: helps workaround any future bugs in Xcode ]########\n#\nDEBUG_THIS_SCRIPT=\"false\"\n\nif [ $DEBUG_THIS_SCRIPT = \"true\" ]\nthen\necho \"########### TESTS #############\"\necho \"Use the following variables when debugging this script; note that they may change on recursions\"\necho \"BUILD_DIR = $BUILD_DIR\"\necho \"BUILD_ROOT = $BUILD_ROOT\"\necho \"CONFIGURATION_BUILD_DIR = $CONFIGURATION_BUILD_DIR\"\necho \"BUILT_PRODUCTS_DIR = $BUILT_PRODUCTS_DIR\"\necho \"CONFIGURATION_TEMP_DIR = $CONFIGURATION_TEMP_DIR\"\necho \"TARGET_BUILD_DIR = $TARGET_BUILD_DIR\"\nfi\n\n#####################[ part 1 ]##################\n# First, work out the BASESDK version number (NB: Apple ought to report this, but they hide it)\n# (incidental: searching for substrings in sh is a nightmare! Sob)\n\nSDK_VERSION=$(echo ${SDK_NAME} | grep -o '.\\{3\\}$')\n\n# Next, work out if we're in SIM or DEVICE\n\nif [ ${PLATFORM_NAME} = \"iphonesimulator\" ]\nthen\nOTHER_SDK_TO_BUILD=iphoneos${SDK_VERSION}\nelse\nOTHER_SDK_TO_BUILD=iphonesimulator${SDK_VERSION}\nfi\n\necho \"XCode has selected SDK: ${PLATFORM_NAME} with version: ${SDK_VERSION} (although back-targetting: ${IPHONEOS_DEPLOYMENT_TARGET})\"\necho \"...therefore, OTHER_SDK_TO_BUILD = ${OTHER_SDK_TO_BUILD}\"\n#\n#####################[ end of part 1 ]##################\n\n#####################[ part 2 ]##################\n#\n# IF this is the original invocation, invoke WHATEVER other builds are required\n#\n# Xcode is already building ONE target...\n#\n# ...but this is a LIBRARY, so Apple is wrong to set it to build just one.\n# ...we need to build ALL targets\n# ...we MUST NOT re-build the target that is ALREADY being built: Xcode WILL CRASH YOUR COMPUTER if you try this (infinite recursion!)\n#\n#\n# So: build ONLY the missing platforms/configurations.\n\nif [ \"true\" == ${ALREADYINVOKED:-false} ]\nthen\necho \"RECURSION: I am NOT the root invocation, so I'm NOT going to recurse\"\nelse\n# CRITICAL:\n# Prevent infinite recursion (Xcode sucks)\nexport ALREADYINVOKED=\"true\"\n\necho \"RECURSION: I am the root ... recursing all missing build targets NOW...\"\necho \"RECURSION: ...about to invoke: xcodebuild -configuration \\\"${CONFIGURATION}\\\" -project \\\"${PROJECT_NAME}.xcodeproj\\\" -target \\\"${TARGET_NAME}\\\" -sdk \\\"${OTHER_SDK_TO_BUILD}\\\" ${ACTION} RUN_CLANG_STATIC_ANALYZER=NO\" BUILD_DIR=\\\"${BUILD_DIR}\\\" BUILD_ROOT=\\\"${BUILD_ROOT}\\\" SYMROOT=\\\"${SYMROOT}\\\"\n\nxcodebuild -configuration \"${CONFIGURATION}\" -project \"${PROJECT_NAME}.xcodeproj\" -target \"${TARGET_NAME}\" -sdk \"${OTHER_SDK_TO_BUILD}\" ${ACTION} RUN_CLANG_STATIC_ANALYZER=NO BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" SYMROOT=\"${SYMROOT}\"\n\nACTION=\"build\"\n\n#Merge all platform binaries as a fat binary for each configurations.\n\n# Calculate where the (multiple) built files are coming from:\nCURRENTCONFIG_DEVICE_DIR=${SYMROOT}/${CONFIGURATION}-iphoneos\nCURRENTCONFIG_SIMULATOR_DIR=${SYMROOT}/${CONFIGURATION}-iphonesimulator\n\necho \"Taking device build from: ${CURRENTCONFIG_DEVICE_DIR}\"\necho \"Taking simulator build from: ${CURRENTCONFIG_SIMULATOR_DIR}\"\n\nCREATING_UNIVERSAL_DIR=${SYMROOT}/${CONFIGURATION}-universal\necho \"...I will output a universal build to: ${CREATING_UNIVERSAL_DIR}\"\n\n# ... remove the products of previous runs of this script\n# NB: this directory is ONLY created by this script - it should be safe to delete!\n\nrm -rf \"${CREATING_UNIVERSAL_DIR}\"\nmkdir \"${CREATING_UNIVERSAL_DIR}\"\n\n#\necho \"lipo: for current configuration (${CONFIGURATION}) creating output file: ${CREATING_UNIVERSAL_DIR}/${EXECUTABLE_NAME}\"\nxcrun -sdk iphoneos lipo -create -output \"${CREATING_UNIVERSAL_DIR}/${EXECUTABLE_NAME}\" \"${CURRENTCONFIG_DEVICE_DIR}/${EXECUTABLE_NAME}\" \"${CURRENTCONFIG_SIMULATOR_DIR}/${EXECUTABLE_NAME}\"\n\n#########\n#\n# Added: StackOverflow suggestion to also copy \"include\" files\n# (untested, but should work OK)\n#\necho \"Fetching headers from ${PUBLIC_HEADERS_FOLDER_PATH}\"\necho \" (if you embed your library project in another project, you will need to add\"\necho \" a \"User Search Headers\" build setting of: (NB INCLUDE THE DOUBLE QUOTES BELOW!)\"\necho ' \"$(TARGET_BUILD_DIR)/usr/local/include/\"'\nif [ -d \"${CURRENTCONFIG_DEVICE_DIR}${PUBLIC_HEADERS_FOLDER_PATH}\" ]\nthen\nmkdir -p \"${CREATING_UNIVERSAL_DIR}${PUBLIC_HEADERS_FOLDER_PATH}\"\n# * needs to be outside the double quotes?\ncp -r \"${CURRENTCONFIG_DEVICE_DIR}${PUBLIC_HEADERS_FOLDER_PATH}\"* \"${CREATING_UNIVERSAL_DIR}${PUBLIC_HEADERS_FOLDER_PATH}\"\nfi\nfi"; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + FB290E2A19B37A4E004C83CF /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + FB290E6E19B37A8B004C83CF /* PlatformThreads.c in Sources */, + FB290E5D19B37A8B004C83CF /* Connection.c in Sources */, + FB290E6919B37A8B004C83CF /* oaes_lib.c in Sources */, + FB290E7219B37A8B004C83CF /* RtspParser.c in Sources */, + FB290E6C19B37A8B004C83CF /* PlatformSockets.c in Sources */, + FB290E6519B37A8B004C83CF /* oaes_base64.c in Sources */, + FB290E6319B37A8B004C83CF /* LinkedBlockingQueue.c in Sources */, + FB290E7619B37A8B004C83CF /* VideoStream.c in Sources */, + FB290E5E19B37A8B004C83CF /* ControlStream.c in Sources */, + FB290E7519B37A8B004C83CF /* VideoDepacketizer.c in Sources */, + FB290E7119B37A8B004C83CF /* RtspConnection.c in Sources */, + FB290E7319B37A8B004C83CF /* SdpGenerator.c in Sources */, + FB290E6019B37A8B004C83CF /* InputStream.c in Sources */, + FB290E5A19B37A8B004C83CF /* AudioStream.c in Sources */, + FB290E5B19B37A8B004C83CF /* ByteBuffer.c in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + FB290E3019B37A4E004C83CF /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.10; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + FB290E3119B37A4E004C83CF /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = YES; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_ENABLE_OBJC_EXCEPTIONS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.10; + SDKROOT = macosx; + }; + name = Release; + }; + FB290E3319B37A4E004C83CF /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + EXECUTABLE_PREFIX = lib; + ONLY_ACTIVE_ARCH = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + }; + name = Debug; + }; + FB290E3419B37A4E004C83CF /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + EXECUTABLE_PREFIX = lib; + ONLY_ACTIVE_ARCH = NO; + PRODUCT_NAME = "$(TARGET_NAME)"; + SDKROOT = iphoneos; + SUPPORTED_PLATFORMS = "iphonesimulator iphoneos"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + FB290E2919B37A4E004C83CF /* Build configuration list for PBXProject "limelight-common" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FB290E3019B37A4E004C83CF /* Debug */, + FB290E3119B37A4E004C83CF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + FB290E3219B37A4E004C83CF /* Build configuration list for PBXNativeTarget "limelight-common" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + FB290E3319B37A4E004C83CF /* Debug */, + FB290E3419B37A4E004C83CF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = FB290E2619B37A4E004C83CF /* Project object */; +} diff --git a/limelight-common.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/limelight-common.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..4d53b1b --- /dev/null +++ b/limelight-common.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/limelight-common.xcodeproj/project.xcworkspace/xcshareddata/limelight-common.xccheckout b/limelight-common.xcodeproj/project.xcworkspace/xcshareddata/limelight-common.xccheckout new file mode 100644 index 0000000..f13cb96 --- /dev/null +++ b/limelight-common.xcodeproj/project.xcworkspace/xcshareddata/limelight-common.xccheckout @@ -0,0 +1,41 @@ + + + + + IDESourceControlProjectFavoriteDictionaryKey + + IDESourceControlProjectIdentifier + 662F3EBE-A540-4F33-A434-3BBB22ECCB12 + IDESourceControlProjectName + limelight-common + IDESourceControlProjectOriginsDictionary + + 151E8452-E928-4FE9-BF31-5F5C490B9DD4 + ssh://github.com/limelight-stream/limelight-common-c.git + + IDESourceControlProjectPath + limelight-common.xcodeproj/project.xcworkspace + IDESourceControlProjectRelativeInstallPathDictionary + + 151E8452-E928-4FE9-BF31-5F5C490B9DD4 + ../.. + + IDESourceControlProjectURL + ssh://github.com/limelight-stream/limelight-common-c.git + IDESourceControlProjectVersion + 110 + IDESourceControlProjectWCCIdentifier + 151E8452-E928-4FE9-BF31-5F5C490B9DD4 + IDESourceControlProjectWCConfigurations + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.git + IDESourceControlWCCIdentifierKey + 151E8452-E928-4FE9-BF31-5F5C490B9DD4 + IDESourceControlWCCName + limelight-common-c + + + + diff --git a/limelight-common.xcodeproj/project.xcworkspace/xcuserdata/diegowaxemberg.xcuserdatad/UserInterfaceState.xcuserstate b/limelight-common.xcodeproj/project.xcworkspace/xcuserdata/diegowaxemberg.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..c7029e2a768a1ab45ae8fb644162e52039d6f983 GIT binary patch literal 13887 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 z + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/limelight-common.xcodeproj/xcuserdata/diegowaxemberg.xcuserdatad/xcschemes/xcschememanagement.plist b/limelight-common.xcodeproj/xcuserdata/diegowaxemberg.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..db7d387 --- /dev/null +++ b/limelight-common.xcodeproj/xcuserdata/diegowaxemberg.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + limelight-common.xcscheme + + orderHint + 1 + + + SuppressBuildableAutocreation + + FB290E2D19B37A4E004C83CF + + primary + + + + + diff --git a/limelight-common/InputStream.c b/limelight-common/InputStream.c index 99ea77f..59eec05 100644 --- a/limelight-common/InputStream.c +++ b/limelight-common/InputStream.c @@ -4,8 +4,8 @@ #include "LinkedBlockingQueue.h" #include "Input.h" -#include "OpenAES\oaes_lib.h" -#include "OpenAES\oaes_common.h" +#include "OpenAES/oaes_lib.h" +#include "OpenAES/oaes_common.h" static IP_ADDRESS host; static SOCKET inputSock = INVALID_SOCKET; diff --git a/limelight-common/RtspConnection.c b/limelight-common/RtspConnection.c index 2227750..17e6138 100644 --- a/limelight-common/RtspConnection.c +++ b/limelight-common/RtspConnection.c @@ -1,5 +1,6 @@ #include "Limelight-internal.h" #include "Rtsp.h" +#include #define RTSP_MAX_RESP_SIZE 16384 @@ -250,7 +251,7 @@ static int sendVideoAnnounce(PRTSP_MESSAGE response, PSTREAM_CONFIGURATION strea goto FreeMessage; } - sdpAddr.S_un.S_addr = remoteAddr; + memcpy(&sdpAddr, &remoteAddr, sizeof(remoteAddr)); request.payload = getSdpPayloadForStreamConfig(streamConfig, sdpAddr, &payloadLength); if (request.payload == NULL) { goto FreeMessage; @@ -278,7 +279,7 @@ int performRtspHandshake(IP_ADDRESS addr, PSTREAM_CONFIGURATION streamConfigPtr) // Initialize global state remoteAddr = addr; - inaddr.S_un.S_addr = addr; + memcpy(&inaddr, &addr, sizeof(addr)); sprintf(rtspTargetUrl, "rtsp://%s", inet_ntoa(inaddr)); { diff --git a/limelight-common/SdpGenerator.c b/limelight-common/SdpGenerator.c index af93517..854390f 100644 --- a/limelight-common/SdpGenerator.c +++ b/limelight-common/SdpGenerator.c @@ -1,4 +1,5 @@ #include "Limelight-internal.h" +#include #define MAX_OPTION_NAME_LEN 128 diff --git a/make_fat_lib.sh b/make_fat_lib.sh new file mode 100755 index 0000000..b5b7ec8 --- /dev/null +++ b/make_fat_lib.sh @@ -0,0 +1,122 @@ +########################################## +# +# c.f. http://stackoverflow.com/questions/3520977/build-fat-static-library-device-simulator-using-xcode-and-sdk-4 +# +# Version 2.7 +# +# Latest Change: +# - Supports iPhone 5 / iPod Touch 5 (uses Apple's workaround to lipo bug) +# +# Purpose: +# Automatically create a Universal static library for iPhone + iPad + iPhone Simulator from within XCode +# +# Author: Adam Martin - http://twitter.com/t_machine_org +# Based on: original script from Eonil (main changes: Eonil's script WILL NOT WORK in Xcode GUI - it WILL CRASH YOUR COMPUTER) +# + +set -e +set -o pipefail + +#################[ Tests: helps workaround any future bugs in Xcode ]######## +# +DEBUG_THIS_SCRIPT="false" + +if [ $DEBUG_THIS_SCRIPT = "true" ] +then +echo "########### TESTS #############" +echo "Use the following variables when debugging this script; note that they may change on recursions" +echo "BUILD_DIR = $BUILD_DIR" +echo "BUILD_ROOT = $BUILD_ROOT" +echo "CONFIGURATION_BUILD_DIR = $CONFIGURATION_BUILD_DIR" +echo "BUILT_PRODUCTS_DIR = $BUILT_PRODUCTS_DIR" +echo "CONFIGURATION_TEMP_DIR = $CONFIGURATION_TEMP_DIR" +echo "TARGET_BUILD_DIR = $TARGET_BUILD_DIR" +fi + +#####################[ part 1 ]################## +# First, work out the BASESDK version number (NB: Apple ought to report this, but they hide it) +# (incidental: searching for substrings in sh is a nightmare! Sob) + +SDK_VERSION=$(echo ${SDK_NAME} | grep -o '.\{3\}$') + +# Next, work out if we're in SIM or DEVICE + +if [ ${PLATFORM_NAME} = "iphonesimulator" ] +then +OTHER_SDK_TO_BUILD=iphoneos${SDK_VERSION} +else +OTHER_SDK_TO_BUILD=iphonesimulator${SDK_VERSION} +fi + +echo "XCode has selected SDK: ${PLATFORM_NAME} with version: ${SDK_VERSION} (although back-targetting: ${IPHONEOS_DEPLOYMENT_TARGET})" +echo "...therefore, OTHER_SDK_TO_BUILD = ${OTHER_SDK_TO_BUILD}" +# +#####################[ end of part 1 ]################## + +#####################[ part 2 ]################## +# +# IF this is the original invocation, invoke WHATEVER other builds are required +# +# Xcode is already building ONE target... +# +# ...but this is a LIBRARY, so Apple is wrong to set it to build just one. +# ...we need to build ALL targets +# ...we MUST NOT re-build the target that is ALREADY being built: Xcode WILL CRASH YOUR COMPUTER if you try this (infinite recursion!) +# +# +# So: build ONLY the missing platforms/configurations. + +if [ "true" == ${ALREADYINVOKED:-false} ] +then +echo "RECURSION: I am NOT the root invocation, so I'm NOT going to recurse" +else +# CRITICAL: +# Prevent infinite recursion (Xcode sucks) +export ALREADYINVOKED="true" + +echo "RECURSION: I am the root ... recursing all missing build targets NOW..." +echo "RECURSION: ...about to invoke: xcodebuild -configuration \"${CONFIGURATION}\" -project \"${PROJECT_NAME}.xcodeproj\" -target \"${TARGET_NAME}\" -sdk \"${OTHER_SDK_TO_BUILD}\" ${ACTION} RUN_CLANG_STATIC_ANALYZER=NO" BUILD_DIR=\"${BUILD_DIR}\" BUILD_ROOT=\"${BUILD_ROOT}\" SYMROOT=\"${SYMROOT}\" + +xcodebuild -configuration "${CONFIGURATION}" -project "${PROJECT_NAME}.xcodeproj" -target "${TARGET_NAME}" -sdk "${OTHER_SDK_TO_BUILD}" ${ACTION} RUN_CLANG_STATIC_ANALYZER=NO BUILD_DIR="${BUILD_DIR}" BUILD_ROOT="${BUILD_ROOT}" SYMROOT="${SYMROOT}" + +ACTION="build" + +#Merge all platform binaries as a fat binary for each configurations. + +# Calculate where the (multiple) built files are coming from: +CURRENTCONFIG_DEVICE_DIR=${SYMROOT}/${CONFIGURATION}-iphoneos +CURRENTCONFIG_SIMULATOR_DIR=${SYMROOT}/${CONFIGURATION}-iphonesimulator + +echo "Taking device build from: ${CURRENTCONFIG_DEVICE_DIR}" +echo "Taking simulator build from: ${CURRENTCONFIG_SIMULATOR_DIR}" + +CREATING_UNIVERSAL_DIR=${SYMROOT}/${CONFIGURATION}-universal +echo "...I will output a universal build to: ${CREATING_UNIVERSAL_DIR}" + +# ... remove the products of previous runs of this script +# NB: this directory is ONLY created by this script - it should be safe to delete! + +rm -rf "${CREATING_UNIVERSAL_DIR}" +mkdir "${CREATING_UNIVERSAL_DIR}" + +# +echo "lipo: for current configuration (${CONFIGURATION}) creating output file: ${CREATING_UNIVERSAL_DIR}/${EXECUTABLE_NAME}" +xcrun -sdk iphoneos lipo -create -output "${CREATING_UNIVERSAL_DIR}/${EXECUTABLE_NAME}" "${CURRENTCONFIG_DEVICE_DIR}/${EXECUTABLE_NAME}" "${CURRENTCONFIG_SIMULATOR_DIR}/${EXECUTABLE_NAME}" + +######### +# +# Added: StackOverflow suggestion to also copy "include" files +# (untested, but should work OK) +# +echo "Fetching headers from ${PUBLIC_HEADERS_FOLDER_PATH}" +echo " (if you embed your library project in another project, you will need to add" +echo " a "User Search Headers" build setting of: (NB INCLUDE THE DOUBLE QUOTES BELOW!)" +echo ' "$(TARGET_BUILD_DIR)/usr/local/include/"' +if [ -d "${CURRENTCONFIG_DEVICE_DIR}${PUBLIC_HEADERS_FOLDER_PATH}" ] +then +mkdir -p "${CREATING_UNIVERSAL_DIR}${PUBLIC_HEADERS_FOLDER_PATH}" +# * needs to be outside the double quotes? +cp -r "${CURRENTCONFIG_DEVICE_DIR}${PUBLIC_HEADERS_FOLDER_PATH}"* "${CREATING_UNIVERSAL_DIR}${PUBLIC_HEADERS_FOLDER_PATH}" +fi +fi +open "${CREATING_UNIVERSAL_DIR}" \ No newline at end of file