Browse Source

MVK: completely re-write the way we create static libraries

This removes the aggregation target from the xcodeproj, always compiles both for simulator and device and will solve linking issues in client apps

further, this prepares compiling MVK as a dynamic library
Felix Paul Kühne 10 years ago
parent
commit
018fb2596f

+ 33 - 122
MobileVLCKit.xcodeproj/project.pbxproj

@@ -6,20 +6,6 @@
 	objectVersion = 46;
 	objectVersion = 46;
 	objects = {
 	objects = {
 
 
-/* Begin PBXAggregateTarget section */
-		7A5ECAF911DE917B00F66AF3 /* Aggregate static plugins */ = {
-			isa = PBXAggregateTarget;
-			buildConfigurationList = 7A5ECB1011DE919F00F66AF3 /* Build configuration list for PBXAggregateTarget "Aggregate static plugins" */;
-			buildPhases = (
-				7A5ECAF811DE917B00F66AF3 /* Aggregate static plugins script */,
-			);
-			dependencies = (
-			);
-			name = "Aggregate static plugins";
-			productName = "Aggregate static plugins";
-		};
-/* End PBXAggregateTarget section */
-
 /* Begin PBXBuildFile section */
 /* Begin PBXBuildFile section */
 		6360B0E211E7F0C000EAD790 /* VLCMediaDiscoverer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6360B0E111E7F0C000EAD790 /* VLCMediaDiscoverer.m */; };
 		6360B0E211E7F0C000EAD790 /* VLCMediaDiscoverer.m in Sources */ = {isa = PBXBuildFile; fileRef = 6360B0E111E7F0C000EAD790 /* VLCMediaDiscoverer.m */; };
 		6360B10611E7F27300EAD790 /* VLCMediaDiscoverer.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 6360B0E311E7F0D300EAD790 /* VLCMediaDiscoverer.h */; };
 		6360B10611E7F27300EAD790 /* VLCMediaDiscoverer.h in Copy Headers */ = {isa = PBXBuildFile; fileRef = 6360B0E311E7F0D300EAD790 /* VLCMediaDiscoverer.h */; };
@@ -44,16 +30,6 @@
 		AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; };
 		AACBBE4A0F95108600F1A2B1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AACBBE490F95108600F1A2B1 /* Foundation.framework */; };
 /* End PBXBuildFile section */
 /* End PBXBuildFile section */
 
 
-/* Begin PBXContainerItemProxy section */
-		CCD5C82E15947E6B00AED565 /* PBXContainerItemProxy */ = {
-			isa = PBXContainerItemProxy;
-			containerPortal = 0867D690FE84028FC02AAC07 /* Project object */;
-			proxyType = 1;
-			remoteGlobalIDString = 7A5ECAF911DE917B00F66AF3;
-			remoteInfo = "Aggregate static plugins";
-		};
-/* End PBXContainerItemProxy section */
-
 /* Begin PBXCopyFilesBuildPhase section */
 /* Begin PBXCopyFilesBuildPhase section */
 		7A5ECB6211DE961B00F66AF3 /* Copy Headers */ = {
 		7A5ECB6211DE961B00F66AF3 /* Copy Headers */ = {
 			isa = PBXCopyFilesBuildPhase;
 			isa = PBXCopyFilesBuildPhase;
@@ -97,12 +73,11 @@
 		7A5ECAD911DE8FAB00F66AF3 /* VLCAudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCAudio.h; path = Headers/Public/VLCAudio.h; sourceTree = "<group>"; };
 		7A5ECAD911DE8FAB00F66AF3 /* VLCAudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCAudio.h; path = Headers/Public/VLCAudio.h; sourceTree = "<group>"; };
 		7A5ECAE411DE8FEF00F66AF3 /* VLCLibVLCBridging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCLibVLCBridging.h; path = Headers/Internal/VLCLibVLCBridging.h; sourceTree = "<group>"; };
 		7A5ECAE411DE8FEF00F66AF3 /* VLCLibVLCBridging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCLibVLCBridging.h; path = Headers/Internal/VLCLibVLCBridging.h; sourceTree = "<group>"; };
 		7A5ECAE511DE8FEF00F66AF3 /* VLCEventManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCEventManager.h; path = Headers/Internal/VLCEventManager.h; sourceTree = "<group>"; };
 		7A5ECAE511DE8FEF00F66AF3 /* VLCEventManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCEventManager.h; path = Headers/Internal/VLCEventManager.h; sourceTree = "<group>"; };
-		7A5ECB3311DE948C00F66AF3 /* MobileVLCKit.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = MobileVLCKit.xcconfig; path = MobileVLCKit/MobileVLCKit.xcconfig; sourceTree = "<group>"; };
 		7A5ECB3411DE94D600F66AF3 /* vlc-plugins.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "vlc-plugins.h"; path = "MobileVLCKit/vlc-plugins.h"; sourceTree = "<group>"; };
 		7A5ECB3411DE94D600F66AF3 /* vlc-plugins.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "vlc-plugins.h"; path = "MobileVLCKit/vlc-plugins.h"; sourceTree = "<group>"; };
 		7A5ECB9D11DE975700F66AF3 /* MobileVLCKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MobileVLCKit.h; path = Headers/Public/MobileVLCKit.h; sourceTree = "<group>"; };
 		7A5ECB9D11DE975700F66AF3 /* MobileVLCKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MobileVLCKit.h; path = Headers/Public/MobileVLCKit.h; sourceTree = "<group>"; };
-		7A5ECBAC11DE987400F66AF3 /* AggregateStaticPlugins.sh */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.script.sh; name = AggregateStaticPlugins.sh; path = MobileVLCKit/AggregateStaticPlugins.sh; sourceTree = "<group>"; };
 		7D5F8009185B72EB00C2CD75 /* VLCMediaListPlayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCMediaListPlayer.m; path = Sources/VLCMediaListPlayer.m; sourceTree = "<group>"; };
 		7D5F8009185B72EB00C2CD75 /* VLCMediaListPlayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = VLCMediaListPlayer.m; path = Sources/VLCMediaListPlayer.m; sourceTree = "<group>"; };
 		7D5F800B185B730F00C2CD75 /* VLCMediaListPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCMediaListPlayer.h; path = Headers/Public/VLCMediaListPlayer.h; sourceTree = "<group>"; };
 		7D5F800B185B730F00C2CD75 /* VLCMediaListPlayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCMediaListPlayer.h; path = Headers/Public/VLCMediaListPlayer.h; sourceTree = "<group>"; };
+		7D8938951B500042008F2B14 /* vlc-plugins.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; name = "vlc-plugins.xcconfig"; path = "MobileVLCKit/vlc-plugins.xcconfig"; sourceTree = "<group>"; };
 		AA747D9E0F9514B9006C5449 /* MobileVLCKit_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MobileVLCKit_Prefix.pch; sourceTree = SOURCE_ROOT; };
 		AA747D9E0F9514B9006C5449 /* MobileVLCKit_Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MobileVLCKit_Prefix.pch; sourceTree = SOURCE_ROOT; };
 		AACBBE490F95108600F1A2B1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
 		AACBBE490F95108600F1A2B1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
 		D2AAC07E0554694100DB518D /* libMobileVLCKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMobileVLCKit.a; sourceTree = BUILT_PRODUCTS_DIR; };
 		D2AAC07E0554694100DB518D /* libMobileVLCKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libMobileVLCKit.a; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -168,8 +143,7 @@
 		32C88DFF0371C24200C91783 /* Other Sources */ = {
 		32C88DFF0371C24200C91783 /* Other Sources */ = {
 			isa = PBXGroup;
 			isa = PBXGroup;
 			children = (
 			children = (
-				7A5ECBAC11DE987400F66AF3 /* AggregateStaticPlugins.sh */,
-				7A5ECB3311DE948C00F66AF3 /* MobileVLCKit.xcconfig */,
+				7D8938951B500042008F2B14 /* vlc-plugins.xcconfig */,
 				AA747D9E0F9514B9006C5449 /* MobileVLCKit_Prefix.pch */,
 				AA747D9E0F9514B9006C5449 /* MobileVLCKit_Prefix.pch */,
 			);
 			);
 			name = "Other Sources";
 			name = "Other Sources";
@@ -217,7 +191,6 @@
 			buildRules = (
 			buildRules = (
 			);
 			);
 			dependencies = (
 			dependencies = (
-				CCD5C82F15947E6B00AED565 /* PBXTargetDependency */,
 			);
 			);
 			name = MobileVLCKit;
 			name = MobileVLCKit;
 			productName = MobileVLCKit;
 			productName = MobileVLCKit;
@@ -245,28 +218,10 @@
 			projectRoot = "";
 			projectRoot = "";
 			targets = (
 			targets = (
 				D2AAC07D0554694100DB518D /* MobileVLCKit */,
 				D2AAC07D0554694100DB518D /* MobileVLCKit */,
-				7A5ECAF911DE917B00F66AF3 /* Aggregate static plugins */,
 			);
 			);
 		};
 		};
 /* End PBXProject section */
 /* End PBXProject section */
 
 
-/* Begin PBXShellScriptBuildPhase section */
-		7A5ECAF811DE917B00F66AF3 /* Aggregate static plugins script */ = {
-			isa = PBXShellScriptBuildPhase;
-			buildActionMask = 2147483647;
-			files = (
-			);
-			inputPaths = (
-			);
-			name = "Aggregate static plugins script";
-			outputPaths = (
-			);
-			runOnlyForDeploymentPostprocessing = 0;
-			shellPath = /bin/sh;
-			shellScript = "/bin/sh ${SRCROOT}/MobileVLCKit/AggregateStaticPlugins.sh\nexit 0\n";
-		};
-/* End PBXShellScriptBuildPhase section */
-
 /* Begin PBXSourcesBuildPhase section */
 /* Begin PBXSourcesBuildPhase section */
 		D2AAC07B0554694100DB518D /* Sources */ = {
 		D2AAC07B0554694100DB518D /* Sources */ = {
 			isa = PBXSourcesBuildPhase;
 			isa = PBXSourcesBuildPhase;
@@ -287,45 +242,10 @@
 		};
 		};
 /* End PBXSourcesBuildPhase section */
 /* End PBXSourcesBuildPhase section */
 
 
-/* Begin PBXTargetDependency section */
-		CCD5C82F15947E6B00AED565 /* PBXTargetDependency */ = {
-			isa = PBXTargetDependency;
-			target = 7A5ECAF911DE917B00F66AF3 /* Aggregate static plugins */;
-			targetProxy = CCD5C82E15947E6B00AED565 /* PBXContainerItemProxy */;
-		};
-/* End PBXTargetDependency section */
-
 /* Begin XCBuildConfiguration section */
 /* Begin XCBuildConfiguration section */
-		1DEB921F08733DC00010E9CD /* Debug */ = {
-			isa = XCBuildConfiguration;
-			baseConfigurationReference = 7A5ECB3311DE948C00F66AF3 /* MobileVLCKit.xcconfig */;
-			buildSettings = {
-				ALWAYS_SEARCH_USER_PATHS = NO;
-				ARCHS = (
-					"$(ARCHS_STANDARD_INCLUDING_64_BIT)",
-					armv7s,
-				);
-				CLANG_CXX_LIBRARY = "libc++";
-				CLANG_ENABLE_OBJC_ARC = YES;
-				COPY_PHASE_STRIP = NO;
-				DSTROOT = /tmp/MobileVLCKit.dst;
-				GCC_C_LANGUAGE_STANDARD = gnu11;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				GCC_PRECOMPILE_PREFIX_HEADER = YES;
-				GCC_PREFIX_HEADER = MobileVLCKit_Prefix.pch;
-				GCC_SYMBOLS_PRIVATE_EXTERN = YES;
-				HEADER_SEARCH_PATHS = "$(SRCROOT)/MobileVLCKit/ImportedSources/vlc/include";
-				INSTALL_PATH = /usr/local/lib;
-				IPHONEOS_DEPLOYMENT_TARGET = 5.1.1;
-				PRODUCT_NAME = MobileVLCKit;
-				VLC_SRC_DIR = "$(PROJECT_DIR)/MobileVLCKit/ImportedSources/vlc";
-			};
-			name = Debug;
-		};
 		1DEB922008733DC00010E9CD /* Release */ = {
 		1DEB922008733DC00010E9CD /* Release */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 7A5ECB3311DE948C00F66AF3 /* MobileVLCKit.xcconfig */;
+			baseConfigurationReference = 7D8938951B500042008F2B14 /* vlc-plugins.xcconfig */;
 			buildSettings = {
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ARCHS = (
 				ARCHS = (
@@ -342,64 +262,64 @@
 				GCC_SYMBOLS_PRIVATE_EXTERN = YES;
 				GCC_SYMBOLS_PRIVATE_EXTERN = YES;
 				HEADER_SEARCH_PATHS = "$(SRCROOT)/MobileVLCKit/ImportedSources/vlc/include";
 				HEADER_SEARCH_PATHS = "$(SRCROOT)/MobileVLCKit/ImportedSources/vlc/include";
 				INSTALL_PATH = /usr/local/lib;
 				INSTALL_PATH = /usr/local/lib;
-				IPHONEOS_DEPLOYMENT_TARGET = 5.1.1;
+				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
+				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/MobileVLCKit/ImportedSources/vlc/install-ios/core/libcompat.a $(PROJECT_DIR)/MobileVLCKit/ImportedSources/vlc/install-ios/core/libvlc.a $(PROJECT_DIR)/MobileVLCKit/ImportedSources/vlc/install-ios/core/libvlccore.a $(VLC_PLUGINS_LDFLAGS) $(OTHER_CFLAGS)";
 				PRODUCT_NAME = MobileVLCKit;
 				PRODUCT_NAME = MobileVLCKit;
-				VLC_SRC_DIR = "$(PROJECT_DIR)/MobileVLCKit/ImportedSources/vlc";
 			};
 			};
 			name = Release;
 			name = Release;
 		};
 		};
-		1DEB922308733DC00010E9CD /* Debug */ = {
+		1DEB922408733DC00010E9CD /* Release */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
 				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
 				GCC_C_LANGUAGE_STANDARD = c99;
 				GCC_C_LANGUAGE_STANDARD = c99;
-				GCC_OPTIMIZATION_LEVEL = 0;
 				GCC_WARN_ABOUT_RETURN_TYPE = YES;
 				GCC_WARN_ABOUT_RETURN_TYPE = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 5.1;
+				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
 				OTHER_LDFLAGS = "-ObjC";
 				OTHER_LDFLAGS = "-ObjC";
 				SDKROOT = iphoneos;
 				SDKROOT = iphoneos;
 				SKIP_INSTALL = YES;
 				SKIP_INSTALL = YES;
 			};
 			};
-			name = Debug;
+			name = Release;
 		};
 		};
-		1DEB922408733DC00010E9CD /* Release */ = {
+		7D8938931B500013008F2B14 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
 			buildSettings = {
 			buildSettings = {
 				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
 				ARCHS = "$(ARCHS_STANDARD_32_BIT)";
 				GCC_C_LANGUAGE_STANDARD = c99;
 				GCC_C_LANGUAGE_STANDARD = c99;
 				GCC_WARN_ABOUT_RETURN_TYPE = YES;
 				GCC_WARN_ABOUT_RETURN_TYPE = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
 				GCC_WARN_UNUSED_VARIABLE = YES;
-				IPHONEOS_DEPLOYMENT_TARGET = 5.1;
+				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
 				OTHER_LDFLAGS = "-ObjC";
 				OTHER_LDFLAGS = "-ObjC";
 				SDKROOT = iphoneos;
 				SDKROOT = iphoneos;
 				SKIP_INSTALL = YES;
 				SKIP_INSTALL = YES;
 			};
 			};
-			name = Release;
-		};
-		7A5ECAFA11DE917B00F66AF3 /* Debug */ = {
-			isa = XCBuildConfiguration;
-			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
-				COPY_PHASE_STRIP = NO;
-				GCC_DYNAMIC_NO_PIC = NO;
-				GCC_OPTIMIZATION_LEVEL = 0;
-				IPHONEOS_DEPLOYMENT_TARGET = 5.1.1;
-				PRODUCT_NAME = "Aggregate static plugins";
-			};
 			name = Debug;
 			name = Debug;
 		};
 		};
-		7A5ECAFB11DE917B00F66AF3 /* Release */ = {
+		7D8938941B500013008F2B14 /* Debug */ = {
 			isa = XCBuildConfiguration;
 			isa = XCBuildConfiguration;
+			baseConfigurationReference = 7D8938951B500042008F2B14 /* vlc-plugins.xcconfig */;
 			buildSettings = {
 			buildSettings = {
-				ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
-				COPY_PHASE_STRIP = YES;
-				DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
-				IPHONEOS_DEPLOYMENT_TARGET = 5.1.1;
-				PRODUCT_NAME = "Aggregate static plugins";
-				ZERO_LINK = NO;
+				ALWAYS_SEARCH_USER_PATHS = NO;
+				ARCHS = (
+					"$(ARCHS_STANDARD_INCLUDING_64_BIT)",
+					armv7s,
+				);
+				CLANG_CXX_LIBRARY = "libc++";
+				CLANG_ENABLE_OBJC_ARC = YES;
+				DSTROOT = /tmp/MobileVLCKit.dst;
+				ENABLE_NS_ASSERTIONS = NO;
+				GCC_C_LANGUAGE_STANDARD = gnu11;
+				GCC_PRECOMPILE_PREFIX_HEADER = YES;
+				GCC_PREFIX_HEADER = MobileVLCKit_Prefix.pch;
+				GCC_SYMBOLS_PRIVATE_EXTERN = YES;
+				HEADER_SEARCH_PATHS = "$(SRCROOT)/MobileVLCKit/ImportedSources/vlc/include";
+				INSTALL_PATH = /usr/local/lib;
+				IPHONEOS_DEPLOYMENT_TARGET = 7.0;
+				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/MobileVLCKit/ImportedSources/vlc/install-ios/core/libcompat.a $(PROJECT_DIR)/MobileVLCKit/ImportedSources/vlc/install-ios/core/libvlc.a $(PROJECT_DIR)/MobileVLCKit/ImportedSources/vlc/install-ios/core/libvlccore.a $(VLC_PLUGINS_LDFLAGS) $(OTHER_CFLAGS)";
+				PRODUCT_NAME = MobileVLCKit;
 			};
 			};
-			name = Release;
+			name = Debug;
 		};
 		};
 /* End XCBuildConfiguration section */
 /* End XCBuildConfiguration section */
 
 
@@ -407,8 +327,8 @@
 		1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "MobileVLCKit" */ = {
 		1DEB921E08733DC00010E9CD /* Build configuration list for PBXNativeTarget "MobileVLCKit" */ = {
 			isa = XCConfigurationList;
 			isa = XCConfigurationList;
 			buildConfigurations = (
 			buildConfigurations = (
-				1DEB921F08733DC00010E9CD /* Debug */,
 				1DEB922008733DC00010E9CD /* Release */,
 				1DEB922008733DC00010E9CD /* Release */,
+				7D8938941B500013008F2B14 /* Debug */,
 			);
 			);
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 			defaultConfigurationName = Release;
@@ -416,17 +336,8 @@
 		1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "MobileVLCKit" */ = {
 		1DEB922208733DC00010E9CD /* Build configuration list for PBXProject "MobileVLCKit" */ = {
 			isa = XCConfigurationList;
 			isa = XCConfigurationList;
 			buildConfigurations = (
 			buildConfigurations = (
-				1DEB922308733DC00010E9CD /* Debug */,
 				1DEB922408733DC00010E9CD /* Release */,
 				1DEB922408733DC00010E9CD /* Release */,
-			);
-			defaultConfigurationIsVisible = 0;
-			defaultConfigurationName = Release;
-		};
-		7A5ECB1011DE919F00F66AF3 /* Build configuration list for PBXAggregateTarget "Aggregate static plugins" */ = {
-			isa = XCConfigurationList;
-			buildConfigurations = (
-				7A5ECAFA11DE917B00F66AF3 /* Debug */,
-				7A5ECAFB11DE917B00F66AF3 /* Release */,
+				7D8938931B500013008F2B14 /* Debug */,
 			);
 			);
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationIsVisible = 0;
 			defaultConfigurationName = Release;
 			defaultConfigurationName = Release;

+ 0 - 59
MobileVLCKit/AggregateStaticPlugins.sh

@@ -1,59 +0,0 @@
-#!/bin/sh
-
-# Pre-Compile.sh
-# MobileVLC
-#
-# Copyright Pierre d'Herbemont
-# License is the same as the COPYING file at root of the project
-
-
-pushd `dirname $0` > /dev/null
-PROJECT_DIR=`pwd`
-popd > /dev/null
-
-echo "PROJECT DIR = $PROJECT_DIR"
-
-ARCH=$ARCHS
-VLC_SRC_DIR="$PROJECT_DIR/ImportedSources/vlc"
-
-if [ "$PLATFORM_NAME" = "iphoneos" ]; then
-VLC_BUILD_DIR="$VLC_SRC_DIR/build-ios-OS/$CURRENT_ARCH"
-VLC_INSTALL_DIR="$VLC_SRC_DIR/install-ios-OS/$CURRENT_ARCH"
-else
-VLC_BUILD_DIR="$VLC_SRC_DIR/build-ios-Simulator/$CURRENT_ARCH"
-VLC_INSTALL_DIR="$VLC_SRC_DIR/install-ios-Simulator/$CURRENT_ARCH"
-fi
-
-VLC_CONTRIB_DIR="$VLC_INSTALL_DIR/contribs/"
-LDFLAGS=""
-
-echo "VLC_BUILD_DIR   = $VLC_BUILD_DIR"
-echo "VLC_INSTALL_DIR = $VLC_INSTALL_DIR"
-echo "SRC DIR         = $VLC_SRC_DIR"
-echo "VLC_CONTRIB_DIR = $VLC_CONTRIB_DIR"
-
-echo "=== Building for $ARCH ==="
-echo "-"
-
-echo "// This file is autogenerated by $(basename $0)\n\n" > $PROJECT_DIR/vlc-plugins.h
-echo "// This file is autogenerated by $(basename $0)\n\n" > $PROJECT_DIR/vlc-plugins.xcconfig
-
-VLC_MODULES=`ls $VLC_INSTALL_DIR/lib/vlc/plugins/lib*_plugin.a|tr \\\\n \ `
-#echo $VLC_MODULES
-BUILTINS="const void *vlc_static_modules[] = {\n"; \
-
-LDFLAGS=""
-DEFINITION=""
-
-for file in $VLC_MODULES; do
-  name=`echo $file | sed 's/.*\/lib//' | sed 's/_plugin\.a//'`
-  symbol=`nm -g $file | grep _vlc_entry__|cut -d" " -f 3|sed 's/_vlc_entry/vlc_entry/'`
-  DEFINITION+="int $symbol (int (*)(void *, void *, int, ...), void *);\n";
-  BUILTINS+=" $symbol,\n"
-  LDFLAGS+="\$(VLC_INSTALL_DIR)/lib/vlc/plugins/lib${name}_plugin.a "
-done;
-
-BUILTINS="$BUILTINS NULL\n};\n"
-
-echo -e "VLC_PLUGINS_LDFLAGS=$LDFLAGS" >> $PROJECT_DIR/vlc-plugins.xcconfig
-echo -e "$DEFINITION\n$BUILTINS" >> $PROJECT_DIR/vlc-plugins.h

+ 0 - 44
MobileVLCKit/MobileVLCKit.xcconfig

@@ -1,44 +0,0 @@
-//
-//  vlc.xcconfig
-//  VLC
-//
-//  Created by Pierre d'Herbemont on 6/26/10.
-//  Copyright 2010-2013 VLC Authors and VideoLAN. All rights reserved.
-//
-
-
-VLC_SRC_DIR=$(PROJECT_DIR)/MobileVLCKit/ImportedSources/vlc
-VLC_PLATFORM[sdk=iphonesimulator*]=Simulator
-VLC_PLATFORM[sdk=iphoneos*]=OS
-VLC_INSTALL_DIR=$(VLC_SRC_DIR)/install-ios-$(VLC_PLATFORM)/$(CURRENT_ARCH)
-
-//OTHER_CFLAGS= -ObjC -all_load
-#include "vlc-plugins.xcconfig"
-
-VLC_CONTRIB_DIR=$VLC_INSTALL_DIR/contribs
-ARCHIVE=$(VLC_CONTRIB_DIR)/lib/libarchive.a
-AVCODEC=$(VLC_CONTRIB_DIR)/lib/libavutil.a ${VLC_CONTRIB_DIR}/lib/libavcodec.a $(VLC_CONTRIB_DIR)/lib/libavformat.a $(VLC_CONTRIB_DIR)/lib/libswscale.a $(VLC_CONTRIB_DIR)/lib/libgsm.a
-DVBPSI=$(VLC_CONTRIB_DIR)/lib/libdvbpsi.a
-FLAC=$(VLC_CONTRIB_DIR)/lib/libFLAC.a
-FREETYPE=$(VLC_CONTRIB_DIR)/lib/libfreetype.a
-FRIBIDI=$(VLC_CONTRIB_DIR)/lib/libfribidi.a
-ASS=$(VLC_CONTRIB_DIR)/lib/libass.a
-GCRYPT=$(VLC_CONTRIB_DIR)/lib/libgcrypt.a $(VLC_CONTRIB_DIR)/lib/libgpg-error.a
-HARFBUZZ=$(VLC_CONTRIB_DIR)/lib/libharfbuzz.a
-LIVE555=$(VLC_CONTRIB_DIR)/lib/libUsageEnvironment.a $(VLC_CONTRIB_DIR)/lib/libBasicUsageEnvironment.a $(VLC_CONTRIB_DIR)/lib/libgroupsock.a $(VLC_CONTRIB_DIR)/lib/libz.a $(VLC_CONTRIB_DIR)/lib/libliveMedia.a
-MKV=$(VLC_CONTRIB_DIR)/lib/libebml.a $(VLC_CONTRIB_DIR)/lib/libmatroska.a
-MODPLUG=$(VLC_CONTRIB_DIR)/lib/libmodplug.a
-MP3=$(VLC_CONTRIB_DIR)/lib/libmpg123.a
-OPUS=$(VLC_CONTRIB_DIR)/lib/libopus.a
-OGG=$(VLC_CONTRIB_DIR)/lib/libogg.a $(VLC_CONTRIB_DIR)/lib/libtheora.a $(VLC_CONTRIB_DIR)/lib/libtheoradec.a $(VLC_CONTRIB_DIR)/lib/libtheoraenc.a $(VLC_CONTRIB_DIR)/lib/libvorbis.a $(VLC_CONTRIB_DIR)/lib/libvorbisenc.a $(VLC_CONTRIB_DIR)/lib/libvorbisfile.a
-PICS=$(VLC_CONTRIB_DIR)/lib/libpng.a $(VLC_CONTRIB_DIR)/lib/libopenjpeg.a
-SPEEX=$(VLC_CONTRIB_DIR)/lib/libspeex.a $(VLC_CONTRIB_DIR)/lib/libspeexdsp.a
-TAGLIB=$(VLC_CONTRIB_DIR)/lib/libtag.a $(VLC_CONTRIB_DIR)/lib/libtag_c.a
-VPX=$(VLC_CONTRIB_DIR)/lib/libvpx.a
-XML=$(VLC_CONTRIB_DIR)/lib/libxml2.a
-ZLIB=$(VLC_CONTRIB_DIR)/lib/libz.a
-SSH=$(VLC_CONTRIB_DIR)/lib/libssh2.a
-DSM=$(VLC_CONTRIB_DIR)/lib/libtasn1.a $(VLC_CONTRIB_DIR)/lib/libdsm.a
-ZVBI=$(VLC_CONTRIB_DIR)/lib/libzvbi.a
-
-OTHER_LIBTOOLFLAGS=$(ARCHIVE) $(ASS) $(AVCODEC) $(DVBPSI) $(FLAC) $(FRIBIDI) $(FREETYPE) $(GCRYPT) $(HARFBUZZ) $(LIVE555) $(MKV) $(MODPLUG) $(MP3) $(OGG) $(OPUS) $(PICS) $(SPEEX) $(TAGLIB) $(XML) $(VPX) $(SSH) $(DSM) $(ZLIB) $(ZVBI) $(VLC_INSTALL_DIR)/lib/vlc/libcompat.a  $(VLC_INSTALL_DIR)/lib/libvlc.a $(VLC_INSTALL_DIR)/lib/libvlccore.a $(VLC_PLUGINS_LDFLAGS) $(OTHER_CFLAGS)

+ 189 - 5
buildMobileVLCKit.sh

@@ -1,11 +1,11 @@
 #!/bin/sh
 #!/bin/sh
 # Copyright (C) Pierre d'Herbemont, 2010
 # Copyright (C) Pierre d'Herbemont, 2010
-# Copyright (C) Felix Paul Kühne, 2012-2013
+# Copyright (C) Felix Paul Kühne, 2012-2015
 
 
 set -e
 set -e
 
 
 BUILD_DEVICE=yes
 BUILD_DEVICE=yes
-BUILD_SIMULATOR=no
+BUILD_SIMULATOR=yes
 BUILD_FRAMEWORK=no
 BUILD_FRAMEWORK=no
 SDK=`xcrun --sdk iphoneos --show-sdk-version`
 SDK=`xcrun --sdk iphoneos --show-sdk-version`
 SDK_MIN=7.0
 SDK_MIN=7.0
@@ -31,6 +31,7 @@ OPTIONS
    -n       Skip script steps requiring network interaction
    -n       Skip script steps requiring network interaction
    -l       Skip libvlc compilation
    -l       Skip libvlc compilation
    -w       Build a limited stack of non-scary libraries only
    -w       Build a limited stack of non-scary libraries only
+   -y		Build universal static libraries
 EOF
 EOF
 }
 }
 
 
@@ -196,9 +197,6 @@ buildMobileKit() {
 
 
     spopd # MobileVLCKit/ImportedSources
     spopd # MobileVLCKit/ImportedSources
 
 
-    buildxcodeproj MobileVLCKit "Aggregate static plugins"
-    buildxcodeproj MobileVLCKit "MobileVLCKit"
-
     info "Build for $PLATFORM completed"
     info "Build for $PLATFORM completed"
 }
 }
 
 
@@ -208,6 +206,192 @@ fi
 if [ "$BUILD_SIMULATOR" != "no" ]; then
 if [ "$BUILD_SIMULATOR" != "no" ]; then
     buildMobileKit iphonesimulator
     buildMobileKit iphonesimulator
 fi
 fi
+
+DEVICEARCHS=""
+SIMULATORARCHS=""
+
+doVLCLipo() {
+    FILEPATH="$1"
+    FILE="$2"
+    PLUGIN="$3"
+    files=""
+
+    info "...$FILEPATH$FILE"
+
+    for i in $DEVICEARCHS
+    do
+        files="install-ios-OS/$i/lib/$FILEPATH$FILE $files"
+    done
+
+    for i in $SIMULATORARCHS
+    do
+        files="install-ios-Simulator/$i/lib/$FILEPATH$FILE $files"
+    done
+
+    if [ "$PLUGIN" != "no" ]; then
+        lipo $files -create -output install-ios/plugins/$FILE
+    else
+        lipo $files -create -output install-ios/core/$FILE
+    fi
+}
+
+doContribLipo() {
+    LIBNAME="$1"
+    files=""
+
+    info "...$LIBNAME"
+
+    for i in $DEVICEARCHS
+    do
+        if [ "$i" != "arm64" ]; then
+            files="contrib/$i-apple-darwin11-$i/lib/$LIBNAME $files"
+        else
+            files="contrib/aarch64-apple-darwin11-aarch64/lib/$LIBNAME $files"
+        fi
+    done
+
+    for i in $SIMULATORARCHS
+    do
+        files="contrib/$i-apple-darwin11-$i/lib/$LIBNAME $files"
+    done
+
+    lipo $files -create -output install-ios/contrib/$LIBNAME
+}
+
+get_symbol()
+{
+    echo "$1" | grep vlc_entry_$2|cut -d" " -f 3|sed 's/_vlc/vlc/'
+}
+
+info "building universal static libs"
+PROJECT_DIR=`pwd`
+
+# remove old module list
+rm -f $PROJECT_DIR/MobileVLCKit/vlc-plugins.h
+rm -f $PROJECT_DIR/MobileVLCKit/vlc-plugins.xcconfig
+
+spushd MobileVLCKit/ImportedSources/vlc
+rm -rf install-ios
+mkdir install-ios
+mkdir install-ios/core
+mkdir install-ios/contrib
+mkdir install-ios/plugins
+spopd # vlc
+
+spushd MobileVLCKit/ImportedSources/vlc/install-ios-OS
+for i in `ls .`
+do
+	DEVICEARCHS="$DEVICEARCHS $i"
+done
+spopd # vlc-install-ios-OS
+
+spushd MobileVLCKit/ImportedSources/vlc/install-ios-Simulator
+for i in `ls .`
+do
+	SIMULATORARCHS="$SIMULATORARCHS $i"
+done
+spopd # vlc-install-ios-Simulator
+
+# arm64 got the lowest number of modules
+VLCMODULES=""
+spushd MobileVLCKit/ImportedSources/vlc/install-ios-OS/arm64/lib/vlc/plugins
+for i in `ls *.a`
+do
+	VLCMODULES="$i $VLCMODULES"
+done
+spopd # vlc/install-ios-OS/arm64/lib/vlc/plugins
+
+# collect ARMv7/s specific neon modules
+VLCNEONMODULES=""
+spushd MobileVLCKit/ImportedSources/vlc/install-ios-OS/armv7/lib/vlc/plugins
+for i in `ls *.a | grep neon`
+do
+	VLCNEONMODULES="$i $VLCNEONMODULES"
+done
+spopd # vlc/install-ios-OS/armv7/lib/vlc/plugins
+
+spushd MobileVLCKit/ImportedSources/vlc
+
+# lipo all the vlc libraries and its plugins
+doVLCLipo "" "libvlc.a" "no"
+doVLCLipo "" "libvlccore.a" "no"
+doVLCLipo "vlc/" "libcompat.a" "no"
+for i in $VLCMODULES
+do
+	doVLCLipo "vlc/plugins/" $i "yes"
+done
+
+# lipo contrib libraries
+CONTRIBLIBS=""
+spushd contrib/armv7-apple-darwin11-armv7/lib
+for i in `ls *.a`
+do
+	CONTRIBLIBS="$i $CONTRIBLIBS"
+done
+spopd # contrib/armv7-apple-darwin11-armv7/lib
+for i in $CONTRIBLIBS
+do
+	doContribLipo $i
+done
+
+# lipo the remaining NEON plugins
+DEVICEARCHS="armv7 armv7s"
+SIMULATORARCHS=""
+for i in $VLCNEONMODULES
+do
+	doVLCLipo "vlc/plugins/" $i "yes"
+done
+
+# create module list
+info "creating module list"
+echo "// This file is autogenerated by $(basename $0)\n\n" > $PROJECT_DIR/MobileVLCKit/vlc-plugins.h
+echo "// This file is autogenerated by $(basename $0)\n\n" > $PROJECT_DIR/MobileVLCKit/vlc-plugins.xcconfig
+
+# arm64 got the lowest number of modules
+BUILTINS="const void *vlc_static_modules[] = {\n"; \
+
+LDFLAGS=""
+DEFINITIONS=""
+
+# add contrib libraries to LDFLAGS
+for file in $CONTRIBLIBS
+do
+	LDFLAGS+="\$(PROJECT_DIR)/MobileVLCKit/ImportedSources/vlc/install-ios/contrib/$file "
+done
+
+for file in $VLCMODULES
+do
+	symbols=$(nm -g -arch armv7 install-ios/plugins/$file)
+	entryname=$(get_symbol "$symbols" _)
+	DEFINITIONS+="int $entryname (int (*)(void *, void *, int, ...), void *);\n";
+	BUILTINS+=" $entryname,\n"
+	LDFLAGS+="\$(PROJECT_DIR)/MobileVLCKit/ImportedSources/vlc/install-ios/plugins/$file "
+	info "...$entryname"
+done;
+
+BUILTINS+="#ifdef __arm__\n"
+DEFINITIONS+="#ifdef __arm__\n"
+for file in $VLCNEONMODULES
+do
+	symbols=$(nm -g -arch armv7 install-ios/plugins/$file)
+	entryname=$(get_symbol "$symbols" _)
+	DEFINITIONS+="int $entryname (int (*)(void *, void *, int, ...), void *);\n";
+	BUILTINS+=" $entryname,\n"
+	LDFLAGS+="\$(PROJECT_DIR)/MobileVLCKit/ImportedSources/vlc/install-ios/plugins/$file "
+	info "...$entryname"
+done;
+BUILTINS+="#endif\n"
+DEFINITIONS+="#endif\n"
+
+BUILTINS="$BUILTINS NULL\n};\n"
+
+echo "$DEFINITIONS\n$BUILTINS" > $PROJECT_DIR/MobileVLCKit/vlc-plugins.h
+echo "VLC_PLUGINS_LDFLAGS=$LDFLAGS" > $PROJECT_DIR/MobileVLCKit/vlc-plugins.xcconfig
+
+spopd # vlc
+
+info "all done"
+
 if [ "$BUILD_FRAMEWORK" != "no" ]; then
 if [ "$BUILD_FRAMEWORK" != "no" ]; then
     info "Building MobileVLCKit.framework"
     info "Building MobileVLCKit.framework"