Commits on Source (11)
-
Alexandre Janniaux authored
Without the link to UIKit, UIDevice is left missing and leads to link error.
68f257f6 -
Alexandre Janniaux authored
The libci_filter_plugin_la_LDFLAGS must always contains the value of $(AM_LDFLAGS) since it is at least defined once. Otherwise, automake won't automatically define it to $(AM_LDFLAGS) $(LDFLAGS) and the plugin won't be built correctly (ie, built as a convenience library because of the lack of -rpath definition in LDFLAGS). In addition, the frameworks were not correctly set for iOS, which was not a problem in static build because there is no linkage, nor in dynamic build before because the plugin was built as a convenience library, thus not linked nor installed to the device with the bundle script. Since the frameworks are mostly common between MacOSX and iOS, just add the corresponding OpenGL framework for each target, and define the other frameworks out of any automake condition. Cherry-picked from commit c82c9952 but partially modified to remove OpenGL/ES frameworks that are not needed without the commit cb6b1d5f.
01cbbf75 -
Alexandre Janniaux authored
Remove AudioUnit framework as it is not found on iOS and only AudioToolbox is needed. In addition CoreServices cannot be linked for the iOS/tvOS targets as it is available starting with iOS/tvOS 12.0+. Cherry-picked from commit e69c8fba.
38f89ca3 -
Alexandre Janniaux authored
AudioUnit framework is not found on iOS and is not needed on MacOSX. Cherry-picked from commit f6826707. Manual change where AudioUnit is still needed in this version of the plugin for OSX.
9f6cfa80 -
Alexandre Janniaux authored
There were no LDFLAGS for iOS/tvOS and vt_utils were not compiled but linking worked because videotoolbox was linked in the final static library archive. Manual backport from commit 1b9a3f46 since interop_cvpx doesn't exist in 3.0.x and the code was pretty different.
4ee99b80 -
Alexandre Janniaux authored
Fix the following link errors when building for iOS with shared libraries: Undefined symbols for architecture arm64: "_CFNetworkCopySystemProxySettings", referenced from: _vlc_getProxyUrl in netconf.o "_kCFNetworkProxiesHTTPPort", referenced from: _vlc_getProxyUrl in netconf.o "_kCFNetworkProxiesHTTPProxy", referenced from: _vlc_getProxyUrl in netconf.o ld: symbol(s) not found for architecture arm64
850801f9 -
Alexandre Janniaux authored
The build script allows building for iOS/tvOS without pulling the whole VLCKit project, to build a standalone library for integrating libvlc in applications. The main goal is being able to maintain libVLC 3.0 without requiring the whole VLCKit environment to run tests. Cherry-picked from master branch at commit version 44d44176, and modified the build.conf to have all enabled contribs building and have the target version match the 3.0.x system requirements.
9f2ebc0f -
Alexandre Janniaux authored
iosvlc.m provides a binary usable as an iOS application, forwarding the VLC arguments just like VLC on desktop. It allows easier iteration on vlccore development for iOS, without the need to test in a VLCKit application like VLC for iOS or new external application. It is currently designed for usage with dynamic plugins. To develop with it, you must generate a .ipa archive containing both the resulting binary as executable, a PkgInfo file, an Info.plist file describing the package and the libs (libvlc.dylib, libvlccore.dylib, and every plugin .dylib or additional convenience libraries that are not linked statically in the Frameworks/ directory. It must then be signed with a developer certificate allowed by Apple and provisionned with a mobileprovision file allowing installation on the given device for the same developer certificate. Then, tools like libimobiledevice can be used to start the application with additional arguments or environment variables. They can also be added in XCode through the "Edit Scheme" menu. A big part of the iOS-specific code has been originally written by Marvin Scholz in a more complete libVLC ios sample. Co-authored-by:
Marvin Scholz <epirat07@gmail.com> Cherry-picked and adapted from commits: e16f4d9b 0bfe8803 96bee418 904998af 54c392d7
85b22197 -
Alexandre Janniaux authored
Darwin platforms are using frameworks to embed libraries. Some of them like iOS and tvOS even forbid the use of dynamic libraries that are not wrapped into a framework. Since frameworks can contain various things (headers, resources, etc), we don't necessarily want to browse their whole tree if their structure is well-defined. In our case, since plugins are bundles and not dylibs, there's not linking and there's no point in supporting versionning so we can expect the plugin's dynamic library in the root of the framework, named like the framework without the .framework part. Since MacOSX can also make use of frameworks, this is enabled for all darwin platforms, though it might not use them. Cherry-picked from commit 70d3002b.
068bfba7 -
Alexandre Janniaux authored
The arguments to AllocatePluginFile were written in reverse, leading to vlc_stat failing to find the file. In addition the value that should have been written `-(sizeof ".framework" -1)` was actually written as `-sizeof ".framework" -1` and thus `foo_plugin` was instead `foo_plug`. Typo from function refactor in 70d3002b. Cherry-picked from commit eb47c931.
cf1baa09 -
Alexandre Janniaux authored
On iOS and tvOS, dylibs must be wrapped into a framework and frameworks must be flattened into the frameworks/ application directory (or global to the system which is not possible in the general case), so dylibs can't be in the VLC_PKG_LIB_DIR/plugins folder. Redirect VLC_PKG_LIB_DIR/plugins toward VLC_PKG_LIB_DIR/ on those platforms. Manual cherry-pick from commit 89e90672. The code is written directly in the src/modules/bank.c code given that config_GetSysPath doesn't exist in 3.0.
370b1ae8
Showing
- extras/package/apple/Info.plist 83 additions, 0 deletionsextras/package/apple/Info.plist
- extras/package/apple/build.conf 172 additions, 0 deletionsextras/package/apple/build.conf
- extras/package/apple/build.sh 825 additions, 0 deletionsextras/package/apple/build.sh
- extras/package/apple/bundle.sh 52 additions, 0 deletionsextras/package/apple/bundle.sh
- extras/package/macosx/env.build.sh 222 additions, 0 deletionsextras/package/macosx/env.build.sh
- modules/audio_output/Makefile.am 1 addition, 1 deletionmodules/audio_output/Makefile.am
- modules/codec/Makefile.am 7 additions, 2 deletionsmodules/codec/Makefile.am
- modules/video_filter/Makefile.am 3 additions, 2 deletionsmodules/video_filter/Makefile.am
- modules/video_output/Makefile.am 10 additions, 5 deletionsmodules/video_output/Makefile.am
- src/Makefile.am 3 additions, 0 deletionssrc/Makefile.am
- src/darwin/dirs.c 1 addition, 0 deletionssrc/darwin/dirs.c
- src/modules/bank.c 75 additions, 0 deletionssrc/modules/bank.c
- test/Makefile.am 11 additions, 0 deletionstest/Makefile.am
- test/iosvlc.m 167 additions, 0 deletionstest/iosvlc.m
extras/package/apple/Info.plist
0 → 100644
extras/package/apple/build.conf
0 → 100644
extras/package/apple/build.sh
0 → 100755
extras/package/apple/bundle.sh
0 → 100755
extras/package/macosx/env.build.sh
0 → 100755
test/iosvlc.m
0 → 100644