Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • videolan/libvlc-nuget
  • aaqib/libvlc-nuget
  • jpgrusling/libvlc-nuget
  • Clancey/libvlc-nuget
  • mfkl/libvlc-nuget
  • pouyanchasebi1364/libvlc-nuget
  • reverentdueces/libvlc-nuget
  • berrylcm/libvlc-nuget
  • thombrink/libvlc-nuget
  • alexandre-janniaux/libvlc-nuget
  • huynhsontung/libvlc-nuget
  • hezeping/libvlc-nuget
12 results
Show changes
Commits on Source (67)
Showing
with 478 additions and 40 deletions
custom: https://videolabs.io/solutions/libvlcsharp
\ No newline at end of file
name: CI
on:
push:
pull_request:
jobs:
LibVLC_iOS_NuGet:
if: github.event_name == 'push' || github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: LibVLC iOS build
shell: bash
run: |
git clone https://github.com/videolan/vlckit
cd vlckit && git checkout 3.0
./buildMobileVLCKit.sh -f
patchBinary () {
install_name_tool -id @rpath/DynamicMobileVLCKit.framework/DynamicMobileVLCKit MobileVLCKit
defaults write $(pwd)/Info.plist CFBundleExecutable -string DynamicMobileVLCKit
defaults write $(pwd)/Info.plist CFBundleName -string DynamicMobileVLCKit
defaults write $(pwd)/Info.plist CFBundleIdentifier -string org.videolan.DynamicMobileVLCKit
mv MobileVLCKit DynamicMobileVLCKit
cd ..
mv MobileVLCKit.framework DynamicMobileVLCKit.framework
cd ..
}
cd build/MobileVLCKit.xcframework/ios-arm64_armv7_armv7s/MobileVLCKit.framework
patchBinary
cd ios-arm64_i386_x86_64-simulator/MobileVLCKit.framework
patchBinary
mkdir -p $GITHUB_WORKSPACE/build/ios-device
mkdir -p $GITHUB_WORKSPACE/build/ios-simulator
mv ios-arm64_armv7_armv7s/DynamicMobileVLCKit.framework $GITHUB_WORKSPACE/build/ios-device
mv ios-arm64_i386_x86_64-simulator/DynamicMobileVLCKit.framework $GITHUB_WORKSPACE/build/ios-simulator
- name: Setup NuGet
uses: nuget/setup-nuget@v1
with:
nuget-version: '5.x'
- name: Create LibVLC iOS NuGet package
run: |
nuget pack VideoLAN.LibVLC.iOS.nuspec
- name: Upload build
uses: actions/upload-artifact@v4
with:
name: libvlc-ios-build
path: ./*.nupkg
UWP_access_v3:
if: github.event_name == 'push' || github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id
strategy:
matrix:
arch: [x64, x86, arm]
runs-on: windows-2019
steps:
- name: Checkout libvlc uwp access module code
shell: bash
run: |
git clone https://code.videolan.org/mfkl/vlc-winrt && cd vlc-winrt && git checkout uwp-access-v3
mkdir -p libvlc/Universal/vlc-${{ matrix.arch }}/Release
- name: Download VLC headers
uses: azure/powershell@v1
with:
inlineScript: |
Invoke-WebRequest -Uri "https://code.videolan.org/videolan/vlc/-/archive/3.0.x/vlc-3.0.x.zip" -OutFile "vlc-3.0.x.zip"
azPSVersion : '3.1.0'
- name: Extract LibVLC
shell: bash
run: |
7z x vlc-3.0.x.zip -ovlc
mv vlc/vlc-3.0.x/include vlc-winrt/libvlc/Universal/vlc-${{ matrix.arch }}/Release
- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.0.3
- name: MSBuild x64/ARM
if: matrix.arch != 'x86'
working-directory: vlc-winrt/modules/libaccess_winrt_plugin.UWP
run: msbuild libaccess_winrt_plugin.UWP.vcxproj /p:Configuration=Release /p:Platform=${{ matrix.arch }}
- name: MSBuild x86
if: matrix.arch == 'x86'
working-directory: vlc-winrt/modules/libaccess_winrt_plugin.UWP
run: msbuild libaccess_winrt_plugin.UWP.vcxproj /p:Configuration=Release /p:Platform=Win32
- name: Upload build
uses: actions/upload-artifact@v4
with:
name: libvlc-uwp-access-build-${{ matrix.arch }}
path: vlc-winrt/modules/libaccess_winrt_plugin.UWP/Release/libaccess_winrt_plugin.UWP
UWP_NuGet:
if: github.event_name == 'push' || github.event.pull_request.head.repo.id != github.event.pull_request.base.repo.id
runs-on: ubuntu-latest
needs: UWP_access_v3
steps:
- uses: actions/checkout@v2
- uses: actions/download-artifact@v4
- uses: NuGet/setup-nuget@v1.2.0
with:
nuget-version: '5.x'
- name: Create NuGet folders
shell: bash
run: |
mkdir -p build/win10-arm/native
mkdir -p build/win10-x64/native
mkdir -p build/win10-x86/native
- name: Download and extract UWP builds
env:
VLC_VERSION: 3.0.20
shell: bash
run: |
wget -O arm.zip https://code.videolan.org/videolan/libvlc-nuget/-/jobs/artifacts/master/download?job=uwp-arm
wget -O x86.zip https://code.videolan.org/videolan/libvlc-nuget/-/jobs/artifacts/master/download?job=uwp-x86
wget -O x64.zip https://code.videolan.org/videolan/libvlc-nuget/-/jobs/artifacts/master/download?job=uwp-x64
7z x arm.zip -oarm -y
7z x arm/vlc/winarm-uwp/vlc-$VLC_VERSION-win32.7z -oarm/vlc/winarm-uwp -y
7z x x86.zip -ox86 -y
7z x x86/vlc/win32-uwp/vlc-$VLC_VERSION-win32.7z -ox86/vlc/win32-uwp -y
7z x x64.zip -ox64 -y
7z x x64/vlc/win64-uwp/vlc-$VLC_VERSION-win64.7z -ox64/vlc/win64-uwp -y
mv arm/vlc/winarm-uwp/vlc-$VLC_VERSION/lua build/win10-arm/native
mv arm/vlc/winarm-uwp/vlc-$VLC_VERSION/plugins build/win10-arm/native
mv libvlc-uwp-access-build-arm/libaccess_winrt_plugin.dll build/win10-arm/native/plugins/access
mv arm/vlc/winarm-uwp/vlc-$VLC_VERSION/sdk build/win10-arm/native
mv arm/vlc/winarm-uwp/vlc-$VLC_VERSION/libvlc.dll build/win10-arm/native
mv arm/vlc/winarm-uwp/vlc-$VLC_VERSION/libvlccore.dll build/win10-arm/native
mv x86/vlc/win32-uwp/vlc-$VLC_VERSION/lua build/win10-x86/native
mv x86/vlc/win32-uwp/vlc-$VLC_VERSION/plugins build/win10-x86/native
mv libvlc-uwp-access-build-x86/libaccess_winrt_plugin.dll build/win10-x86/native/plugins/access
mv x86/vlc/win32-uwp/vlc-$VLC_VERSION/sdk build/win10-x86/native
mv x86/vlc/win32-uwp/vlc-$VLC_VERSION/libvlc.dll build/win10-x86/native
mv x86/vlc/win32-uwp/vlc-$VLC_VERSION/libvlccore.dll build/win10-x86/native
mv x64/vlc/win64-uwp/vlc-$VLC_VERSION/lua build/win10-x64/native
mv x64/vlc/win64-uwp/vlc-$VLC_VERSION/plugins build/win10-x64/native
mv libvlc-uwp-access-build-x64/libaccess_winrt_plugin.dll build/win10-x64/native/plugins/access
mv x64/vlc/win64-uwp/vlc-$VLC_VERSION/sdk build/win10-x64/native
mv x64/vlc/win64-uwp/vlc-$VLC_VERSION/libvlc.dll build/win10-x64/native
mv x64/vlc/win64-uwp/vlc-$VLC_VERSION/libvlccore.dll build/win10-x64/native
- name: Package NuGet
shell: bash
run: |
nuget pack VideoLAN.LibVLC.UWP.nuspec
- name: Upload NuGet package
uses: actions/upload-artifact@v4
with:
name: libvlc-uwp
path: '*.nupkg'
......@@ -27,9 +27,11 @@ Thumbs.db
*.lib
*.sbr
*.dylib
build/**
build/**/*.dll
build/**/*.jar
build/**/*.so
build/**/*.dylib
obj/
build/**
mac/**
[Rr]elease*/
_ReSharper*/
......@@ -38,7 +40,8 @@ _ReSharper*/
#Nuget packages folder
packages/
*.nupkg
tools/
artifact/
#Exclude build folders and temp files
native
x64
......
UWP ->
- 3.1.1: ARM chromecast fix https://github.com/videolan/vlc-3.0/commit/f37334543d3313e01cf2be74591f0fcb0d1c87f4
\ No newline at end of file
# `libvlc` for .NET
[![Join the chat at https://discord.gg/3h3K3JF](https://img.shields.io/discord/716939396464508958?label=discord)](https://discord.gg/3h3K3JF)
This repository is about presenting `libvlc` and its capabilities to .NET developers.
It also contains packaging tools and files for nuget packaging/deployment.
In other words: It's just the same thing as if you had downloaded the files from VideoLAN's website, in a NuGet package,
......@@ -18,6 +20,7 @@ that you can add in your .NET project so that it gets copied into the output dir
- [Linux](#linux)
- [Unity3D](#Unity3D)
- [Roadmap](#roadmap)
- [Commercial services](#Commercial-services)
# What is libvlc?
......@@ -67,7 +70,7 @@ Currently, you can customize three things during the build:
#### LibVLC 3:
Latest stable version is [3.0.8](https://github.com/videolan/vlc-3.0/releases/tag/3.0.8). Feel free to check out the [release notes](https://github.com/videolan/vlc-3.0/blob/master/NEWS).
Latest stable version is [3.0.21](https://code.videolan.org/videolan/vlc/-/tags). Feel free to check out the [release notes](https://code.videolan.org/videolan/vlc/-/blob/3.0.x/NEWS).
Minimum OS version supported by LibVLC 3.x:
......@@ -82,6 +85,11 @@ Minimum OS version supported by LibVLC 3.x:
dotnet add package VideoLAN.LibVLC.Windows
```
*For the GPL version, use the following command:*
```cmd
dotnet add package VideoLAN.LibVLC.Windows.GPL
```
[![NuGet version](https://img.shields.io/nuget/v/VideoLAN.LibVLC.Windows.svg)](https://www.nuget.org/packages/VideoLAN.LibVLC.Windows)
[![NuGet downloads](https://img.shields.io/nuget/dt/VideoLAN.LibVLC.Windows.svg)](https://www.nuget.org/packages/VideoLAN.LibVLC.Windows)
......@@ -172,15 +180,31 @@ For Ubuntu, follow this [guide](https://code.videolan.org/videolan/LibVLCSharp/b
## Unity3D
| Platform | Unity Store Asset |
| ----------------- | ----------------------------------------------- |
| Windows | [![VLCUnityWindowsBadge]][VLCUnityWindows] |
| Platform | Unity Store Asset |
| ----------------- | ---------------------------------------------- |
| Unity3D - Windows | [![VLCUnityBadge]][VLCUnityStore] |
| Unity3D - UWP | [![VLCUnityBadge]][VLCUnityStore] |
| Unity3D - Android | [![VLCUnityBadge]][VLCUnityStore] |
| Unity3D - iOS | [![VLCUnityBadge]][VLCUnityStore] |
| Unity3D - macOS | [![VLCUnityBadge]][VLCUnityStore] |
[RVLCUnityWindows]: https://assetstore.unity.com/packages/tools/video/vlc-for-unity-windows-133979
[VLCUnityWindows]: https://assetstore.unity.com/packages/tools/video/vlc-for-unity-windows-133979
[VLCUnityWindowsBadge]: https://img.shields.io/badge/Made%20with-Unity-57b9d3.svg?style=flat&logo=unity
[VLCUnityStore]: https://videolabs.io/store/unity
[VLCUnityBadge]: https://img.shields.io/badge/Made%20with-Unity-57b9d3.svg?style=flat&logo=unity
# Roadmap
- More Unity back-ends and other game engines
- WebAssembly
\ No newline at end of file
- WebAssembly
- LibVLC 4
# Commercial services
If you would like VLC developers to provide you with:
- custom development on LibVLC and/or LibVLCSharp,
- training and workshops,
- [LibVLCSharp commercial licenses](https://videolabs.io/solutions/libvlcsharp),
- support services,
- consulting services,
- other multimedia services.
Feel free to [contact us](https://videolabs.io/#contact).
......@@ -3,7 +3,7 @@
<metadata>
<id>VideoLAN.LibVLC.Android</id>
<title>VideoLAN.LibVLC.Android</title>
<version>3.2.0</version>
<version>3.2.0.1</version>
<authors>VideoLAN</authors>
<owners>VideoLAN</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
......@@ -13,7 +13,7 @@ As it is native code, you will need to use a wrapper library such as LibVLCSharp
<tags>libvlc;vlc;videolan;native;c/c++;video;audio;player;media;mediaplayer;codec;ffmpeg;xamarin;graphics;ios;android;linux;windows;macos;cross-platform</tags>
<projectUrl>https://code.videolan.org/videolan/libvlc-nuget</projectUrl>
<license type="expression">LGPL-2.1-or-later</license>
<iconUrl>https://raw.githubusercontent.com/mfkl/libvlc-nuget/master/icon.png</iconUrl>
<icon>icon.png</icon>
<releaseNotes>https://code.videolan.org/videolan/vlc/blob/master/NEWS</releaseNotes>
</metadata>
<files>
......@@ -26,5 +26,6 @@ As it is native code, you will need to use a wrapper library such as LibVLCSharp
<file src="build\android-x86\libc++_shared.so" target="build\android-x86\libc++_shared.so"/>
<file src="build\android-x86_64\libvlc.so" target="build\android-x86_64\libvlc.so"/>
<file src="build\android-x86_64\libc++_shared.so" target="build\android-x86_64\libc++_shared.so"/>
<file src="icon.png" target="" />
</files>
</package>
\ No newline at end of file
......@@ -13,11 +13,12 @@ As it is native code, you will need to use a wrapper library such as LibVLCSharp
<tags>libvlc;vlc;videolan;native;c/c++;video;audio;player;media;mediaplayer;codec;ffmpeg;xamarin;graphics;ios;android;linux;windows;macos;cross-platform</tags>
<projectUrl>https://code.videolan.org/videolan/libvlc-nuget</projectUrl>
<license type="expression">LGPL-2.1-or-later</license>
<iconUrl>https://raw.githubusercontent.com/mfkl/libvlc-nuget/master/icon.png</iconUrl>
<icon>icon.png</icon>
<releaseNotes>https://code.videolan.org/videolan/vlc/blob/master/NEWS</releaseNotes>
</metadata>
<files>
<file src="build\VideoLAN.LibVLC.Mac.targets" target="build\VideoLAN.LibVLC.Mac.targets"/>
<file src="build\osx-x64\libvlc.dylib" target="build\osx-x64\libvlc.dylib"/>
<file src="icon.png" target="" />
</files>
</package>
\ No newline at end of file
......@@ -3,7 +3,7 @@
<metadata>
<id>VideoLAN.LibVLC.UWP</id>
<title>VideoLAN.LibVLC.UWP</title>
<version>3.2.0</version>
<version>3.3.2</version>
<authors>VideoLAN</authors>
<owners>VideoLAN</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
......@@ -15,13 +15,15 @@ Use this LibVLC build for Windows Universal projects (UAP) on Windows 10 Desktop
<tags>libvlc;vlc;videolan;native;c/c++;video;audio;player;media;mediaplayer;codec;ffmpeg;xamarin;graphics;ios;android;linux;windows;macos;cross-platform</tags>
<projectUrl>https://code.videolan.org/videolan/libvlc-nuget</projectUrl>
<license type="expression">LGPL-2.1-or-later</license>
<iconUrl>https://raw.githubusercontent.com/mfkl/libvlc-nuget/master/icon.png</iconUrl>
<releaseNotes>https://code.videolan.org/videolan/vlc/blob/master/NEWS</releaseNotes>
<icon>icon.png</icon>
</metadata>
<files>
<!-- https://code.videolan.org/videolan/vlc/-/commit/c900a2183f8988f32e60afdcae3aa398387295f1 -->
<file src="build\VideoLAN.LibVLC.UWP.targets" target="build\VideoLAN.LibVLC.UWP.targets"/>
<file src="build\win10-x86\native\**" target="build\win10-x86"/>
<file src="build\win10-x64\native\**" target="build\win10-x64"/>
<file src="build\win10-arm\native\**" target="build\win10-arm"/>
<file src="icon.png" target="" />
</files>
</package>
\ No newline at end of file
<?xml version="1.0"?>
<package >
<metadata>
<id>VideoLAN.LibVLC.Windows.GPL</id>
<title>VideoLAN.LibVLC.Windows.GPL</title>
<version>3.0.11</version>
<authors>VideoLAN</authors>
<owners>VideoLAN</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<summary>LibVLC is a modular multimedia framework</summary>
<description>LibVLC is a modular multimedia framework that can render video and output audio as well as encode and stream.
As it is native code, you will need to use a wrapper library such as LibVLCSharp to use it from .NET.
This package contains GPL plugin DLLs from official releases. Make sure you comply with the GPL license.</description>
<tags>libvlc;vlc;videolan;native;c/c++;video;audio;player;media;mediaplayer;codec;ffmpeg;xamarin;graphics;ios;android;linux;windows;macos;cross-platform</tags>
<projectUrl>https://code.videolan.org/videolan/libvlc-nuget</projectUrl>
<license type="expression">GPL-2.0-or-later</license>
<icon>icon.png</icon>
<releaseNotes>https://code.videolan.org/videolan/vlc/blob/master/NEWS</releaseNotes>
</metadata>
<files>
<file src="build\VideoLAN.LibVLC.Windows.GPL.targets" target="build\VideoLAN.LibVLC.Windows.GPL.targets"/>
<file src="build\win7-x64\native\**" target="build\x64"/>
<file src="build\win7-x86\native\**" target="build\x86"/>
<file src="icon.png" target="" />
</files>
</package>
\ No newline at end of file
......@@ -3,7 +3,7 @@
<metadata>
<id>VideoLAN.LibVLC.Windows</id>
<title>VideoLAN.LibVLC.Windows</title>
<version>3.0.8.1</version>
<version>3.0.11</version>
<authors>VideoLAN</authors>
<owners>VideoLAN</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
......@@ -13,12 +13,13 @@ As it is native code, you will need to use a wrapper library such as LibVLCSharp
<tags>libvlc;vlc;videolan;native;c/c++;video;audio;player;media;mediaplayer;codec;ffmpeg;xamarin;graphics;ios;android;linux;windows;macos;cross-platform</tags>
<projectUrl>https://code.videolan.org/videolan/libvlc-nuget</projectUrl>
<license type="expression">LGPL-2.1-or-later</license>
<iconUrl>https://raw.githubusercontent.com/mfkl/libvlc-nuget/master/icon.png</iconUrl>
<icon>icon.png</icon>
<releaseNotes>https://code.videolan.org/videolan/vlc/blob/master/NEWS</releaseNotes>
</metadata>
<files>
<file src="build\VideoLAN.LibVLC.Windows.targets" target="build\VideoLAN.LibVLC.Windows.targets"/>
<file src="build\win7-x64\native\**" target="build\x64"/>
<file src="build\win7-x86\native\**" target="build\x86"/>
<file src="icon.png" target="" />
</files>
</package>
\ No newline at end of file
......@@ -3,7 +3,7 @@
<metadata>
<id>VideoLAN.LibVLC.iOS</id>
<title>VideoLAN.LibVLC.iOS</title>
<version>3.1.5.1</version>
<version>3.3.17</version>
<authors>VideoLAN</authors>
<owners>VideoLAN</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
......@@ -13,12 +13,13 @@ As it is native code, you will need to use a wrapper library such as LibVLCSharp
<tags>libvlc;vlc;videolan;native;c/c++;video;audio;player;media;mediaplayer;codec;ffmpeg;xamarin;graphics;ios;android;linux;windows;macos;cross-platform</tags>
<projectUrl>https://code.videolan.org/videolan/libvlc-nuget</projectUrl>
<license type="expression">LGPL-2.1-or-later</license>
<iconUrl>https://raw.githubusercontent.com/mfkl/libvlc-nuget/master/icon.png</iconUrl>
<icon>icon.png</icon>
<releaseNotes>https://code.videolan.org/videolan/vlc/blob/master/NEWS</releaseNotes>
</metadata>
<files>
<file src="build\VideoLAN.LibVLC.iOS.targets" target="build\VideoLAN.LibVLC.iOS.targets"/>
<file src="build\ios-simulator\DynamicMobileVLCKit.framework\*" target="build\ios-simulator\DynamicMobileVLCKit.framework"/>
<file src="build\ios-device\DynamicMobileVLCKit.framework\*" target="build\ios-device\DynamicMobileVLCKit.framework"/>
<file src="icon.png" target="" />
</files>
</package>
\ No newline at end of file
......@@ -3,7 +3,7 @@
<metadata>
<id>VideoLAN.LibVLC.tvOS</id>
<title>VideoLAN.LibVLC.tvOS</title>
<version>3.2.0.1</version>
<version>3.3.17</version>
<authors>VideoLAN</authors>
<owners>VideoLAN</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
......@@ -13,12 +13,13 @@ As it is native code, you will need to use a wrapper library such as LibVLCSharp
<tags>libvlc;vlc;videolan;native;c/c++;video;audio;player;media;mediaplayer;codec;ffmpeg;xamarin;graphics;tvos;cross-platform</tags>
<projectUrl>https://code.videolan.org/videolan/libvlc-nuget</projectUrl>
<license type="expression">LGPL-2.1-or-later</license>
<iconUrl>https://raw.githubusercontent.com/mfkl/libvlc-nuget/master/icon.png</iconUrl>
<icon>icon.png</icon>
<releaseNotes>https://code.videolan.org/videolan/vlc/blob/master/NEWS</releaseNotes>
</metadata>
<files>
<file src="build\VideoLAN.LibVLC.tvOS.targets" target="build\VideoLAN.LibVLC.tvOS.targets"/>
<file src="build\tvOS-simulator\DynamicTVVLCKit.framework\*" target="build\tvOS-simulator\DynamicTVVLCKit.framework"/>
<file src="build\tvOS-device\DynamicTVVLCKit.framework\*" target="build\tvOS-device\DynamicTVVLCKit.framework"/>
<file src="build\tvOS-simulator\TVVLCKit.framework\*" target="build\tvOS-simulator\TVVLCKit.framework"/>
<file src="build\tvOS-device\TVVLCKit.framework\*" target="build\tvOS-device\TVVLCKit.framework"/>
<file src="icon.png" target="" />
</files>
</package>
\ No newline at end of file
......@@ -2,7 +2,7 @@
<PropertyGroup>
<CopyLibcppShared Condition="'$(CopyLibcppShared)' == ''">true</CopyLibcppShared>
</PropertyGroup>
<ItemGroup Condition="$(AndroidSupportedAbis.Contains('armeabi-v7a'))">
<ItemGroup Condition="$(AndroidSupportedAbis.Contains('armeabi-v7a')) or $(RuntimeIdentifiers.Contains('android-arm'))">
<AndroidNativeLibrary Include="$(MSBuildThisFileDirectory)android-armv7\libvlc.so">
<Link>libvlc-armv7\libvlc.so</Link>
<Abi>armeabi-v7a</Abi>
......@@ -12,7 +12,7 @@
<Abi>armeabi-v7a</Abi>
</AndroidNativeLibrary>
</ItemGroup>
<ItemGroup Condition="$(AndroidSupportedAbis.Contains('arm64-v8a'))">
<ItemGroup Condition="$(AndroidSupportedAbis.Contains('arm64-v8a')) or $(RuntimeIdentifiers.Contains('android-arm64'))">
<AndroidNativeLibrary Include="$(MSBuildThisFileDirectory)android-armv8\libvlc.so">
<Link>libvlc-armv8\libvlc.so</Link>
<Abi>arm64-v8a</Abi>
......@@ -22,7 +22,7 @@
<Abi>arm64-v8a</Abi>
</AndroidNativeLibrary>
</ItemGroup>
<ItemGroup Condition="$(AndroidSupportedAbis.Contains('x86'))">
<ItemGroup Condition="$(AndroidSupportedAbis.Contains('x86')) or $(RuntimeIdentifiers.Contains('android-x86'))">
<AndroidNativeLibrary Include="$(MSBuildThisFileDirectory)android-x86\libvlc.so">
<Link>libvlc-x86\libvlc.so</Link>
<Abi>x86</Abi>
......@@ -32,7 +32,7 @@
<Abi>x86</Abi>
</AndroidNativeLibrary>
</ItemGroup>
<ItemGroup Condition="$(AndroidSupportedAbis.Contains('x86_64'))">
<ItemGroup Condition="$(AndroidSupportedAbis.Contains('x86_64')) or $(RuntimeIdentifiers.Contains('android-x64'))">
<AndroidNativeLibrary Include="$(MSBuildThisFileDirectory)android-x86_64\libvlc.so">
<Link>libvlc-x86_64\libvlc.so</Link>
<Abi>x86_64</Abi>
......@@ -42,4 +42,4 @@
<Abi>x86_64</Abi>
</AndroidNativeLibrary>
</ItemGroup>
</Project>
\ No newline at end of file
</Project>
......@@ -8,9 +8,9 @@
<ItemGroup>
<!-- If no VlcWindows[...]IncludeFiles was declared previously, include all plugins by default by specifying ** (escaped, so %2A%2A) -->
<VlcUWPX64IncludeFiles Condition="'@(VlcUWPX64IncludeFiles)'==''" Include="libvlc.dll;libvlccore.dll;hrtfs\%2A%2A;locale\%2A%2A;lua\%2A%2A;plugins\%2A%2A" />
<VlcUWPX86IncludeFiles Condition="'@(VlcUWPX86IncludeFiles)'==''" Include="libvlc.dll;libvlccore.dll;hrtfs\%2A%2A;locale\%2A%2A;lua\%2A%2A;plugins\%2A%2A" />
<VlcUWPARMIncludeFiles Condition="'@(VlcUWPARMIncludeFiles)'==''" Include="libvlc.dll;libvlccore.dll;hrtfs\%2A%2A;locale\%2A%2A;lua\%2A%2A;plugins\%2A%2A" />
<VlcUWPX64IncludeFiles Condition="'@(VlcUWPX64IncludeFiles)'==''" Include="libvlc.%2A;libvlccore.%2A;hrtfs\%2A%2A;locale\%2A%2A;lua\%2A%2A;plugins\%2A%2A" />
<VlcUWPX86IncludeFiles Condition="'@(VlcUWPX86IncludeFiles)'==''" Include="libvlc.%2A;libvlccore.%2A;hrtfs\%2A%2A;locale\%2A%2A;lua\%2A%2A;plugins\%2A%2A" />
<VlcUWPARMIncludeFiles Condition="'@(VlcUWPARMIncludeFiles)'==''" Include="libvlc.%2A;libvlccore.%2A;hrtfs\%2A%2A;locale\%2A%2A;lua\%2A%2A;plugins\%2A%2A" />
</ItemGroup>
<ItemGroup>
......
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<VlcWindowsX64TargetDir Condition=" '$(VlcWindowsX64TargetDir)' == '' ">libvlc\win-x64</VlcWindowsX64TargetDir>
<VlcWindowsX86TargetDir Condition=" '$(VlcWindowsX86TargetDir)' == '' ">libvlc\win-x86</VlcWindowsX86TargetDir>
<VlcWindowsX64Enabled Condition="'$(VlcWindowsX64Enabled)' == '' AND ('$(Platform)' == 'x64' OR '$(Platform)' == 'AnyCPU')">true</VlcWindowsX64Enabled>
<VlcWindowsX86Enabled Condition="'$(VlcWindowsX86Enabled)' == '' AND ('$(Platform)' == 'x86' OR '$(Platform)' == 'AnyCPU')">true</VlcWindowsX86Enabled>
</PropertyGroup>
<ItemGroup>
<!-- If no VlcWindows[...]IncludeFiles was declared previously, include all plugins by default by specifying ** (escaped, so %2A%2A) -->
<VlcWindowsX64IncludeFiles Condition="'@(VlcWindowsX64IncludeFiles)'==''" Include="libvlc.%2A;libvlccore.%2A;hrtfs\%2A%2A;lua\%2A%2A;plugins\%2A%2A" />
<VlcWindowsX86IncludeFiles Condition="'@(VlcWindowsX86IncludeFiles)'==''" Include="libvlc.%2A;libvlccore.%2A;hrtfs\%2A%2A;lua\%2A%2A;plugins\%2A%2A" />
</ItemGroup>
<Target Name="CollectVlcFilesToCopyWindows" BeforeTargets="BeforeBuild">
<!-- We need a target in order to make batching work -->
<!-- Some useful links to understand how it works:
http://sedotech.com/Resources#Batching (4 parts of excellent explanation of Batching. Link 2 is dead, but can be found in parts 3 and above)
http://sedodream.com/2010/10/21/MSBuildFilterListTake2.aspx
-->
<!-- First, transform the escaped, relative, platform-independant file path into real path, relative to 32/64 folders -->
<!-- x64 -->
<ItemGroup Condition="'$(VlcWindowsX64Enabled)' == 'true'">
<!-- Expand selectors and compute absolute paths for include, exclude and MainLibraries -->
<VlcWindowsX64IncludeFilesFullPath Include="$([MSBuild]::Unescape($(MSBuildThisFileDirectory)..\build\x64\%(VlcWindowsX64IncludeFiles.Identity)))" />
<VlcWindowsX64ExcludeFilesFullPath Include="$([MSBuild]::Unescape($(MSBuildThisFileDirectory)..\build\x64\%(VlcWindowsX64ExcludeFiles.Identity)))" Condition="'%(VlcWindowsX64ExcludeFiles.Identity)'!=''" />
<!-- We have gathered all the full path of what should be copied and what should be skipped, let's include that as Content that gets copied -->
<Content Include="@(VlcWindowsX64IncludeFilesFullPath)" Exclude="@(VlcWindowsX64ExcludeFilesFullPath)">
<Link>$(VlcWindowsX64TargetDir)\$([MSBuild]::MakeRelative($(MSBuildThisFileDirectory)..\build\x64\, %(FullPath)))</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<!-- x86 -->
<ItemGroup Condition="'$(VlcWindowsX86Enabled)' == 'true'">
<!-- Expand selectors and compute absolute paths for include, exclude and MainLibraries -->
<VlcWindowsX86IncludeFilesFullPath Include="$([MSBuild]::Unescape($(MSBuildThisFileDirectory)..\build\x86\%(VlcWindowsX86IncludeFiles.Identity)))" />
<VlcWindowsX86ExcludeFilesFullPath Include="$([MSBuild]::Unescape($(MSBuildThisFileDirectory)..\build\x86\%(VlcWindowsX86ExcludeFiles.Identity)))" Condition="'%(VlcWindowsX86ExcludeFiles.Identity)'!=''" />
<!-- We have gathered all the full path of what should be copied and what should be skipped, let's include that as Content that gets copied -->
<Content Include="@(VlcWindowsX86IncludeFilesFullPath)" Exclude="@(VlcWindowsX86ExcludeFilesFullPath)">
<Link>$(VlcWindowsX86TargetDir)\$([MSBuild]::MakeRelative($(MSBuildThisFileDirectory)..\build\x86\, %(FullPath)))</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
</Target>
<ItemDefinitionGroup>
<ClCompile Condition="'$(Language)' == 'C++' and ('$(Platform)' == 'x64' or '$(Platform)' == 'x86') and '$(OS)'=='Windows_NT'">
<AdditionalIncludeDirectories>
$(MSBuildThisFileDirectory)\$(Platform)\include\;%(AdditionalIncludeDirectories)
</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup>
<Link Condition="'$(Language)' == 'C++' and ('$(Platform)' == 'x64' or '$(Platform)' == 'x86') and '$(OS)'=='Windows_NT'">
<AdditionalDependencies>libvlc.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(MSBuildThisFileDirectory)\$(Platform)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<Content Include="$(MSBuildThisFileDirectory)\$(Platform)\*.dll"
Condition="'$(Language)' == 'C++' and ('$(Platform)' == 'x64' or '$(Platform)' == 'x86') and '$(OS)'=='Windows_NT'">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<Content Include="$(MSBuildThisFileDirectory)\$(Platform)\plugins\**"
Condition="'$(Language)' == 'C++' and '$(OS)'=='Windows_NT' and ('$(Platform)' == 'x86' or '$(Platform)' == 'x64')">
<Link>plugins\%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<Content Include="$(MSBuildThisFileDirectory)\$(Platform)\hrtfs\**"
Condition="'$(Language)' == 'C++' and '$(OS)'=='Windows_NT' and ('$(Platform)' == 'x86' or '$(Platform)' == 'x64')">
<Link>hrtfs\%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<Content Include="$(MSBuildThisFileDirectory)\$(Platform)\lua\**"
Condition="'$(Language)' == 'C++' and '$(OS)'=='Windows_NT' and ('$(Platform)' == 'x86' or '$(Platform)' == 'x64')">
<Link>lua\%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
</Project>
......@@ -9,8 +9,8 @@
<ItemGroup>
<!-- If no VlcWindows[...]IncludeFiles was declared previously, include all plugins by default by specifying ** (escaped, so %2A%2A) -->
<VlcWindowsX64IncludeFiles Condition="'@(VlcWindowsX64IncludeFiles)'==''" Include="libvlc.dll;libvlccore.dll;hrtfs\%2A%2A;locale\%2A%2A;lua\%2A%2A;plugins\%2A%2A" />
<VlcWindowsX86IncludeFiles Condition="'@(VlcWindowsX86IncludeFiles)'==''" Include="libvlc.dll;libvlccore.dll;hrtfs\%2A%2A;locale\%2A%2A;lua\%2A%2A;plugins\%2A%2A" />
<VlcWindowsX64IncludeFiles Condition="'@(VlcWindowsX64IncludeFiles)'==''" Include="libvlc.%2A;libvlccore.%2A;hrtfs\%2A%2A;lua\%2A%2A;plugins\%2A%2A" />
<VlcWindowsX86IncludeFiles Condition="'@(VlcWindowsX86IncludeFiles)'==''" Include="libvlc.%2A;libvlccore.%2A;hrtfs\%2A%2A;lua\%2A%2A;plugins\%2A%2A" />
</ItemGroup>
<Target Name="CollectVlcFilesToCopyWindows" BeforeTargets="BeforeBuild">
......@@ -48,4 +48,51 @@
</Content>
</ItemGroup>
</Target>
<ItemDefinitionGroup>
<ClCompile Condition="'$(Language)' == 'C++' and ('$(Platform)' == 'x64' or '$(Platform)' == 'x86') and '$(OS)'=='Windows_NT'">
<AdditionalIncludeDirectories>
$(MSBuildThisFileDirectory)\$(Platform)\include\;%(AdditionalIncludeDirectories)
</AdditionalIncludeDirectories>
</ClCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup>
<Link Condition="'$(Language)' == 'C++' and ('$(Platform)' == 'x64' or '$(Platform)' == 'x86') and '$(OS)'=='Windows_NT'">
<AdditionalDependencies>libvlc.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>$(MSBuildThisFileDirectory)\$(Platform)\;%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<Content Include="$(MSBuildThisFileDirectory)\$(Platform)\*.dll"
Condition="'$(Language)' == 'C++' and ('$(Platform)' == 'x64' or '$(Platform)' == 'x86') and '$(OS)'=='Windows_NT'">
<Link>%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<Content Include="$(MSBuildThisFileDirectory)\$(Platform)\plugins\**"
Condition="'$(Language)' == 'C++' and '$(OS)'=='Windows_NT' and ('$(Platform)' == 'x86' or '$(Platform)' == 'x64')">
<Link>plugins\%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<Content Include="$(MSBuildThisFileDirectory)\$(Platform)\hrtfs\**"
Condition="'$(Language)' == 'C++' and '$(OS)'=='Windows_NT' and ('$(Platform)' == 'x86' or '$(Platform)' == 'x64')">
<Link>hrtfs\%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
<ItemGroup>
<Content Include="$(MSBuildThisFileDirectory)\$(Platform)\lua\**"
Condition="'$(Language)' == 'C++' and '$(OS)'=='Windows_NT' and ('$(Platform)' == 'x86' or '$(Platform)' == 'x64')">
<Link>lua\%(RecursiveDir)%(FileName)%(Extension)</Link>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
</ItemGroup>
</Project>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Condition="(('$(Platform)' == 'iPhoneSimulator'))">
<ItemGroup Condition="(('$(Platform)' == 'iPhoneSimulator') OR $(RuntimeIdentifier.StartsWith('iossimulator')))">
<NativeReference Include="$(MSBuildThisFileDirectory)ios-simulator\DynamicMobileVLCKit.framework">
<Kind>Framework</Kind>
</NativeReference>
</ItemGroup>
<ItemGroup Condition="(('$(Platform)' == 'iPhone'))">
<ItemGroup Condition="(('$(Platform)' == 'iPhone') OR ('$(RuntimeIdentifier)' == 'ios') OR $(RuntimeIdentifier.StartsWith('ios-')) OR $(RuntimeIdentifier.StartsWith('ios.')))">
<NativeReference Include="$(MSBuildThisFileDirectory)ios-device\DynamicMobileVLCKit.framework">
<Kind>Framework</Kind>
</NativeReference>
......
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Condition="(('$(Platform)' == 'iPhoneSimulator'))">
<NativeReference Include="$(MSBuildThisFileDirectory)tvOS-simulator\DynamicTVVLCKit.framework">
<NativeReference Include="$(MSBuildThisFileDirectory)tvOS-simulator\TVVLCKit.framework">
<Kind>Framework</Kind>
</NativeReference>
</ItemGroup>
<ItemGroup Condition="(('$(Platform)' == 'iPhone'))">
<NativeReference Include="$(MSBuildThisFileDirectory)tvOS-device\DynamicTVVLCKit.framework">
<NativeReference Include="$(MSBuildThisFileDirectory)tvOS-device\TVVLCKit.framework">
<Kind>Framework</Kind>
</NativeReference>
</ItemGroup>
......
variables:
VLC_UWP_LLVM_IMAGE: registry.videolan.org/vlc-debian-llvm-uwp:20211020111246
VLC_VERSION: 3.0.20
UWP_LIBVLC_BUILD_FLAGS: -z -r -u -w
.variables-win32: &variables-win32
SHORTARCH: win32
HOST_ARCH: i686
TRIPLET: $HOST_ARCH-w64-mingw32
.variables-win64: &variables-win64
SHORTARCH: win64
HOST_ARCH: x86_64
TRIPLET: $HOST_ARCH-w64-mingw32
.variables-win-arm: &variables-win-arm
SHORTARCH: winarm
HOST_ARCH: armv7
TRIPLET: $HOST_ARCH-w64-mingw32
# Common rules for jobs using docker
.docker-template:
tags:
- docker
- amd64
#
# Windows
#
.winrt-common:
extends: .docker-template
script: |
git clone https://code.videolan.org/videolan/vlc && cd vlc && git checkout 3.0.x
git config --global user.email "cone@example.com"
git config --local user.name "Cony Cone"
git am -3 ../patches/*.patch
if [ $? -ne 0 ]; then
git am --abort
echo "Applying the patches failed, aborting git-am"
exit 1
fi
extras/package/win32/build.sh -c -a $HOST_ARCH $UWP_LIBVLC_BUILD_FLAGS
.nightly-winrt-common:
extends: .winrt-common
artifacts:
paths:
- vlc/$SHORTARCH-uwp/*.7z
uwp-x64:
extends: .nightly-winrt-common
image:
name: $VLC_UWP_LLVM_IMAGE
variables:
<<: *variables-win64
uwp-x86:
extends: .nightly-winrt-common
image:
name: $VLC_UWP_LLVM_IMAGE
variables:
<<: *variables-win32
uwp-arm:
extends: .nightly-winrt-common
image:
name: $VLC_UWP_LLVM_IMAGE
variables:
<<: *variables-win-arm
\ No newline at end of file
trigger:
- master
pr:
- master
jobs:
- job: Linux
pool:
vmImage: 'ubuntu-latest'
steps:
- template: linux-build.yml
\ No newline at end of file