Переглянути джерело

Update and simplify compilation script

We no longer lipo here, but let the libvlc script handle all that
Felix Paul Kühne 5 роки тому
батько
коміт
010946baa9

+ 8 - 20
MobileVLCKit.xcodeproj/project.pbxproj

@@ -449,10 +449,8 @@
 		7A5ECAE511DE8FEF00F66AF3 /* VLCEventManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCEventManager.h; path = Headers/Internal/VLCEventManager.h; sourceTree = "<group>"; };
 		7A5ECB9D11DE975700F66AF3 /* MobileVLCKit.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = MobileVLCKit.h; path = Headers/Public/MobileVLCKit.h; sourceTree = "<group>"; };
 		7D1329591BA304D900BE647E /* libTVVLCKit.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libTVVLCKit.a; sourceTree = BUILT_PRODUCTS_DIR; };
-		7D1329751BA305D600BE647E /* vlc-plugins-AppleTV.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "vlc-plugins-AppleTV.xcconfig"; path = "Resources/MobileVLCKit/vlc-plugins-AppleTV.xcconfig"; sourceTree = "<group>"; };
 		7D1329761BA306DE00BE647E /* vlc-plugins-iPhone.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "vlc-plugins-iPhone.h"; path = "Resources/MobileVLCKit/vlc-plugins-iPhone.h"; sourceTree = "<group>"; };
 		7D1329771BA306E600BE647E /* vlc-plugins-AppleTV.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "vlc-plugins-AppleTV.h"; path = "Resources/MobileVLCKit/vlc-plugins-AppleTV.h"; sourceTree = "<group>"; };
-		7D1329791BA3074100BE647E /* vlc-plugins-iPhone.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "vlc-plugins-iPhone.xcconfig"; path = "Resources/MobileVLCKit/vlc-plugins-iPhone.xcconfig"; sourceTree = "<group>"; };
 		7D24C2B51EC0A3390047E700 /* libbz2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libbz2.tbd; path = usr/lib/libbz2.tbd; sourceTree = SDKROOT; };
 		7D24C2B71EC0A3400047E700 /* VideoToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = VideoToolbox.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS10.2.sdk/System/Library/Frameworks/VideoToolbox.framework; sourceTree = DEVELOPER_DIR; };
 		7D24C2B91EC0A3460047E700 /* libbz2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libbz2.tbd; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS10.2.sdk/usr/lib/libbz2.tbd; sourceTree = DEVELOPER_DIR; };
@@ -783,9 +781,7 @@
 			children = (
 				3F7CC79721D69D9A0094B074 /* module.modulemap */,
 				CA08590420F7184A00B3AB69 /* macros.h */,
-				7D1329791BA3074100BE647E /* vlc-plugins-iPhone.xcconfig */,
 				AA747D9E0F9514B9006C5449 /* MobilePrefix.pch */,
-				7D1329751BA305D600BE647E /* vlc-plugins-AppleTV.xcconfig */,
 			);
 			name = "Other Sources";
 			sourceTree = "<group>";
@@ -1583,7 +1579,6 @@
 /* Begin XCBuildConfiguration section */
 		1DEB922008733DC00010E9CD /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 7D1329791BA3074100BE647E /* vlc-plugins-iPhone.xcconfig */;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ARCHS = (
@@ -1603,7 +1598,7 @@
 				HEADER_SEARCH_PATHS = "$(SRCROOT)/libvlc/vlc/include";
 				INSTALL_PATH = /usr/local/lib;
 				IPHONEOS_DEPLOYMENT_TARGET = 8.4;
-				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/libvlc/vlc/install-iPhone/core/libcompat.a $(PROJECT_DIR)/libvlc/vlc/install-iPhone/core/libvlc.a $(PROJECT_DIR)/libvlc/vlc/install-iPhone/core/libvlccore.a $(VLC_PLUGINS_LDFLAGS) $(OTHER_CFLAGS)";
+				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/libvlc/vlc/install-iPhone/libvlc-full-static.a $(OTHER_CFLAGS)";
 				PRODUCT_NAME = MobileVLCKit;
 			};
 			name = Release;
@@ -1624,7 +1619,6 @@
 		};
 		7D13295F1BA304D900BE647E /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 7D1329751BA305D600BE647E /* vlc-plugins-AppleTV.xcconfig */;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ARCHS = "$(ARCHS_STANDARD)";
@@ -1658,7 +1652,7 @@
 				HEADER_SEARCH_PATHS = "$(SRCROOT)/libvlc/vlc/include";
 				MTL_ENABLE_DEBUG_INFO = NO;
 				OTHER_LDFLAGS = "-ObjC";
-				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/libvlc/vlc/install-AppleTV/core/libcompat.a $(PROJECT_DIR)/libvlc/vlc/install-AppleTV/core/libvlc.a $(PROJECT_DIR)/libvlc/vlc/install-AppleTV/core/libvlccore.a $(VLC_PLUGINS_LDFLAGS) $(OTHER_CFLAGS)";
+				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/libvlc/vlc/install-AppleTV/libvlc-full-static.a $(OTHER_CFLAGS)";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SDKROOT = appletvos;
 				SKIP_INSTALL = YES;
@@ -1669,7 +1663,6 @@
 		};
 		7D1329601BA304D900BE647E /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 7D1329751BA305D600BE647E /* vlc-plugins-AppleTV.xcconfig */;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ARCHS = "$(ARCHS_STANDARD)";
@@ -1710,7 +1703,7 @@
 				MTL_ENABLE_DEBUG_INFO = YES;
 				ONLY_ACTIVE_ARCH = YES;
 				OTHER_LDFLAGS = "-ObjC";
-				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/libvlc/vlc/install-AppleTV/core/libcompat.a $(PROJECT_DIR)/libvlc/vlc/install-AppleTV/core/libvlc.a $(PROJECT_DIR)/libvlc/vlc/install-AppleTV/core/libvlccore.a $(VLC_PLUGINS_LDFLAGS) $(OTHER_CFLAGS)";
+				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/libvlc/vlc/install-AppleTV/libvlc-full-static.a $(OTHER_CFLAGS)";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SDKROOT = appletvos;
 				SKIP_INSTALL = YES;
@@ -1734,7 +1727,6 @@
 		};
 		7D8938941B500013008F2B14 /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 7D1329791BA3074100BE647E /* vlc-plugins-iPhone.xcconfig */;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ARCHS = (
@@ -1755,7 +1747,7 @@
 				HEADER_SEARCH_PATHS = "$(SRCROOT)/libvlc/vlc/include";
 				INSTALL_PATH = /usr/local/lib;
 				IPHONEOS_DEPLOYMENT_TARGET = 8.4;
-				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/libvlc/vlc/install-iPhone/core/libcompat.a $(PROJECT_DIR)/libvlc/vlc/install-iPhone/core/libvlc.a $(PROJECT_DIR)/libvlc/vlc/install-iPhone/core/libvlccore.a $(VLC_PLUGINS_LDFLAGS) $(OTHER_CFLAGS)";
+				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/libvlc/vlc/install-iPhone/libvlc-full-static.a $(OTHER_CFLAGS)";
 				PRODUCT_NAME = MobileVLCKit;
 			};
 			name = Debug;
@@ -1884,7 +1876,6 @@
 		};
 		7D8939601B500DBC008F2B14 /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 7D1329791BA3074100BE647E /* vlc-plugins-iPhone.xcconfig */;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ARCHS = "$(ARCHS_STANDARD)";
@@ -1914,7 +1905,7 @@
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				MTL_ENABLE_DEBUG_INFO = NO;
 				OTHER_LDFLAGS = "-ObjC";
-				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/libvlc/vlc/install-iPhone/core/libvlc.a $(PROJECT_DIR)/libvlc/vlc/install-iPhone/core/libvlccore.a $(PROJECT_DIR)/libvlc/vlc/install-iPhone/core/libcompat.a $(VLC_PLUGINS_LDFLAGS)";
+				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/libvlc/vlc/install-iPhone/libvlc-full-static.a";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SKIP_INSTALL = YES;
 				VALIDATE_PRODUCT = YES;
@@ -1923,7 +1914,6 @@
 		};
 		7D8939611B500DBC008F2B14 /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 7D1329791BA3074100BE647E /* vlc-plugins-iPhone.xcconfig */;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ARCHS = "$(ARCHS_STANDARD)";
@@ -1960,7 +1950,7 @@
 				MTL_ENABLE_DEBUG_INFO = YES;
 				ONLY_ACTIVE_ARCH = YES;
 				OTHER_LDFLAGS = "-ObjC";
-				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/libvlc/vlc/install-iPhone/core/libvlc.a $(PROJECT_DIR)/libvlc/vlc/install-iPhone/core/libvlccore.a $(PROJECT_DIR)/libvlc/vlc/install-iPhone/core/libcompat.a $(VLC_PLUGINS_LDFLAGS)";
+				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/libvlc/vlc/install-iPhone/libvlc-full-static.a";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SKIP_INSTALL = YES;
 			};
@@ -2088,7 +2078,6 @@
 		};
 		7DB683CD1C995E9A000C70BE /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 7D1329751BA305D600BE647E /* vlc-plugins-AppleTV.xcconfig */;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ARCHS = "$(ARCHS_STANDARD)";
@@ -2120,7 +2109,7 @@
 				GCC_WARN_UNUSED_FUNCTION = YES;
 				MTL_ENABLE_DEBUG_INFO = NO;
 				OTHER_LDFLAGS = "-ObjC";
-				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/libvlc/vlc/install-AppleTV/core/libvlc.a $(PROJECT_DIR)/libvlc/vlc/install-AppleTV/core/libvlccore.a $(PROJECT_DIR)/libvlc/vlc/install-AppleTV/core/libcompat.a $(VLC_PLUGINS_LDFLAGS)";
+				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/libvlc/vlc/install-AppleTV/libvlc-full-static.a";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SDKROOT = appletvos;
 				SKIP_INSTALL = YES;
@@ -2131,7 +2120,6 @@
 		};
 		7DB683CE1C995E9A000C70BE /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 7D1329751BA305D600BE647E /* vlc-plugins-AppleTV.xcconfig */;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				ARCHS = "$(ARCHS_STANDARD)";
@@ -2170,7 +2158,7 @@
 				MTL_ENABLE_DEBUG_INFO = YES;
 				ONLY_ACTIVE_ARCH = YES;
 				OTHER_LDFLAGS = "-ObjC";
-				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/libvlc/vlc/install-AppleTV/core/libvlc.a $(PROJECT_DIR)/libvlc/vlc/install-AppleTV/core/libvlccore.a $(PROJECT_DIR)/libvlc/vlc/install-AppleTV/core/libcompat.a $(VLC_PLUGINS_LDFLAGS)";
+				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/libvlc/vlc/install-AppleTV/libvlc-full-static.a";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SDKROOT = appletvos;
 				SKIP_INSTALL = YES;

+ 2 - 8
VLCKit.xcodeproj/project.pbxproj

@@ -181,7 +181,6 @@
 		7D34F5611C90A96C008A39F0 /* VLCDialogProvider.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = VLCDialogProvider.h; path = Public/VLCDialogProvider.h; sourceTree = "<group>"; };
 		7D34F5641C90A98B008A39F0 /* VLCCustomDialogProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCCustomDialogProvider.m; sourceTree = "<group>"; };
 		7D34F5651C90A98B008A39F0 /* VLCDialogProvider.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VLCDialogProvider.m; sourceTree = "<group>"; };
-		7DC28D3C201938D9002D05C4 /* vlc-plugins-MacOSX.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; name = "vlc-plugins-MacOSX.xcconfig"; path = "Resources/MobileVLCKit/vlc-plugins-MacOSX.xcconfig"; sourceTree = "<group>"; };
 		7DC28D4120194043002D05C4 /* libStaticLibVLC.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libStaticLibVLC.a; sourceTree = BUILT_PRODUCTS_DIR; };
 		7DC28D4A2019406B002D05C4 /* StaticLibVLC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = StaticLibVLC.m; path = Sources/StaticLibVLC.m; sourceTree = SOURCE_ROOT; };
 		7DC28D7F20194117002D05C4 /* VLCKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = VLCKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -386,7 +385,6 @@
 			children = (
 				32DBCF5E0370ADEE00C91783 /* Prefix.pch */,
 				CA08590320F7156100B3AB69 /* macros.h */,
-				7DC28D3C201938D9002D05C4 /* vlc-plugins-MacOSX.xcconfig */,
 			);
 			name = "Other Sources";
 			sourceTree = "<group>";
@@ -923,7 +921,6 @@
 		};
 		7DC28D4820194043002D05C4 /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 7DC28D3C201938D9002D05C4 /* vlc-plugins-MacOSX.xcconfig */;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				CLANG_ANALYZER_NONNULL = YES;
@@ -958,14 +955,13 @@
 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 				MACOSX_DEPLOYMENT_TARGET = 10.13;
 				MTL_ENABLE_DEBUG_INFO = YES;
-				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/libvlc/vlc/install-MacOSX/x86_64/lib/libvlccore.a $(PROJECT_DIR)/libvlc/vlc/install-MacOSX/x86_64/lib/libvlc.a $(PROJECT_DIR)/libvlc/vlc/install-MacOSX/x86_64/lib/vlc/libcompat.a $(VLC_PLUGINS_LDFLAGS)";
+				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/libvlc/vlc/install-MacOSX/libvlc-full-static.a";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 			};
 			name = Debug;
 		};
 		7DC28D4920194043002D05C4 /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 7DC28D3C201938D9002D05C4 /* vlc-plugins-MacOSX.xcconfig */;
 			buildSettings = {
 				ALWAYS_SEARCH_USER_PATHS = NO;
 				CLANG_ANALYZER_NONNULL = YES;
@@ -995,14 +991,13 @@
 				GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
 				MACOSX_DEPLOYMENT_TARGET = 10.13;
 				MTL_ENABLE_DEBUG_INFO = NO;
-				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/libvlc/vlc/install-MacOSX/x86_64/lib/libvlccore.a $(PROJECT_DIR)/libvlc/vlc/install-MacOSX/x86_64/lib/libvlc.a $(PROJECT_DIR)/libvlc/vlc/install-MacOSX/x86_64/lib/vlc/libcompat.a $(VLC_PLUGINS_LDFLAGS)";
+				OTHER_LIBTOOLFLAGS = "$(PROJECT_DIR)/libvlc/vlc/install-MacOSX/libvlc-full-static.a";
 				PRODUCT_NAME = "$(TARGET_NAME)";
 			};
 			name = Release;
 		};
 		7DC28D7D20194117002D05C4 /* Debug */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 7DC28D3C201938D9002D05C4 /* vlc-plugins-MacOSX.xcconfig */;
 			buildSettings = {
 				ARCHS = "$(ARCHS_STANDARD_64_BIT)";
 				CLANG_ENABLE_OBJC_ARC = YES;
@@ -1038,7 +1033,6 @@
 		};
 		7DC28D7E20194117002D05C4 /* Release */ = {
 			isa = XCBuildConfiguration;
-			baseConfigurationReference = 7DC28D3C201938D9002D05C4 /* vlc-plugins-MacOSX.xcconfig */;
 			buildSettings = {
 				ARCHS = "$(ARCHS_STANDARD_64_BIT)";
 				CLANG_ENABLE_OBJC_ARC = YES;

+ 39 - 269
compileAndBuildVLCKit.sh

@@ -24,7 +24,7 @@ OSVERSIONMINLDFLAG=ios
 ROOT_DIR=empty
 FARCH="all"
 
-TESTEDHASH="6e223d67a" # libvlc hash that this version of VLCKit is build on
+TESTEDHASH="b932973a9" # libvlc hash that this version of VLCKit is build on
 
 usage()
 {
@@ -36,7 +36,7 @@ OPTIONS
    -v       Be more verbose
    -s       Build for simulator
    -f       Build framework for device and simulator
-   -d       Disable Debug
+   -r       Disable Debug for Release
    -n       Skip script steps requiring network interaction
    -l       Skip libvlc compilation
    -t       Build for tvOS
@@ -221,53 +221,6 @@ buildMobileKit() {
     fi
 }
 
-doVLCLipo() {
-    FILEPATH="$1"
-    FILE="$2"
-    PLUGIN="$3"
-    OSSTYLE="$4"
-    files=""
-
-    info "...$FILEPATH$FILE"
-
-    for i in $DEVICEARCHS
-    do
-        actual_arch=`get_actual_arch $i`
-        files="build-"$OSSTYLE"os-$actual_arch/vlc-"$OSSTYLE"os${SDK_VERSION}-$actual_arch/lib/$FILEPATH$FILE $files"
-    done
-
-    for i in $SIMULATORARCHS
-    do
-        actual_arch=`get_actual_arch $i`
-        files="build-"$OSSTYLE"simulator-$actual_arch/vlc-"$OSSTYLE"simulator${SDK_VERSION}-$actual_arch/lib/$FILEPATH$FILE $files"
-    done
-
-    if [ "$PLUGIN" != "no" ]; then
-        lipo $files -create -output install-$OSSTYLE/plugins/$FILE
-    else
-        lipo $files -create -output install-$OSSTYLE/core/$FILE
-    fi
-}
-
-doContribLipo() {
-    LIBNAME="$1"
-    OSSTYLE="$2"
-    files=""
-
-    info "...$LIBNAME"
-
-    for i in $DEVICEARCHS
-    do
-        files="build-"$OSSTYLE"os-$i/contrib/$i-"$OSSTYLE"os/lib/$LIBNAME $files"
-    done
-    for i in $SIMULATORARCHS
-    do
-        files="build-"$OSSTYLE"simulator-$i/contrib/$i-"$OSSTYLE"simulator/lib/$LIBNAME $files"
-    done
-
-    lipo $files -create -output install-$OSSTYLE/contrib/$LIBNAME
-}
-
 get_symbol()
 {
     echo "$1" | grep vlc_entry_$2|cut -d" " -f 3|sed 's/_vlc/vlc/'
@@ -276,241 +229,57 @@ get_symbol()
 build_universal_static_lib() {
     PROJECT_DIR=`pwd`
     OSSTYLE="$1"
-    info "building universal static libs for OS style $OSSTYLE"
+    info "building universal static libs for $OSSTYLE"
 
     # remove old module list
     rm -f $PROJECT_DIR/Resources/MobileVLCKit/vlc-plugins-$OSSTYLE.h
-    rm -f $PROJECT_DIR/Resources/MobileVLCKit/vlc-plugins-$OSSTYLE.xcconfig
     touch $PROJECT_DIR/Resources/MobileVLCKit/vlc-plugins-$OSSTYLE.h
-    touch $PROJECT_DIR/Resources/MobileVLCKit/vlc-plugins-$OSSTYLE.xcconfig
-
-    if [ "$OSSTYLE" != "MacOSX" ]; then
-        spushd ${VLCROOT}
-        rm -rf install-$OSSTYLE
-        mkdir install-$OSSTYLE
-        mkdir install-$OSSTYLE/core
-        mkdir install-$OSSTYLE/contrib
-        mkdir install-$OSSTYLE/plugins
-        spopd # vlc
-    else
-        spushd ${VLCROOT}/install-$OSSTYLE
-        rm -rf core
-        rm -rf contrib
-        rm -rf plugins
-        ln -s x86_64/lib core
-        ln -s x86_64/contribs/lib contrib
-        ln -s x86_64/lib/vlc/plugins plugins
-        spopd # vlc
-    fi
 
-    VLCMODULES=""
-    VLCMODULECATEGORYNAMES=""
-    VLCNEONMODULES=""
-    SIMULATORARCHS=""
-    CONTRIBLIBS=""
-    DEVICEARCHS=""
-
-    arch="aarch64"
-    if [ "$FARCH" != "all" ];then
-        arch="$FARCH"
-    elif [ "$BUILD_SIMULATOR" = "yes" ]; then
-        arch="x86_64"
+    spushd ${VLCROOT}
+    rm -rf install-$OSSTYLE
+    mkdir install-$OSSTYLE
+    spopd # vlc
+
+    VLCSTATICLIBS=""
+    VLCSTATICLIBRARYNAME="static-lib/libvlc-full-static.a"
+    VLCSTATICMODULELIST=""
+
+    # brute-force test the available architectures we could lipo
+    if [ -d ${VLCROOT}/build-${OSSTYLE}os-arm64 ];then
+        VLCSTATICLIBS+=" ${VLCROOT}/build-${OSSTYLE}os-arm64/${VLCSTATICLIBRARYNAME}"
+        VLCSTATICMODULELIST="${VLCROOT}/build-${OSSTYLE}os-arm64/static-lib/static-module-list.c"
     fi
-
-    actual_arch=`get_actual_arch $arch`
-
-    # arm64 got the lowest number of modules, so we iterate here
-    if [ -d ${VLCROOT}/build-"$OSSTYLE"os-arm64 ];then
-        if [ "$OSSTYLE" = "iphone" ];then
-            if [ "$FARCH" = "all" ];then
-                DEVICEARCHS="arm64 armv7 armv7s"
-            fi
-        fi
-        if [ "$OSSTYLE" = "appletv" ];then
-            if [ "$FARCH" = "all" ];then
-                DEVICEARCHS="arm64"
-            fi
-        fi
-        VLCMODULES=""
-        CONTRIBLIBS=""
-
-        spushd ${VLCROOT}/build-"$OSSTYLE"os-arm64/vlc-"$OSSTYLE"os${SDK_VERSION}-arm64/lib/vlc/plugins/
-        for f in `ls -F`
-        do
-            VLCMODULECATEGORYNAMES="$f $VLCMODULECATEGORYNAMES"
-            for i in `ls $f*.a`
-            do
-                VLCMODULES="$i $VLCMODULES"
-            done
-        done
-        spopd
-
-        spushd ${VLCROOT}/build-"$OSSTYLE"os-arm64/contrib/arm64-"$OSSTYLE"os/lib
-        for i in `ls *.a`
-        do
-            CONTRIBLIBS="$i $CONTRIBLIBS"
-        done
-        spopd
+    if [ -d ${VLCROOT}/build-${OSSTYLE}os-armv7 ];then
+        VLCSTATICLIBS+=" ${VLCROOT}/build-${OSSTYLE}os-armv7/${VLCSTATICLIBRARYNAME}"
+        VLCSTATICMODULELIST="${VLCROOT}/build-${OSSTYLE}os-armv7/static-lib/static-module-list.c"
     fi
-
-    if [ "$OSSTYLE" != "appletv" ];then
-        # if we have an armv7(s) slice, we should search for and include NEON modules
-        if [ -d ${VLCROOT}/build-"$OSSTYLE"os-armv7 ];then
-            spushd ${VLCROOT}/build-"$OSSTYLE"os-armv7/vlc-"$OSSTYLE"os${SDK_VERSION}-armv7/lib/vlc/plugins/
-            for f in `ls -F`
-            do
-                for i in `ls $f*.a | grep neon`
-                do
-                    VLCNEONMODULES="$i $VLCNEONMODULES"
-                done
-            done
-            spopd
-        fi
+    if [ -d ${VLCROOT}/build-${OSSTYLE}os-armv7s ];then
+        VLCSTATICLIBS+=" ${VLCROOT}/build-${OSSTYLE}os-armv7s/${VLCSTATICLIBRARYNAME}"
+        VLCSTATICMODULELIST="${VLCROOT}/build-${OSSTYLE}os-armv7s/static-lib/static-module-list.c"
     fi
-
-    # x86_64 got the lowest number of modules, so we iterate here
-    if [ -d ${VLCROOT}/build-"$OSSTYLE"simulator-x86_64 ];then
-        if [ "$OSSTYLE" = "iphone" ];then
-            if [ "$FARCH" = "all" ];then
-                SIMULATORARCHS="x86_64 i386"
-            fi
-        fi
-        if [ "$OSSTYLE" = "appletv" ];then
-            if [ "$FARCH" = "all" ];then
-                DEVICEARCHS="x86_64"
-            fi
-        fi
-        VLCMODULES=""
-        CONTRIBLIBS=""
-        VLCMODULECATEGORYNAMES=""
-
-        spushd ${VLCROOT}/build-"$OSSTYLE"simulator-x86_64/vlc-"$OSSTYLE"simulator${SDK_VERSION}-x86_64/lib/vlc/plugins/
-        for f in `ls -F`
-        do
-            VLCMODULECATEGORYNAMES="$f $VLCMODULECATEGORYNAMES"
-            for i in `ls $f*.a`
-            do
-                VLCMODULES="$i $VLCMODULES"
-            done
-        done
-        spopd
-
-        spushd ${VLCROOT}/build-"$OSSTYLE"simulator-x86_64/contrib/x86_64-"$OSSTYLE"simulator${SDK_VERSION}/lib
-        for i in `ls *.a`
-        do
-            CONTRIBLIBS="$i $CONTRIBLIBS"
-        done
-        spopd
+    if [ -d ${VLCROOT}/build-${OSSTYLE}simulator-x86_64 ];then
+        VLCSTATICLIBS+=" ${VLCROOT}/build-${OSSTYLE}simulator-x86_64/${VLCSTATICLIBRARYNAME}"
+        VLCSTATICMODULELIST="${VLCROOT}/build-${OSSTYLE}simulator-x86_64/static-lib/static-module-list.c"
     fi
-
-    if [ "$OSSTYLE" = "MacOSX" ]; then
-        if [ -d ${VLCROOT}/install-"$OSSTYLE" ];then
-            spushd ${VLCROOT}/install-"$OSSTYLE"
-                echo `pwd`
-                echo "macOS: $arch"
-                spushd $arch/lib/vlc/plugins
-                    for i in `ls *.a`
-                    do
-                        VLCMODULES="$i $VLCMODULES"
-                    done
-                spopd # $actual_arch/lib/vlc/plugins
-            spopd # vlc-install-"$OSSTYLE"
-        fi
+    if [ -d ${VLCROOT}/build-${OSSTYLE}simulator-i386 ];then
+        VLCSTATICLIBS+=" ${VLCROOT}/build-${OSSTYLE}simulator-i386/${VLCSTATICLIBRARYNAME}"
+        VLCSTATICMODULELIST="${VLCROOT}/build-${OSSTYLE}simulator-i386/static-lib/static-module-list.c"
+    fi
+    if [ -d ${VLCROOT}/build-${OSSTYLE}-x86_64 ];then
+        VLCSTATICLIBS+=" ${VLCROOT}/build-${OSSTYLE}-x86_64/${VLCSTATICLIBRARYNAME}"
+        VLCSTATICMODULELIST="${VLCROOT}/build-${OSSTYLE}-x86_64/static-lib/static-module-list.c"
     fi
 
     spushd ${VLCROOT}
 
-    # add missing destination folders based on module category names
-    for i in $VLCMODULECATEGORYNAMES
-    do
-        mkdir install-$OSSTYLE/plugins/$i
-    done
-
-    # lipo all the vlc libraries and its plugins
-    if [ "$OSSTYLE" != "MacOSX" ]; then
-        doVLCLipo "" "libvlc.a" "no" $OSSTYLE
-        doVLCLipo "" "libvlccore.a" "no" $OSSTYLE
-        doVLCLipo "vlc/" "libcompat.a" "no" $OSSTYLE
-        for i in $VLCMODULES
-        do
-            doVLCLipo "vlc/plugins/" $i "yes" $OSSTYLE
-        done
-
-        # lipo contrib libraries
-        for i in $CONTRIBLIBS
-        do
-            doContribLipo $i $OSSTYLE
-        done
-
-        if [ "$OSSTYLE" != "AppleTV" ]; then
-            # lipo the remaining NEON plugins
-            DEVICEARCHS=""
-            for i in armv7 armv7s; do
-                local iarch="`get_arch $i`"
-                if [ "$FARCH" == "all" -o "$FARCH" = "$iarch" ];then
-                    DEVICEARCHS="$DEVICEARCHS $iarch"
-                fi
-            done
-            SIMULATORARCHS=""
-            for i in $VLCNEONMODULES
-            do
-                doVLCLipo "vlc/plugins/" $i "yes" $OSSTYLE
-            done
-        fi
-    fi
-    spopd
-
-    # create module list
-    info "creating module list"
-    echo "// This file is autogenerated by $(basename $0)\n\n" > $PROJECT_DIR/Resources/MobileVLCKit/vlc-plugins-$OSSTYLE.h
-    echo "// This file is autogenerated by $(basename $0)\n\n" > $PROJECT_DIR/Resources/MobileVLCKit/vlc-plugins-$OSSTYLE.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+="${VLCROOT}/install-$OSSTYLE/contrib/$file "
-    done
-
-    for file in $VLCMODULES
-    do
-        symbols=$(nm -g -arch $actual_arch ${VLCROOT}/install-$OSSTYLE/plugins/$file)
-        entryname=$(get_symbol "$symbols" _)
-        DEFINITIONS+="int $entryname (int (*)(void *, void *, int, ...), void *);\n";
-        BUILTINS+=" $entryname,\n"
-        LDFLAGS+="${VLCROOT}/install-$OSSTYLE/plugins/$file "
-        info "...$entryname"
-    done;
-
-    # we only have ARM NEON modules for 32bit so this is limited to iOS
-    if [ "$OSSTYLE" = "iphone" ]; then
-        BUILTINS+="#ifdef __arm__\n"
-        DEFINITIONS+="#ifdef __arm__\n"
-        for file in $VLCNEONMODULES
-        do
-            symbols=$(nm -g -arch $actual_arch ${VLCROOT}/install-$OSSTYLE/plugins/$file)
-            entryname=$(get_symbol "$symbols" _)
-            DEFINITIONS+="int $entryname (int (*)(void *, void *, int, ...), void *);\n";
-            BUILTINS+=" $entryname,\n"
-            LDFLAGS+="${VLCROOT}/install-$OSSTYLE/plugins/$file "
-            info "...$entryname"
-        done;
-        BUILTINS+="#endif\n"
-        DEFINITIONS+="#endif\n"
-    fi
+    lipo $VLCSTATICLIBS -create -output install-$OSSTYLE/libvlc-full-static.a
 
-    BUILTINS="$BUILTINS NULL\n};\n"
+    cp $VLCSTATICMODULELIST $PROJECT_DIR/Resources/MobileVLCKit/vlc-plugins-$OSSTYLE.h
 
-    echo "$DEFINITIONS\n$BUILTINS" >> $PROJECT_DIR/Resources/MobileVLCKit/vlc-plugins-$OSSTYLE.h
-    echo "VLC_PLUGINS_LDFLAGS=$LDFLAGS" >> $PROJECT_DIR/Resources/MobileVLCKit/vlc-plugins-$OSSTYLE.xcconfig
+    spopd # VLCROOT
 }
 
-while getopts "hvsfbdxntlk:a:e:" OPTION
+while getopts "hvsfbrxntlk:a:e:" OPTION
 do
      case $OPTION in
          h)
@@ -530,7 +299,7 @@ do
              BUILD_SIMULATOR=yes
              BUILD_STATIC_FRAMEWORK=yes
              ;;
-         d)  CONFIGURATION="Release"
+         r)  CONFIGURATION="Release"
              DISABLEDEBUG=yes
              ;;
          n)
@@ -747,7 +516,8 @@ fi
 fi
 if [ "$BUILD_DYNAMIC_FRAMEWORK" != "no" ]; then
 if [ "$MACOS" = "yes" ]; then
-    info "Building VLCKit.framework"
+    CURRENT_DIR=`pwd`
+    info "Building VLCKit.framework in ${CURRENT_DIR}"
 
     buildxcodeproj VLCKit "VLCKit" "macosx"