diff --git a/.gitignore b/.gitignore index d2bd1744b..57e16863b 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,5 @@ Classes/LinphoneIOSVersion.h Pods/ build test-reports +WORK +Makefile diff --git a/.gitmodules b/.gitmodules index 5033cf8fc..8cfc3ac8c 100644 --- a/.gitmodules +++ b/.gitmodules @@ -85,3 +85,7 @@ [submodule "submodules/cmake-builder"] path = submodules/cmake-builder url = git://git.linphone.org/linphone-cmake-builder.git +[submodule "submodules/externals/vo-amrwbenc"] + path = submodules/externals/vo-amrwbenc + url = git://git.code.sf.net/p/opencore-amr/vo-amrwbenc + ignore = dirty diff --git a/linphone.xcodeproj/project.pbxproj b/linphone.xcodeproj/project.pbxproj index 18e4888cd..cc23c79d1 100755 --- a/linphone.xcodeproj/project.pbxproj +++ b/linphone.xcodeproj/project.pbxproj @@ -8,7 +8,8 @@ /* Begin PBXBuildFile section */ 045B5CB318D72E9A0088350C /* libbzrtp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 045B5CB218D72E9A0088350C /* libbzrtp.a */; }; - 15017E701773578400784ACB /* libxml2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 15017E6F1773578400784ACB /* libxml2.a */; }; + 152F22341B15E83B008C0621 /* libilbcrfc3951.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 152F22331B15E83B008C0621 /* libilbcrfc3951.a */; }; + 152F22361B15E889008C0621 /* libxml2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 152F22351B15E889008C0621 /* libxml2.dylib */; }; 1560821F18EEF26100765332 /* libmsopenh264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 1560821E18EEF26100765332 /* libmsopenh264.a */; }; 1599105316F746B2007BF52B /* route_bluetooth_off_default_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = 1599104316F746B2007BF52B /* route_bluetooth_off_default_landscape.png */; }; 1599105516F746B2007BF52B /* route_bluetooth_off_disabled_landscape.png in Resources */ = {isa = PBXBuildFile; fileRef = 1599104416F746B2007BF52B /* route_bluetooth_off_disabled_landscape.png */; }; @@ -42,6 +43,8 @@ 15AF3C9A16F37A5D00FC52EC /* routes_disabled.png in Resources */ = {isa = PBXBuildFile; fileRef = 15AF3C9516F37A5D00FC52EC /* routes_disabled.png */; }; 15AF3C9C16F37A5D00FC52EC /* routes_over.png in Resources */ = {isa = PBXBuildFile; fileRef = 15AF3C9616F37A5D00FC52EC /* routes_over.png */; }; 15AF3C9E16F37A5D00FC52EC /* routes_selected.png in Resources */ = {isa = PBXBuildFile; fileRef = 15AF3C9716F37A5D00FC52EC /* routes_selected.png */; }; + 15F728731B16FF8B00A1C901 /* libilbcrfc3951.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 152F22331B15E83B008C0621 /* libilbcrfc3951.a */; }; + 15F728741B16FF9A00A1C901 /* libxml2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 152F22351B15E889008C0621 /* libxml2.dylib */; }; 1D3623260D0F684500981E51 /* LinphoneAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 1D3623250D0F684500981E51 /* LinphoneAppDelegate.m */; }; 1D60589B0D05DD56006BFB54 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 29B97316FDCFA39411CA2CEA /* main.m */; }; 1D60589F0D05DD5A006BFB54 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1D30AB110D05D00D00671497 /* Foundation.framework */; }; @@ -59,7 +62,6 @@ 22276E8513C73D3100210156 /* libswscale.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22276E8213C73D3100210156 /* libswscale.a */; }; 22276E8713C73D8A00210156 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22276E8613C73D8A00210156 /* CoreVideo.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 22276E8913C73DC000210156 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22276E8813C73DC000210156 /* CoreMedia.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; - 223148E41178A08200637D6A /* libilbc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 223148E31178A08200637D6A /* libilbc.a */; }; 223148E61178A09900637D6A /* libmsilbc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 223148E51178A09900637D6A /* libmsilbc.a */; }; 2234C8E915EE2F7F00E18E83 /* chat_message_delivered.png in Resources */ = {isa = PBXBuildFile; fileRef = 2234C8E715EE2F7F00E18E83 /* chat_message_delivered.png */; }; 2234C8EB15EE2F7F00E18E83 /* chat_message_not_delivered.png in Resources */ = {isa = PBXBuildFile; fileRef = 2234C8E815EE2F7F00E18E83 /* chat_message_not_delivered.png */; }; @@ -73,8 +75,6 @@ 224567C2107B968500F10948 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 224567C1107B968500F10948 /* AVFoundation.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 2248E90E12F7E4CF00220D9C /* UIDigitButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 2248E90D12F7E4CF00220D9C /* UIDigitButton.m */; }; 22509042196BD902007863F6 /* libopenh264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22509041196BD902007863F6 /* libopenh264.a */; }; - 225CB2FA11ABB76400628906 /* linphone-banner.png in Resources */ = {isa = PBXBuildFile; fileRef = 225CB2F911ABB76400628906 /* linphone-banner.png */; }; - 226183AD1472527D0037138E /* libSKP_SILK_SDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226183AA1472527D0037138E /* libSKP_SILK_SDK.a */; }; 226183AE1472527D0037138E /* libsrtp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226183AB1472527D0037138E /* libsrtp.a */; }; 226183B0147259670037138E /* libmssilk.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226183AF147259670037138E /* libmssilk.a */; }; 2264B6D211200342002C2C53 /* SystemConfiguration.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2264B6D111200342002C2C53 /* SystemConfiguration.framework */; }; @@ -88,8 +88,6 @@ 228697C411AC29B800E9E0CA /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 228697C311AC29B800E9E0CA /* CFNetwork.framework */; settings = {ATTRIBUTES = (Weak, ); }; }; 22968A5F12F875C600588287 /* UISpeakerButton.m in Sources */ = {isa = PBXBuildFile; fileRef = 22968A5E12F875C600588287 /* UISpeakerButton.m */; }; 22A10F3B11F8960300373793 /* libortp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 220FAD2C10765B400068D98F /* libortp.a */; }; - 22AA8AFD13D7125600B30535 /* libx264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22AA8AFB13D7125500B30535 /* libx264.a */; }; - 22AA8AFE13D7125600B30535 /* libmsx264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22AA8AFC13D7125500B30535 /* libmsx264.a */; }; 22AA8B0113D83F6300B30535 /* UICamSwitch.m in Sources */ = {isa = PBXBuildFile; fileRef = 22AA8B0013D83F6300B30535 /* UICamSwitch.m */; }; 22AF73C21754C0D100BE8398 /* libopus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22AF73C11754C0D000BE8398 /* libopus.a */; }; 22B5EFA310CE50BD00777D97 /* AddressBookUI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 22B5EFA210CE50BD00777D97 /* AddressBookUI.framework */; }; @@ -737,26 +735,21 @@ F0BB8C191936245300974404 /* libbellesip.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 223CA7E516D9255800EF1BEC /* libbellesip.a */; }; F0BB8C1A1936245300974404 /* libbzrtp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 045B5CB218D72E9A0088350C /* libbzrtp.a */; }; F0BB8C1B1936245300974404 /* libgsm.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 220FAD2910765B400068D98F /* libgsm.a */; }; - F0BB8C1C1936245300974404 /* libilbc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 223148E31178A08200637D6A /* libilbc.a */; }; F0BB8C1D1936245300974404 /* libmsamr.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226F2ED51344B0EF00F6EF27 /* libmsamr.a */; }; F0BB8C1E1936245300974404 /* libmsbcg729.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226CDADE14E2D0B800513B67 /* libmsbcg729.a */; }; F0BB8C1F1936245300974404 /* libmsilbc.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 223148E51178A09900637D6A /* libmsilbc.a */; }; F0BB8C201936245300974404 /* libmssilk.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226183AF147259670037138E /* libmssilk.a */; }; - F0BB8C211936245300974404 /* libmsx264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22AA8AFC13D7125500B30535 /* libmsx264.a */; }; F0BB8C221936245300974404 /* libopencore-amrnb.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226F2ED41344B0EF00F6EF27 /* libopencore-amrnb.a */; }; F0BB8C231936245300974404 /* libopencore-amrwb.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226F2ED31344B0EF00F6EF27 /* libopencore-amrwb.a */; }; F0BB8C241936245300974404 /* libopus.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22AF73C11754C0D000BE8398 /* libopus.a */; }; F0BB8C251936245300974404 /* libortp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 220FAD2C10765B400068D98F /* libortp.a */; }; F0BB8C261936245300974404 /* libpolarssl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 57B0E35F173C010400A476B8 /* libpolarssl.a */; }; - F0BB8C271936245300974404 /* libSKP_SILK_SDK.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226183AA1472527D0037138E /* libSKP_SILK_SDK.a */; }; F0BB8C281936245300974404 /* libspeex.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 220FAD2F10765B400068D98F /* libspeex.a */; }; F0BB8C291936245300974404 /* libspeexdsp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 220FAD3010765B400068D98F /* libspeexdsp.a */; }; F0BB8C2A1936245300974404 /* libsrtp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 226183AB1472527D0037138E /* libsrtp.a */; }; F0BB8C2B1936245300974404 /* libswscale.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22276E8213C73D3100210156 /* libswscale.a */; }; F0BB8C2C1936245300974404 /* libtunnel.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D30BF33216A427BC00AF0026 /* libtunnel.a */; }; F0BB8C2D1936245300974404 /* libvpx.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7066FC0B13E830E400EFC6DC /* libvpx.a */; }; - F0BB8C2E1936245300974404 /* libx264.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 22AA8AFB13D7125500B30535 /* libx264.a */; }; - F0BB8C2F1936245300974404 /* libxml2.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 15017E6F1773578400784ACB /* libxml2.a */; }; F0BB8C301936246600974404 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 2274402E106F335E006EC466 /* AudioToolbox.framework */; }; F0BB8C331936247C00974404 /* libsqlite3.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D32B6E2E15A5C0AC0033019F /* libsqlite3.dylib */; }; F0BB8C35193624C800974404 /* libresolv.9.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F0BB8C34193624C800974404 /* libresolv.9.dylib */; }; @@ -899,6 +892,8 @@ /* Begin PBXFileReference section */ 045B5CB218D72E9A0088350C /* libbzrtp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libbzrtp.a; path = "liblinphone-sdk/apple-darwin/lib/libbzrtp.a"; sourceTree = ""; }; 15017E6F1773578400784ACB /* libxml2.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libxml2.a; path = "liblinphone-sdk/apple-darwin/lib/libxml2.a"; sourceTree = ""; }; + 152F22331B15E83B008C0621 /* libilbcrfc3951.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libilbcrfc3951.a; path = "liblinphone-sdk/apple-darwin/lib/libilbcrfc3951.a"; sourceTree = ""; }; + 152F22351B15E889008C0621 /* libxml2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libxml2.dylib; path = usr/lib/libxml2.dylib; sourceTree = SDKROOT; }; 1560821E18EEF26100765332 /* libmsopenh264.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmsopenh264.a; path = "liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins/libmsopenh264.a"; sourceTree = ""; }; 1599104316F746B2007BF52B /* route_bluetooth_off_default_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = route_bluetooth_off_default_landscape.png; path = Resources/route_bluetooth_off_default_landscape.png; sourceTree = ""; }; 1599104416F746B2007BF52B /* route_bluetooth_off_disabled_landscape.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = route_bluetooth_off_disabled_landscape.png; path = Resources/route_bluetooth_off_disabled_landscape.png; sourceTree = ""; }; @@ -974,7 +969,6 @@ 2248E90C12F7E4CF00220D9C /* UIDigitButton.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UIDigitButton.h; sourceTree = ""; }; 2248E90D12F7E4CF00220D9C /* UIDigitButton.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UIDigitButton.m; sourceTree = ""; }; 22509041196BD902007863F6 /* libopenh264.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libopenh264.a; path = "liblinphone-sdk/apple-darwin/lib/libopenh264.a"; sourceTree = ""; }; - 225CB2F911ABB76400628906 /* linphone-banner.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = "linphone-banner.png"; path = "liblinphone-sdk/apple-darwin/share/pixmaps/linphone/linphone-banner.png"; sourceTree = ""; }; 226183AA1472527D0037138E /* libSKP_SILK_SDK.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libSKP_SILK_SDK.a; path = "liblinphone-sdk/apple-darwin/lib/libSKP_SILK_SDK.a"; sourceTree = ""; }; 226183AB1472527D0037138E /* libsrtp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libsrtp.a; path = "liblinphone-sdk/apple-darwin/lib/libsrtp.a"; sourceTree = ""; }; 226183AF147259670037138E /* libmssilk.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libmssilk.a; path = "liblinphone-sdk/apple-darwin/lib/mediastreamer/plugins/libmssilk.a"; sourceTree = ""; }; @@ -1871,11 +1865,12 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 152F22361B15E889008C0621 /* libxml2.dylib in Frameworks */, + 152F22341B15E83B008C0621 /* libilbcrfc3951.a in Frameworks */, F0B026F31AA710AF00FF49F7 /* libiconv.dylib in Frameworks */, F05BAA621A5D594E00411815 /* libz.dylib in Frameworks */, 1560821F18EEF26100765332 /* libmsopenh264.a in Frameworks */, 22509042196BD902007863F6 /* libopenh264.a in Frameworks */, - 15017E701773578400784ACB /* libxml2.a in Frameworks */, 22AF73C21754C0D100BE8398 /* libopus.a in Frameworks */, 57B0E360173C010400A476B8 /* libpolarssl.a in Frameworks */, 223CA7E616D9255800EF1BEC /* libantlr3c.a in Frameworks */, @@ -1909,14 +1904,12 @@ 22276E8313C73D3100210156 /* libavcodec.a in Frameworks */, 22276E8413C73D3100210156 /* libavutil.a in Frameworks */, 220FAD3210765B400068D98F /* libgsm.a in Frameworks */, - 223148E41178A08200637D6A /* libilbc.a in Frameworks */, F476004B147AAF2800FFF19B /* liblinphone.a in Frameworks */, D37EE10916032DA4003608A6 /* libmediastreamer_base.a in Frameworks */, D37EE10A16032DA4003608A6 /* libmediastreamer_voip.a in Frameworks */, 226F2ED81344B0EF00F6EF27 /* libmsamr.a in Frameworks */, 223148E61178A09900637D6A /* libmsilbc.a in Frameworks */, 226183B0147259670037138E /* libmssilk.a in Frameworks */, - 22AA8AFE13D7125600B30535 /* libmsx264.a in Frameworks */, 22A10F3B11F8960300373793 /* libortp.a in Frameworks */, 226F2ED71344B0EF00F6EF27 /* libopencore-amrnb.a in Frameworks */, 226F2ED61344B0EF00F6EF27 /* libopencore-amrwb.a in Frameworks */, @@ -1924,10 +1917,8 @@ 220FAD3810765B400068D98F /* libspeex.a in Frameworks */, 220FAD3910765B400068D98F /* libspeexdsp.a in Frameworks */, 226183AE1472527D0037138E /* libsrtp.a in Frameworks */, - 226183AD1472527D0037138E /* libSKP_SILK_SDK.a in Frameworks */, 22276E8513C73D3100210156 /* libswscale.a in Frameworks */, 7066FC0C13E830E400EFC6DC /* libvpx.a in Frameworks */, - 22AA8AFD13D7125600B30535 /* libx264.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1946,6 +1937,8 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 15F728741B16FF9A00A1C901 /* libxml2.dylib in Frameworks */, + 15F728731B16FF8B00A1C901 /* libilbcrfc3951.a in Frameworks */, F0A54B0C1AD56F4600C22733 /* libc++.dylib in Frameworks */, F0A54B0D1AD56F4600C22733 /* libstdc++.dylib in Frameworks */, F08D468D1AA86849001E8CB5 /* libiconv.dylib in Frameworks */, @@ -1963,7 +1956,6 @@ F0BB8C1A1936245300974404 /* libbzrtp.a in Frameworks */, F0BB8C121936240300974404 /* libcunit.a in Frameworks */, F0BB8C1B1936245300974404 /* libgsm.a in Frameworks */, - F0BB8C1C1936245300974404 /* libilbc.a in Frameworks */, F0BB8C131936242400974404 /* liblinphone.a in Frameworks */, F0BB8C10193623F300974404 /* liblinphonetester.a in Frameworks */, F0BB8C141936242400974404 /* libmediastreamer_base.a in Frameworks */, @@ -1972,21 +1964,17 @@ F0BB8C1E1936245300974404 /* libmsbcg729.a in Frameworks */, F0BB8C1F1936245300974404 /* libmsilbc.a in Frameworks */, F0BB8C201936245300974404 /* libmssilk.a in Frameworks */, - F0BB8C211936245300974404 /* libmsx264.a in Frameworks */, F0BB8C221936245300974404 /* libopencore-amrnb.a in Frameworks */, F0BB8C231936245300974404 /* libopencore-amrwb.a in Frameworks */, F0BB8C241936245300974404 /* libopus.a in Frameworks */, F0BB8C251936245300974404 /* libortp.a in Frameworks */, F0BB8C261936245300974404 /* libpolarssl.a in Frameworks */, - F0BB8C271936245300974404 /* libSKP_SILK_SDK.a in Frameworks */, F0BB8C281936245300974404 /* libspeex.a in Frameworks */, F0BB8C291936245300974404 /* libspeexdsp.a in Frameworks */, F0BB8C2A1936245300974404 /* libsrtp.a in Frameworks */, F0BB8C2B1936245300974404 /* libswscale.a in Frameworks */, F0BB8C2C1936245300974404 /* libtunnel.a in Frameworks */, F0BB8C2D1936245300974404 /* libvpx.a in Frameworks */, - F0BB8C2E1936245300974404 /* libx264.a in Frameworks */, - F0BB8C2F1936245300974404 /* libxml2.a in Frameworks */, F0BB8BD81936208100974404 /* UIKit.framework in Frameworks */, F0BB8BD61936208100974404 /* Foundation.framework in Frameworks */, ); @@ -2270,6 +2258,8 @@ 29B97323FDCFA39411CA2CEA /* Frameworks */ = { isa = PBXGroup; children = ( + 152F22351B15E889008C0621 /* libxml2.dylib */, + 152F22331B15E83B008C0621 /* libilbcrfc3951.a */, F0FF66AA1ACAEEB0008A4486 /* IOKit.framework */, F0B026F21AA710AF00FF49F7 /* libiconv.dylib */, F05BAA611A5D594E00411815 /* libz.dylib */, @@ -2781,7 +2771,6 @@ D3432A5D158A4446001C6B0B /* led_error.png */, D3432A6F158A45AF001C6B0B /* led_inprogress.png */, D3012CC31610467D007CD926 /* linphone_logo.png */, - 225CB2F911ABB76400628906 /* linphone-banner.png */, D3EA5416159858A80037DC6B /* list_delete_default.png */, D3EA5417159858A80037DC6B /* list_delete_over.png */, D354981815876FE7000081D8 /* list_details_default.png */, @@ -3338,7 +3327,6 @@ files = ( 22F254811073D99800AC9B3F /* ringback.wav in Resources */, 2237D4091084D7A9001383EE /* ring.wav in Resources */, - 225CB2FA11ABB76400628906 /* linphone-banner.png in Resources */, 636316D11A1DEBCB0009B839 /* AboutViewController.xib in Resources */, 2242E313125235120061DDCE /* ring.caf in Resources */, D38187C915FE346400C3EDCA /* FirstLoginViewController.xib in Resources */, diff --git a/prepare.py b/prepare.py index 6c3601bac..50dd95b81 100755 --- a/prepare.py +++ b/prepare.py @@ -24,48 +24,328 @@ import argparse import os +import re +import shutil import sys +sys.dont_write_bytecode = True sys.path.insert(0, 'submodules/cmake-builder') import prepare -platforms = ['all', 'devices', 'simulators', 'armv7', 'arm64', 'i386', 'x86_64'] +class IOSTarget(prepare.Target): + def __init__(self, arch): + prepare.Target.__init__(self, 'ios-' + arch) + current_path = os.path.dirname(os.path.realpath(__file__)) + self.config_file = 'configs/config-ios-' + arch + '.cmake' + self.toolchain_file = 'toolchains/toolchain-ios-' + arch + '.cmake' + self.output = 'liblinphone-sdk/' + arch + '-apple-darwin.ios' + self.additional_args = [ + '-DLINPHONE_BUILDER_EXTERNAL_SOURCE_PATH=' + current_path + '/submodules' + ] + + def clean(self): + if os.path.isdir('WORK'): + shutil.rmtree('WORK', ignore_errors=False, onerror=self.handle_remove_read_only) + if os.path.isdir('liblinphone-sdk'): + shutil.rmtree('liblinphone-sdk', ignore_errors=False, onerror=self.handle_remove_read_only) + + +class IOSi386Target(IOSTarget): + def __init__(self): + IOSTarget.__init__(self, 'i386') + +class IOSx8664Target(IOSTarget): + def __init__(self): + IOSTarget.__init__(self, 'x86_64') + +class IOSarmv7Target(IOSTarget): + def __init__(self): + IOSTarget.__init__(self, 'armv7') + +class IOSarm64Target(IOSTarget): + def __init__(self): + IOSTarget.__init__(self, 'arm64') + + +targets = {} +targets[ 'i386'] = IOSi386Target() +targets['x86_64'] = IOSx8664Target() +targets[ 'armv7'] = IOSarmv7Target() +targets[ 'arm64'] = IOSarm64Target() + +archs_device = ['arm64', 'armv7'] +archs_simu = ['i386', 'x86_64'] +platforms = ['all', 'devices', 'simulators'] + archs_device + archs_simu + +class PlatformListAction(argparse.Action): + def __call__(self, parser, namespace, values, option_string=None): + if values: + for value in values: + if value not in platforms: + message = ("invalid platform: {0!r} (choose from {1})".format(value, ', '.join([repr(platform) for platform in platforms]))) + raise argparse.ArgumentError(self, message) + setattr(namespace, self.dest, values) + +def warning(platforms): + gpl_third_parties_enabled = False + regex = re.compile("^ENABLE_GPL_THIRD_PARTIES:BOOL=ON") + f = open('WORK/ios-{arch}/cmake/CMakeCache.txt'.format(arch=platforms[0]), 'r') + for line in f: + if regex.match(line): + gpl_third_parties_enabled = True + break + f.close() + + if gpl_third_parties_enabled: + print(""" +*************************************************************************** +*************************************************************************** +***** CAUTION, this liblinphone SDK is built using 3rd party GPL code ***** +***** Even if you acquired a proprietary license from Belledonne ***** +***** Communications, this SDK is GPL and GPL only. ***** +***** To disable 3rd party gpl code, please use: ***** +***** $ ./prepare.py -DENABLE_GPL_THIRD_PARTIES=NO ***** +*************************************************************************** +*************************************************************************** +""") + else: + print(""" +***************************************************************** +***************************************************************** +***** Linphone SDK without 3rd party GPL software ***** +***** If you acquired a proprietary license from Belledonne ***** +***** Communications, this SDK can be used to create ***** +***** a proprietary linphone-based application. ***** +***************************************************************** +***************************************************************** +""") def main(argv = None): if argv is None: argv = sys.argv argparser = argparse.ArgumentParser(description="Prepare build of Linphone and its dependencies.") - argparser.add_argument('-c', '--clean', help="Clean a previous build instead of preparing a build.", action='store_true') - argparser.add_argument('-C', '--veryclean', help="Clean a previous build and its installation directory.", action='store_true') + argparser.add_argument('-c', '-C', '--clean', help="Clean a previous build instead of preparing a build.", action='store_true') argparser.add_argument('-d', '--debug', help="Prepare a debug build.", action='store_true') argparser.add_argument('-f', '--force', help="Force preparation, even if working directory already exist.", action='store_true') argparser.add_argument('-L', '--list-cmake-variables', help="List non-advanced CMake cache variables.", action='store_true', dest='list_cmake_variables') - argparser.add_argument('platform', choices=platforms, help="The platform to build for.") + argparser.add_argument('platform', nargs='*', action=PlatformListAction, default=['all'], help="The platform to build for (default is all), one of: {0}.".format(', '.join([repr(platform) for platform in platforms]))) args, additional_args = argparser.parse_known_args() selected_platforms = [] - if args.platform == 'all': - selected_platforms += ['armv7', 'arm64', 'i386', 'x86_64'] - elif args.platform == 'devices': - selected_platforms += ['armv7', 'arm64'] - elif args.platform == 'simulators': - selected_platforms += ['i386', 'x86_64'] - else: - selected_platforms += [args.platform] + for platform in args.platform: + if platform == 'all': + selected_platforms += archs_device + archs_simu + elif platform == 'devices': + selected_platforms += archs_device + elif platform == 'simulators': + selected_platforms += archs_simu + else: + selected_platforms += [platform] + selected_platforms = list(set(selected_platforms)) retcode = 0 + makefile_platforms = [] for platform in selected_platforms: - target = prepare.targets['ios-' + platform] + target = targets[platform] - if args.veryclean: - target.veryclean() - elif args.clean: + if args.clean: target.clean() else: + if args.debug: + additional_args += ["-DENABLE_DEBUG_LOGS=YES"] retcode = prepare.run(target, args.debug, False, args.list_cmake_variables, args.force, additional_args) if retcode != 0: return retcode + makefile_platforms += [platform] + + if makefile_platforms: + packages = os.listdir('WORK/ios-' + makefile_platforms[0] + '/Build') + packages.sort() + arch_targets = "" + for arch in makefile_platforms: + arch_targets += """ +{arch}: all-{arch} + +{arch}-build: + @for package in $(packages); do \\ + $(MAKE) {arch}-build-$$package; \\ + done + +{arch}-clean: + @for package in $(packages); do \\ + $(MAKE) {arch}-clean-$$package; \\ + done + +{arch}-veryclean: + @for package in $(packages); do \\ + $(MAKE) {arch}-veryclean-$$package; \\ + done + +{arch}-build-%: + rm -f WORK/ios-{arch}/Stamp/EP_$*/EP_$*-update; \\ + $(MAKE) -C WORK/ios-{arch}/cmake EP_$* + +{arch}-clean-%: + $(MAKE) -C WORK/ios-{arch}/Build/$* clean; \\ + rm -f WORK/ios-{arch}/Stamp/EP_$*/EP_$*-build; \\ + rm -f WORK/ios-{arch}/Stamp/EP_$*/EP_$*-install; + +{arch}-veryclean-%: + cat WORK/ios-{arch}/Build/$*/install_manifest.txt | xargs rm; \\ + rm -rf WORK/ios-{arch}/Build/$*/*; \\ + rm -f WORK/ios-{arch}/Stamp/EP_$*/*; \\ + echo "Run 'make {arch}-build-$*' to rebuild $* correctly."; + +{arch}-veryclean-ffmpeg: + $(MAKE) -C WORK/ios-{arch}/Build/ffmpeg uninstall; \\ + rm -rf WORK/ios-{arch}/Build/ffmpeg/*; \\ + rm -f WORK/ios-{arch}/Stamp/EP_ffmpeg/*; \\ + echo "Run 'make {arch}-build-ffmpeg' to rebuild ffmpeg correctly."; + +{arch}-clean-openh264: + cd WORK/ios-{arch}/Build/openh264; \\ + $(MAKE) -f ../../../../submodules/externals/openh264/Makefile clean; \\ + rm -f WORK/ios-{arch}/Stamp/EP_openh264/EP_openh264-build; \\ + rm -f WORK/ios-{arch}/Stamp/EP_openh264/EP_openh264-install; + +{arch}-veryclean-openh264: + rm -rf liblinphone-sdk/{arch}-apple-darwin.ios/include/wels; \\ + rm -f liblinphone-sdk/{arch}-apple-darwin.ios/lib/libopenh264.*; \\ + rm -rf WORK/ios-{arch}/Build/openh264/*; \\ + rm -f WORK/ios-{arch}/Stamp/EP_openh264/*; \\ + echo "Run 'make {arch}-build-openh264' to rebuild openh264 correctly."; + +{arch}-veryclean-vpx: + rm -rf liblinphone-sdk/{arch}-apple-darwin.ios/include/vpx; \\ + rm -f liblinphone-sdk/{arch}-apple-darwin.ios/lib/libvpx.*; \\ + rm -rf WORK/ios-{arch}/Build/vpx/*; \\ + rm -f WORK/ios-{arch}/Stamp/EP_vpx/*; \\ + echo "Run 'make {arch}-build-vpx' to rebuild vpx correctly."; +""".format(arch=arch) + multiarch = "" + for arch in makefile_platforms[1:]: + multiarch += \ +""" if test -f "$${arch}_path"; then \\ + all_paths=`echo $$all_paths $${arch}_path`; \\ + all_archs="$$all_archs,{arch}" ; \\ + else \\ + echo "WARNING: archive `basename $$archive` exists in {first_arch} tree but does not exists in {arch} tree: $${arch}_path."; \\ + fi; \\ +""".format(first_arch=makefile_platforms[0], arch=arch) + makefile = """ +archs={archs} +packages={packages} +LINPHONE_IPHONE_VERSION=$(shell git describe --always) + +.PHONY: all + +all: build + +{arch_targets} +all-%: + @for package in $(packages); do \\ + rm -f WORK/ios-$*/Stamp/EP_$$package/EP_$$package-update; \\ + done + $(MAKE) -C WORK/ios-$*/cmake + +build-%: + @for arch in $(archs); do \\ + echo "==== starting build of $* for arch $$arch ===="; \\ + $(MAKE) $$arch-build-$*; \\ + done + +clean-%: + @for arch in $(archs); do \\ + echo "==== starting clean of $* for arch $$arch ===="; \\ + $(MAKE) $$arch-clean-$*; \\ + done + +veryclean-%: + @for arch in $(archs); do \\ + echo "==== starting veryclean of $* for arch $$arch ===="; \\ + $(MAKE) $$arch-veryclean-$*; \\ + done; \\ + echo "Run 'make build-$*' to rebuild $* correctly." + +build: libs sdk + +clean: $(addprefix clean-,$(packages)) + +veryclean: $(addprefix veryclean-,$(packages)) + +libs: $(addprefix all-,$(archs)) + archives=`find liblinphone-sdk/{first_arch}-apple-darwin.ios -name *.a` && \\ + mkdir -p liblinphone-sdk/apple-darwin && \\ + cp -rf liblinphone-sdk/{first_arch}-apple-darwin.ios/include liblinphone-sdk/apple-darwin/. && \\ + cp -rf liblinphone-sdk/{first_arch}-apple-darwin.ios/share liblinphone-sdk/apple-darwin/. && \\ + for archive in $$archives ; do \\ + armv7_path=`echo $$archive | sed -e "s/{first_arch}/armv7/"`; \\ + arm64_path=`echo $$archive | sed -e "s/{first_arch}/arm64/"`; \\ + i386_path=`echo $$archive | sed -e "s/{first_arch}/i386/"`; \\ + x86_64_path=`echo $$archive | sed -e "s/{first_arch}/x86_64/"`; \\ + destpath=`echo $$archive | sed -e "s/-debug//" | sed -e "s/{first_arch}-//" | sed -e "s/\.ios//"`; \\ + all_paths=`echo $$archive`; \\ + all_archs="{first_arch}"; \\ + mkdir -p `dirname $$destpath`; \\ + {multiarch} \\ + echo "[$$all_archs] Mixing `basename $$archive` in $$destpath"; \\ + lipo -create $$all_paths -output $$destpath; \\ + done && \\ + if ! test -f liblinphone-sdk/apple-darwin/lib/libtunnel.a ; then \\ + cp -f submodules/binaries/libdummy.a liblinphone-sdk/apple-darwin/lib/libtunnel.a ; \\ + fi + +ipa: build + xcodebuild -configuration Release \\ + && xcrun -sdk iphoneos PackageApplication -v build/Release-iphoneos/linphone.app -o linphone-iphone.ipa + +sdk: libs + echo "Generating SDK zip file for version $(LINPHONE_IPHONE_VERSION)" + zip -r liblinphone-iphone-sdk-$(LINPHONE_IPHONE_VERSION).zip \\ + liblinphone-sdk/apple-darwin \\ + liblinphone-tutorials \\ + -x liblinphone-tutorials/hello-world/build\* \\ + -x liblinphone-tutorials/hello-world/hello-world.xcodeproj/*.pbxuser \\ + -x liblinphone-tutorials/hello-world/hello-world.xcodeproj/*.mode1v3 + +pull-transifex: + tx pull -af + +push-transifex: + && ./Tools/generate_strings_files.sh && tx push -s -t -f --no-interactive + +zipres: + @tar -czf ios_assets.tar.gz Resources iTunesArtwork + +help: + @echo "(please read the README.md file first)" + @echo "" + @echo "Available architectures: {archs}" + @echo "Available packages: {packages}" + @echo "" + @echo "Available targets:" + @echo "" + @echo " * all : builds all architectures and creates the liblinphone sdk" + @echo " * zipres : creates a tar.gz file with all the resources (images)" + @echo "" + @echo "=== Advanced usage ===" + @echo "" + @echo " * build-[package] : builds the package for all architectures" + @echo " * clean-[package] : clean the package for all architectures" + @echo "" + @echo " * [{arch_opts}]-build-[package] : builds a package for the selected architecture" + @echo " * [{arch_opts}]-clean-[package] : clean the package for the selected architecture" + @echo "" + @echo " * sdk : re-add all generated libraries to the SDK. Use this only after a full build." + @echo " * libs : after a rebuild of a subpackage, will mix the new libs in liblinphone-sdk/apple-darwin directory" +""".format(archs=' '.join(makefile_platforms), arch_opts='|'.join(makefile_platforms), first_arch=makefile_platforms[0], arch_targets=arch_targets, packages=' '.join(packages), multiarch=multiarch) + f = open('Makefile', 'w') + f.write(makefile) + f.close() + warning(makefile_platforms) + elif os.path.isfile('Makefile'): + os.remove('Makefile') return retcode diff --git a/submodules/bcg729 b/submodules/bcg729 index 0a58e95c1..dc37a9a01 160000 --- a/submodules/bcg729 +++ b/submodules/bcg729 @@ -1 +1 @@ -Subproject commit 0a58e95c1d7f7da9035456f2b1bcfa832bfd2d7e +Subproject commit dc37a9a01a9b69f49b6339cd2f5d999fcf584a89 diff --git a/submodules/bzrtp b/submodules/bzrtp index 4a4f757f6..7f0b84802 160000 --- a/submodules/bzrtp +++ b/submodules/bzrtp @@ -1 +1 @@ -Subproject commit 4a4f757f66b02cf8834fd8d7a939bf54b245ad7e +Subproject commit 7f0b84802a6e1d1f99efb95de4d9b460069a3f23 diff --git a/submodules/cmake-builder b/submodules/cmake-builder index 3465dedd6..cf6ad6e18 160000 --- a/submodules/cmake-builder +++ b/submodules/cmake-builder @@ -1 +1 @@ -Subproject commit 3465dedd6607d580572e397216bc73b6921a9cb2 +Subproject commit cf6ad6e18ce9707e8236a6ab2c0fd789bdb9287d diff --git a/submodules/externals/antlr3 b/submodules/externals/antlr3 index 489f375fb..812695383 160000 --- a/submodules/externals/antlr3 +++ b/submodules/externals/antlr3 @@ -1 +1 @@ -Subproject commit 489f375fb391cb70d82b56f509c39cbf7fa0b706 +Subproject commit 812695383316c7227c06df2b30725a9e5e4a11a0 diff --git a/submodules/externals/gsm b/submodules/externals/gsm index 405fb3856..57d904f7f 160000 --- a/submodules/externals/gsm +++ b/submodules/externals/gsm @@ -1 +1 @@ -Subproject commit 405fb3856f0b9e902dcb159ec6a3409ba6e78476 +Subproject commit 57d904f7fdc97e611b4a09ff7753d5d648ff82cd diff --git a/submodules/externals/speex b/submodules/externals/speex index f0bbb55db..415653bfe 160000 --- a/submodules/externals/speex +++ b/submodules/externals/speex @@ -1 +1 @@ -Subproject commit f0bbb55db823234366993ce4b64f2b14ab025260 +Subproject commit 415653bfef10b46d5e7bfa3ad70a68976b77e7b5 diff --git a/submodules/externals/srtp b/submodules/externals/srtp index 4338c102f..37448b2ae 160000 --- a/submodules/externals/srtp +++ b/submodules/externals/srtp @@ -1 +1 @@ -Subproject commit 4338c102f5a4b8f89b7019ed66fb456e3e3359ae +Subproject commit 37448b2aebeb5e9bd2d39d3a82f0721123cdd4a2 diff --git a/submodules/externals/vo-amrwbenc b/submodules/externals/vo-amrwbenc new file mode 160000 index 000000000..080af7540 --- /dev/null +++ b/submodules/externals/vo-amrwbenc @@ -0,0 +1 @@ +Subproject commit 080af7540562e4adfbd3312837fe5fc6771c4cd0 diff --git a/submodules/libilbc-rfc3951 b/submodules/libilbc-rfc3951 index 9ab4928dc..bc20f1196 160000 --- a/submodules/libilbc-rfc3951 +++ b/submodules/libilbc-rfc3951 @@ -1 +1 @@ -Subproject commit 9ab4928dcacaa1ef35a7bdc328d706a4569f29a3 +Subproject commit bc20f11963878a1f32511de59b05490093e5c9b8 diff --git a/submodules/msamr b/submodules/msamr index eb17e35a2..c2a0886a9 160000 --- a/submodules/msamr +++ b/submodules/msamr @@ -1 +1 @@ -Subproject commit eb17e35a22301db309b51bd9d458fb00972bd4c3 +Subproject commit c2a0886a9350004e3da94d968cae9978c7472a9d diff --git a/submodules/msilbc b/submodules/msilbc index afe533687..b5a2b0702 160000 --- a/submodules/msilbc +++ b/submodules/msilbc @@ -1 +1 @@ -Subproject commit afe5336871be478f54e794d4f649e2c1f18dcaff +Subproject commit b5a2b070259ef0c4f404fa8ca87752b8b1259d76 diff --git a/submodules/msopenh264 b/submodules/msopenh264 index 5a8473c09..172e97a83 160000 --- a/submodules/msopenh264 +++ b/submodules/msopenh264 @@ -1 +1 @@ -Subproject commit 5a8473c091d05d9eed67febdd555955f0b925900 +Subproject commit 172e97a83aa2a868fd3dbbd6e7d57ad7d55f3054 diff --git a/submodules/mssilk b/submodules/mssilk index dcb4798df..06504344a 160000 --- a/submodules/mssilk +++ b/submodules/mssilk @@ -1 +1 @@ -Subproject commit dcb4798df328186b3d177d10af5145aafed8352e +Subproject commit 06504344a367c033598a9dcaa6ff8387269e5a9a