93 lines
2.9 KiB
Python
93 lines
2.9 KiB
Python
# Always prefer setuptools over distutils
|
|
from setuptools import setup
|
|
from platform import architecture
|
|
|
|
import os
|
|
from os import path
|
|
from pathlib import Path
|
|
|
|
self_path = Path(__file__).resolve()
|
|
CURRENT_RELEASE = next(path for path in (self_path.with_name('VAPOURSYNTH_VERSION'), *(folder / 'VAPOURSYNTH_VERSION' for folder in self_path.parents)) if path.exists()).read_text('utf8').split(' ')[-1].strip().split('-')[0]
|
|
|
|
try:
|
|
from wheel.bdist_wheel import bdist_wheel as _bdist_wheel
|
|
class bdist_wheel(_bdist_wheel):
|
|
def finalize_options(self):
|
|
_bdist_wheel.finalize_options(self)
|
|
self.root_is_pure = False
|
|
|
|
def get_tag(self):
|
|
python, abi, plat = _bdist_wheel.get_tag(self)
|
|
# We don't contain any python source
|
|
python, abi = 'py2.py3', 'none'
|
|
return python, abi, plat
|
|
except ImportError:
|
|
bdist_wheel = None
|
|
|
|
|
|
is_win = (architecture()[1] == "WindowsPE")
|
|
is_64 = (architecture()[0] == "64bit")
|
|
here = path.abspath(path.dirname(__file__))
|
|
|
|
if not is_win:
|
|
raise OSError("VapourSynth Portable is currently only supported on Windows Systems.")
|
|
|
|
if not os.path.exists(os.path.join(here, "VapourSynth.dll")):
|
|
if is_64:
|
|
subdir = "buildp64"
|
|
else:
|
|
subdir = "buildp32"
|
|
build_dir = os.path.join(here, subdir)
|
|
|
|
if not os.path.exists(os.path.join(build_dir, "VapourSynth.dll")):
|
|
raise OSError("Failed to detect VapourSynth-portable build directory.")
|
|
else:
|
|
subdir = "."
|
|
build_dir = here
|
|
|
|
if is_64:
|
|
plugin_subdir = 'vapoursynth64'
|
|
else:
|
|
plugin_subdir = 'vapoursynth32'
|
|
plugin_dir = os.path.join(subdir, plugin_subdir)
|
|
|
|
setup(
|
|
name = "VapourSynth-portable",
|
|
version=CURRENT_RELEASE,
|
|
description = "A frameserver for the 21st century",
|
|
url = "http://www.vapoursynth.com/",
|
|
download_url = "https://github.com/vapoursynth/vapoursynth",
|
|
author = "Fredrik Mellbin",
|
|
author_email = "fredrik.mellbin@gmail.com",
|
|
|
|
cmdclass={'bdist_wheel': bdist_wheel},
|
|
|
|
packages=[],
|
|
install_requires=["vapoursynth==" + CURRENT_RELEASE],
|
|
data_files = [
|
|
("Lib\\site-packages", [
|
|
os.path.join(build_dir, p)
|
|
for p in os.listdir(build_dir)
|
|
if p.endswith("140.dll") or \
|
|
p.endswith(".vs")
|
|
]),
|
|
|
|
("Scripts", [
|
|
os.path.join(build_dir, "VSPipe.exe"),
|
|
os.path.join(build_dir, "VSScript.dll"),
|
|
os.path.join(build_dir, "portable.vs")
|
|
]),
|
|
|
|
("Lib\\site-packages\\%s\\coreplugins"%plugin_subdir, [
|
|
os.path.join(plugin_dir, 'coreplugins', p)
|
|
for p in os.listdir(os.path.join(plugin_dir, 'coreplugins'))
|
|
if p.endswith(".dll")
|
|
]),
|
|
|
|
("Lib\\site-packages\\%s\\plugins"%plugin_subdir, [
|
|
os.path.join(plugin_dir, 'plugins', p)
|
|
for p in os.listdir(os.path.join(plugin_dir, 'plugins'))
|
|
if p.endswith(".dll") or p.endswith(".keep")
|
|
])
|
|
]
|
|
)
|