church_archive_script/Programs/setup.py

94 lines
2.9 KiB
Python
Raw Permalink Normal View History

2023-11-29 16:12:35 +00:00
# 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")
])
]
)