Skip to content

Commit fabee7f

Browse files
niyas-saitasenyaev
authored andcommitted
add support for building windows/arm64 package
1 parent 79819ba commit fabee7f

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

setup.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ def main():
6060
)
6161

6262
# https://stackoverflow.com/questions/1405913/python-32bit-or-64bit-mode
63-
x64 = sys.maxsize > 2 ** 32
63+
is64 = sys.maxsize > 2 ** 32
6464

6565
package_name = "opencv-python"
6666

@@ -88,7 +88,7 @@ def main():
8888
# Path regexes with forward slashes relative to CMake install dir.
8989
rearrange_cmake_output_data = {
9090
"cv2": (
91-
[r"bin/opencv_ffmpeg\d{3,4}%s\.dll" % ("_64" if x64 else "")]
91+
[r"bin/opencv_ffmpeg\d{3,4}%s\.dll" % ("_64" if is64 else "")]
9292
if os.name == "nt"
9393
else []
9494
)
@@ -118,7 +118,7 @@ def main():
118118
files_outside_package_dir = {"cv2": ["LICENSE.txt", "LICENSE-3RD-PARTY.txt"]}
119119

120120
ci_cmake_generator = (
121-
["-G", "Visual Studio 14" + (" Win64" if x64 else "")]
121+
["-G", "Visual Studio 14" + (" Win64" if is64 else "")]
122122
if os.name == "nt"
123123
else ["-G", "Unix Makefiles"]
124124
)
@@ -152,9 +152,15 @@ def main():
152152
"-DBUILD_PNG=ON",
153153
]
154154
+ (
155+
# CMake flags for windows/arm64 build
156+
["-DCMAKE_GENERATOR_PLATFORM=ARM64",
157+
# Emulated cmake requires following flags to correctly detect
158+
# target architecture for windows/arm64 build
159+
"-DOPENCV_WORKAROUND_CMAKE_20989=ON",
160+
"-DCMAKE_SYSTEM_PROCESSOR=ARM64"]
161+
if platform.machine() == "ARM64" and sys.platform == "win32"
155162
# If it is not defined 'linker flags: /machine:X86' on Windows x64
156-
["-DCMAKE_GENERATOR_PLATFORM=x64"]
157-
if x64 and sys.platform == "win32"
163+
else ["-DCMAKE_GENERATOR_PLATFORM=x64"] if is64 and sys.platform == "win32"
158164
else []
159165
)
160166
+ (
@@ -174,7 +180,7 @@ def main():
174180
"-DWITH_MSMF=OFF"
175181
) # see: https://github.com/skvark/opencv-python/issues/263
176182

177-
if sys.platform.startswith("linux") and not x64 and "bdist_wheel" in sys.argv:
183+
if sys.platform.startswith("linux") and not is64 and "bdist_wheel" in sys.argv:
178184
subprocess.check_call("patch -p0 < patches/patchOpenEXR", shell=True)
179185

180186
# OS-specific components during CI builds

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy