Skip to content

Instantly share code, notes, and snippets.

@ePirat
Last active October 7, 2024 15:16
Show Gist options
  • Save ePirat/cde39eea1465b2b1fc5d6f0a56754c4a to your computer and use it in GitHub Desktop.
Save ePirat/cde39eea1465b2b1fc5d6f0a56754c4a to your computer and use it in GitHub Desktop.

Compile for Windows (64bit)

Pull the VideoLAN Docker container and run it in interactive mode with bash:

(The -v ~/docker:/root/shared maps /root/shared in the container to ~/docker on your machine to easily obtain the build results, so make sure ~/docker exists.)

docker pull registry.videolan.org:5000/vlc-debian-win64
docker run -v ~/docker:/root/shared -it registry.videolan.org:5000/vlc-debian-win64 /bin/bash

Clone the VLC git

cd && git clone https://git.videolan.org/git/vlc.git

Add the mingw tools to the PATH

PATH="/opt/gcc-x86_64-w64-mingw32/bin:$PATH"

Build tools

cd ~/vlc/extras/tools
./bootstrap && make

Add tools to PATH

PATH="$(pwd)/build/bin:$PATH"

Fetch prebuilt contribs: (To find prebuild contribs, check the CI artifacts)

cd ~/vlc/contrib
wget CONTRIB_URL

Extract the contribs:

tar xfjv CONTRIB_NAME.tar.bz2
cd x86_64-w64-mingw32

To make the prebuilt contribs usable, run the change_prefix script:

../src/change_prefix.sh
cd ..

Build the lua compiler

mkdir contrib-extras && cd contrib-extras
../bootstrap
make .luac
cd ../bin && mv x86_64-linux-gnu-luac x86_64-w64-mingw32-luac

Build VLC

cd ~/vlc
./bootstrap
mkdir -p build && cd build
../extras/package/win32/configure.sh --disable-nls --host="x86_64-w64-mingw32"
make
make package-win32-exe

Build NSIS

This usually is not necessary, unless you know what you are doing, skip this!

cd && mkdir -p nsis && cd nsis
apt-get remove nsis nsis-common
apt-get update && apt-get install scons libz-dev
wget https://download.sourceforge.net/project/nsis/NSIS%203/3.02.1/nsis-3.02.1-src.tar.bz2
tar xfjv nsis-3.02.1-src.tar.bz2 && cd nsis-3.02.1-src
scons VER_MAJOR=3 VER_MINOR=2 SKIPSTUBS=all SKIPPLUGINS=all SKIPUTILS=all SKIPMISC=all NSIS_CONFIG_CONST_DATA=no PREFIX=/usr/local/ install-compiler
cd ..
wget https://download.sourceforge.net/project/nsis/NSIS%203/3.02.1/nsis-3.02.1.zip
unzip nsis-3.02.1.zip
cp -R nsis-3.02.1 /usr/local/share/nsis
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment