forked from MTG/essentia
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathpyproject-tensorflow.toml
More file actions
111 lines (90 loc) · 4.78 KB
/
pyproject-tensorflow.toml
File metadata and controls
111 lines (90 loc) · 4.78 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
[tool.cibuildwheel.linux]
manylinux-x86_64-image = "mtgupf/essentia-builds:manylinux2014_x86_64"
# Only support x86_64 for essentia-tensorflow.
build = "cp**-manylinux_x86_64"
skip = ["pp*", "*-musllinux*", "*i686", "*cp36*", "*cp37*", "*cp38*"]
environment = { PROJECT_NAME="essentia-tensorflow", ESSENTIA_PROJECT_NAME="${PROJECT_NAME}", ESSENTIA_WHEEL_SKIP_3RDPARTY=1, ESSENTIA_WHEEL_ONLY_PYTHON=1 }
before-build = [
"PYBIN=/opt/python/cp36-cp36m/bin/",
"\"${PYBIN}/python\" waf configure --with-gaia --with-tensorflow --build-static --static-dependencies --pkg-config-path=\"${PKG_CONFIG_PATH}\"",
"\"${PYBIN}/python\" waf",
"\"${PYBIN}/python\" waf install"
]
test-command = "python -c 'import essentia; import essentia.standard; import essentia.streaming; from essentia.standard import MonoLoader, MetadataReader, YamlInput, Chromaprinter, TensorflowPredict'"
[tool.cibuildwheel.macos]
skip = ["pp*", "*cp36*", "*cp37*", "*cp38*"]
environment = { PROJECT_NAME="essentia-tensorflow", ESSENTIA_PROJECT_NAME="${PROJECT_NAME}", ESSENTIA_WHEEL_SKIP_3RDPARTY=1, ESSENTIA_WHEEL_ONLY_PYTHON=1, MACOSX_DEPLOYMENT_TARGET=13.0 }
before-build = [
"brew install pkg-config gcc readline sqlite gdbm freetype libpng",
"brew install eigen libyaml fftw ffmpeg@2.8 libsamplerate libtag",
"brew link --force ffmpeg@2.8",
"brew install chromaprint",
"brew link --overwrite ffmpeg@2.8",
# Delocate checks for the min OS version (LC_BUILD_VERSION or C_VERSION_MIN_MACOSX).
# Tensorflow bottle a has minimum target of 14.2 which is too new, therefore, building from source.
# Workaroud to SDK not being found: https://github.com/actions/runner-images/issues/9811
#"sudo xcode-select -s /Library/Developer/CommandLineTools",
"echo Checking available SDKs:",
"xcodebuild -showsdks",
"SDKROOT=$(xcrun --sdk macosx13.0 --show-sdk-path) brew install --build-from-source tensorflow",
#"brew tap MTG/essentia",
#"brew install gaia --HEAD",
# Override VIRTUAL_ENV set by cibuildwheel to ensure global install
"VIRTUAL_ENV=/usr/local python waf configure --with-tensorflow --pkg-config-path=\"${PKG_CONFIG_PATH}\"",
"python waf",
"python waf install"
]
test-command = "python -c 'import essentia; import essentia.standard; import essentia.streaming; from essentia.standard import MonoLoader, MetadataReader, YamlInput, Chromaprinter, TensorflowPredict'"
[[tool.cibuildwheel.overrides]]
select = "*macosx_arm64*"
skip = ["pp*", "*cp36*", "*cp37*", "*cp38*"]
environment = { PROJECT_NAME="essentia-tensorflow", ESSENTIA_PROJECT_NAME="${PROJECT_NAME}", ESSENTIA_WHEEL_SKIP_3RDPARTY=1, ESSENTIA_WHEEL_ONLY_PYTHON=1, ESSENTIA_MACOSX_ARM64=1, MACOSX_DEPLOYMENT_TARGET=14.0 }
before-build = [
"brew install pkg-config gcc readline sqlite gdbm libpng",
"brew install eigen libyaml fftw ffmpeg@2.8 libsamplerate libtag",
"brew link --force ffmpeg@2.8",
"brew install chromaprint",
"brew link --overwrite ffmpeg@2.8",
# Delocate checks for the min OS version (LC_BUILD_VERSION or C_VERSION_MIN_MACOSX).
# Tensorflow bottle has a minumum target of 15.2, which is too new, therefore, building from source.
# Workaroud to SDK not being found: https://github.com/actions/runner-images/issues/9811
#"sudo xcode-select -s /Library/Developer/CommandLineTools",
"echo Checking available SDKs:",
"xcodebuild -showsdks",
"SDKROOT=$(xcrun --sdk macosx14.0 --show-sdk-path) brew install --build-from-source tensorflow",
# Override VIRTUAL_ENV set by cibuildwheel to ensure global install
"VIRTUAL_ENV=/usr/local python waf configure --with-tensorflow --pkg-config-path=\"${PKG_CONFIG_PATH}\" --arch arm64 --no-msse",
"python waf",
"sudo python waf install",
]
# On Mac arm64, libavcodec.56.60.100, libavformat.56.40.101 and
# libavutil.54.31.100, depend on libSDL1.2-compat, which is a compatibility
# layer for SDL2. libSDL1.2-compat expects SDL2 to be installed in the default
# brew location (i.e., /opt/homebrew/opt/sdl2/lib), so the user would need to
# install it via brew manually. Alternativelly, we can manualy copy the SDL2
# libs into the wheel. This is a temporary solution, and in the long term we
# should move to FFmpeg > 2.X.
repair-wheel-command = [
"delocate-wheel --require-archs {delocate_archs} -w {dest_dir} -v {wheel}",
"mkdir -p {dest_dir}/essentia/.dylibs",
"cp /opt/homebrew/opt/sdl2/lib/libSDL2*.dylib {dest_dir}/essentia/.dylibs",
"wheel_rel=$(echo {wheel} | grep -o '[^/]*$')",
"cd {dest_dir} && zip -u {dest_dir}/$wheel_rel essentia/.dylibs/*"
]
[build-system]
requires = [
"wheel >= 0.29.0",
"setuptools >= 48",
"numpy>=2.0.0rc1",
"six",
]
build-backend = "setuptools.build_meta"
[project]
name="essentia"
license = "AGPL-3.0-only"
dynamic = ["version", "description", "readme", "authors", "keywords", "classifiers", "urls"]
dependencies = [
"numpy>=1.25",
"pyyaml",
"six",
]