Skip to content

Commit 0d3c59e

Browse files
committed
build Mode.c as a common library
1 parent c889643 commit 0d3c59e

File tree

1 file changed

+8
-15
lines changed

1 file changed

+8
-15
lines changed

setup.py

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,6 @@ def get_version() -> str:
9393
"JpegDecode",
9494
"JpegEncode",
9595
"Matrix",
96-
"Mode",
9796
"ModeFilter",
9897
"Negative",
9998
"Offset",
@@ -938,17 +937,6 @@ def build_extensions(self) -> None:
938937

939938
self.summary_report(feature)
940939

941-
def build_extension(self, ext):
942-
# Append the extension name (not including "PIL.") to the temp build directory
943-
# so that each module builds to its own directory. We need to make a (shallow)
944-
# copy of 'self' here so that we don't overwrite this value when running in
945-
# parallel.
946-
import copy
947-
948-
self_copy = copy.copy(self)
949-
self_copy.build_temp = os.path.join(self.build_temp, ext.name[4:])
950-
build_ext.build_extension(self_copy, ext)
951-
952940
def summary_report(self, feature: ext_feature) -> None:
953941
print("-" * 68)
954942
print("PIL SETUP SUMMARY")
@@ -1013,16 +1001,20 @@ def debug_build() -> bool:
10131001
return hasattr(sys, "gettotalrefcount") or FUZZING_BUILD
10141002

10151003

1004+
libraries = [
1005+
("pil_imaging_mode", {"sources": ["src/libImaging/Mode.c"]}),
1006+
]
1007+
10161008
files = ["src/_imaging.c"]
10171009
for src_file in _IMAGING:
10181010
files.append("src/" + src_file + ".c")
10191011
for src_file in _LIB_IMAGING:
10201012
files.append(os.path.join("src/libImaging", src_file + ".c"))
10211013
ext_modules = [
1022-
Extension("PIL._imaging", files),
1023-
Extension("PIL._imagingft", ["src/_imagingft.c", "src/libImaging/Mode.c"]),
1014+
Extension("PIL._imaging", files, libraries=["pil_imaging_mode"]),
1015+
Extension("PIL._imagingft", ["src/_imagingft.c"], libraries=["pil_imaging_mode"]),
10241016
Extension("PIL._imagingcms", ["src/_imagingcms.c"]),
1025-
Extension("PIL._webp", ["src/_webp.c", "src/libImaging/Mode.c"]),
1017+
Extension("PIL._webp", ["src/_webp.c"], libraries=["pil_imaging_mode"]),
10261018
Extension("PIL._imagingtk", ["src/_imagingtk.c", "src/Tk/tkImaging.c"]),
10271019
Extension("PIL._imagingmath", ["src/_imagingmath.c"]),
10281020
Extension("PIL._imagingmorph", ["src/_imagingmorph.c"]),
@@ -1038,6 +1030,7 @@ def debug_build() -> bool:
10381030
setup(
10391031
cmdclass={"build_ext": pil_build_ext},
10401032
ext_modules=ext_modules,
1033+
libraries=libraries,
10411034
zip_safe=not (debug_build() or PLATFORM_MINGW),
10421035
)
10431036
except RequiredDependencyException as err:

0 commit comments

Comments
 (0)