mirror of
https://github.com/ONLYOFFICE/build_tools.git
synced 2026-04-07 14:06:31 +08:00
libvlc: build libvlc for linux in docker
This commit is contained in:
@ -6,13 +6,20 @@ import config
|
||||
import base
|
||||
import os
|
||||
|
||||
def docker_build(image_name, dockerfile_dir, vlc_dir):
|
||||
def docker_build(image_name, dockerfile_dir, base_dir, mount_build=False):
|
||||
base.cmd('docker', ['build', '-t', image_name, dockerfile_dir])
|
||||
base.cmd('docker', ['run', '--rm', '-v', vlc_dir + ':/vlc', image_name])
|
||||
vlc_dir = base_dir + '/vlc'
|
||||
if mount_build:
|
||||
build_dir = base_dir + '/build'
|
||||
if not base.is_dir(build_dir):
|
||||
base.create_dir(build_dir)
|
||||
base.cmd('docker', ['run', '--rm', '-v', vlc_dir + ':/vlc', '-v', build_dir + ':/build', image_name])
|
||||
else:
|
||||
base.cmd('docker', ['run', '--rm', '-v', vlc_dir + ':/vlc', image_name])
|
||||
base.cmd('docker', ['image', 'rm', image_name])
|
||||
return
|
||||
|
||||
def copy_build(src_dir, dest_dir):
|
||||
def form_build_win(src_dir, dest_dir):
|
||||
if not base.is_dir(dest_dir):
|
||||
base.create_dir(dest_dir)
|
||||
# copy include
|
||||
@ -50,49 +57,19 @@ def make():
|
||||
if "windows" == base.host_platform():
|
||||
base.cmd("git", ["config", "--global", "core.autocrlf", autocrlf_old])
|
||||
|
||||
# windows
|
||||
if "windows" == base.host_platform():
|
||||
if config.check_option("platform", "win_64"):
|
||||
docker_build('libvlc-win64', base_dir + '/tools/win_64', vlc_dir)
|
||||
copy_build(vlc_dir + '/build/win64/vlc-' + vlc_version, base_dir + '/build/win_64')
|
||||
docker_build('libvlc-win64', base_dir + '/tools/win_64', base_dir)
|
||||
form_build_win(vlc_dir + '/build/win64/vlc-' + vlc_version, base_dir + '/build/win_64')
|
||||
|
||||
if config.check_option("platform", "win_32"):
|
||||
docker_build('libvlc-win32', base_dir + '/tools/win_32', vlc_dir)
|
||||
copy_build(vlc_dir + '/build/win32/vlc-' + vlc_version, base_dir + '/build/win_32')
|
||||
docker_build('libvlc-win32', base_dir + '/tools/win_32', base_dir)
|
||||
form_build_win(vlc_dir + '/build/win32/vlc-' + vlc_version, base_dir + '/build/win_32')
|
||||
|
||||
|
||||
if (-1 != config.option("platform").find("linux")):
|
||||
if not base.is_file("tools/linux_64/.deps_complete"):
|
||||
print("Dependencies for building libvlc are not installed!\n")
|
||||
print("Please, run " + base_dir + "/tools/linux_64/deps.py to install all neccessary dependencies.")
|
||||
exit(0)
|
||||
|
||||
os.chdir("vlc")
|
||||
base.cmd("./bootstrap")
|
||||
# build contribs
|
||||
os.chdir("contrib")
|
||||
base.cmd("mkdir", ["-p", "native"])
|
||||
os.chdir("native")
|
||||
base.cmd("../bootstrap")
|
||||
base.cmd("make")
|
||||
# configure
|
||||
os.chdir(vlc_dir)
|
||||
base.cmd("mkdir", ["-p", "build"])
|
||||
base.cmd("./configure", ["--prefix=/home/mihail/main/libvlc/vlc/build", "--disable-vlc", "--disable-qt", "--disable-skins2", "--disable-chromecast"])
|
||||
# build libvlc
|
||||
base.cmd("make", ["-j$(nproc)"])
|
||||
# install in build
|
||||
base.cmd("make", ["-j$(nproc)", "install-strip"])
|
||||
|
||||
# form build
|
||||
os.chdir(base_dir)
|
||||
base.create_dir(base_dir + "/build/linux_64")
|
||||
os.chdir("build/linux_64")
|
||||
base.copy_dir(vlc_dir + "build/lib", "./lib")
|
||||
base.copy_dir(vlc_dir + "build/include", "./include")
|
||||
base.cmd("find", [".", "-name", "*.la", "-type", "f", "-delete"])
|
||||
base.delete_dir("lib/pkgconfig")
|
||||
base.delete_dir("lib/vlc/lua")
|
||||
base.cmd("lib/vlc/vlc-cache-gen", ["lib/vlc/plugins"])
|
||||
# linux
|
||||
if config.check_option("platform", "linux_64"):
|
||||
docker_build('libvlc-linux64', base_dir + '/tools/linux_64', base_dir, True)
|
||||
|
||||
os.chdir(old_cur)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user