Skip to content

Commit c672001

Browse files
committed
fix
1 parent a6d00b1 commit c672001

File tree

4 files changed

+43
-27
lines changed

4 files changed

+43
-27
lines changed

scripts/dobuild.py

Lines changed: 38 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import sys, os, subprocess, shutil
22

3+
print(sys.platform)
34
print(sys.executable)
45
rootDir = os.path.dirname(__file__)
56
if not rootDir:
@@ -18,9 +19,17 @@
1819
qtarchdir = qtarch[qtarch.find("_") + 1 :]
1920

2021
# 准备环境
21-
pyPathEx = f"C:\\hostedtoolcache\\windows\\Python\\3.12.10\\x64\\python.exe"
22-
pyDir = f"C:\\hostedtoolcache\\windows\\Python\\{pythonversion}\\{arch}"
23-
pyPath = f"{pyDir}\\python.exe"
22+
if sys.platform == "win32":
23+
pyPathEx = f"C:/hostedtoolcache/windows/Python/3.12.10/x64/python.exe"
24+
pyDir = f"C:/hostedtoolcache/windows/Python/{pythonversion}/{arch}"
25+
pyPath = f"{pyDir}/python.exe"
26+
Qtinstallpath = f"D:/a/PyElaWidgetTools/Qt/{qtversion}/{qtarchdir}"
27+
elif sys.platform == "linux":
28+
pyPathEx = f"/opt/hostedtoolcache/Python/3.12.10/x64/bin/python"
29+
pyDir = f"/opt/hostedtoolcache/Python/{pythonversion}/{arch}/bin/python"
30+
pyPath = f"{pyDir}/python.exe"
31+
Qtinstallpath = f"/home/runner/work/PyElaWidgetTools/Qt/{qtversion}/{qtarchdir}"
32+
2433
subprocess.run(f"{pyPath} -m pip install --upgrade pip")
2534
if binding.lower().startswith("pyqt"):
2635
if qtversion.startswith("6"):
@@ -48,20 +57,23 @@ def __parsefile(fn, cb):
4857
lambda cml: cml.replace("add_subdirectory(ElaWidgetToolsExample)", ""),
4958
)
5059
__parsefile(
51-
r"..\ElaWidgetTools\ElaWidgetTools\CMakeLists.txt",
60+
"../ElaWidgetTools/ElaWidgetTools/CMakeLists.txt",
5261
lambda cml: cml.replace("qt_add_library", "add_library"), # qt6.8以上
5362
)
5463
__parsefile(
55-
r"..\ElaWidgetTools\ElaWidgetTools\ElaProperty.h",
64+
"../ElaWidgetTools/ElaWidgetTools/ElaProperty.h",
5665
lambda cml: cml.replace(
5766
"Q_DECL_EXPORT",
5867
"",
5968
).replace("Q_DECL_IMPORT", ""),
6069
)
61-
62-
archA = ("win32", "x64")[arch == "x64"]
70+
if sys.platform == "win32":
71+
archA = ("win32", "x64")[arch == "x64"]
72+
flags = f'-G "Visual Studio 17 2022" -A {archA} -T host={arch}'
73+
else:
74+
flags = ""
6375
subprocess.run(
64-
f'cmake -DELAWIDGETTOOLS_BUILD_STATIC_LIB=ON ../ElaWidgetTools/CMakeLists.txt -G "Visual Studio 17 2022" -A {archA} -T host={arch}'
76+
f"cmake -DELAWIDGETTOOLS_BUILD_STATIC_LIB=ON ../ElaWidgetTools/CMakeLists.txt {flags}"
6577
)
6678
subprocess.run(
6779
f"cmake --build ./ --config Release --target ALL_BUILD -j {os.cpu_count()}"
@@ -73,17 +85,22 @@ def __parsefile(fn, cb):
7385
subprocess.run(f'python gen_widgets.py {int(qtversion.startswith("5"))}')
7486
subprocess.run(f'python gen_pyi_from_sip.py {int(qtversion.startswith("5"))}')
7587
subprocess.run(f"{pyPath} sip_code_fix.py")
88+
if sys.platform == "win32":
89+
qmake = f"{Qtinstallpath}/bin/qmake.exe"
90+
else:
91+
qmake = f"{Qtinstallpath}/bin/qmake"
92+
7693
subprocess.run(
77-
rf"{pyDir}\Scripts\sip-build --verbose --qmake D:\a\PyElaWidgetTools\Qt\{qtversion}\{qtarchdir}\bin\qmake.exe"
94+
rf"{pyDir}/Scripts/sip-build --verbose --qmake {qmake}"
7895
)
7996
# for _dir, _, _fs in os.walk(r"."):
8097
# for _f in _fs:
8198
# print(_dir, _f)
8299
os.chdir("..")
83100
os.mkdir("objects")
84-
shutil.copy(r"pyqt\build\ElaWidgetTools\ElaWidgetTools.pyd", "objects")
85-
shutil.copy(r"pyqt\ElaWidgetTools.pyi", "objects")
86-
shutil.copytree(r"pyqt\sip", "objects/sip")
101+
shutil.copy("pyqt/build/ElaWidgetTools/ElaWidgetTools.pyd", "objects")
102+
shutil.copy("pyqt/ElaWidgetTools.pyi", "objects")
103+
shutil.copytree("pyqt/sip", "objects/sip")
87104

88105
elif binding.lower().startswith("pyside"):
89106
cwd = os.getcwd()
@@ -102,30 +119,29 @@ def __parsefile(fn, cb):
102119
os.chdir("pyside6")
103120

104121
subprocess.run(
105-
f'python gen_xml.py {os.path.abspath("../../ElaWidgetTools/ElaWidgetTools").replace("\\", "/")} D:/a/PyElaWidgetTools/Qt/{qtversion}/{qtarchdir} {pyDir.replace("\\", "/")}'
122+
f'python gen_xml.py {os.path.abspath("../../ElaWidgetTools/ElaWidgetTools").replace("\\", "/")} {Qtinstallpath} {pyDir}'
106123
)
107124

108-
archA = ("win32", "x64")[arch == "x64"]
109125
subprocess.run(
110-
f'cmake -DMY_QT_INSTALL=D:/a/PyElaWidgetTools/Qt/{qtversion}/{qtarchdir} -DMY_PYTHON_INSTALL_PATH={pyDir.replace("\\", "/")} -DELA_LIB_PATH={os.path.abspath("../ElaWidgetTools/Release/ElaWidgetTools.lib").replace("\\", "/")} -DELA_INCLUDE_PATH={os.path.abspath("../../ElaWidgetTools/ElaWidgetTools").replace("\\", "/")} ./CMakeLists.txt -G "Visual Studio 17 2022" -A {archA} -T host={arch}'
126+
f'cmake -DMY_QT_INSTALL={Qtinstallpath} -DMY_PYTHON_INSTALL_PATH={pyDir.replace("\\", "/")} -DELA_LIB_PATH={os.path.abspath("../ElaWidgetTools/Release/ElaWidgetTools.lib").replace("\\", "/")} -DELA_INCLUDE_PATH={os.path.abspath("../../ElaWidgetTools/ElaWidgetTools").replace("\\", "/")} ./CMakeLists.txt {flags}'
111127
)
112128
subprocess.run(
113129
f"cmake --build ./ --config Release --target ALL_BUILD -j {os.cpu_count()}"
114130
)
115131

116132
os.chdir("..")
117133
os.mkdir("objects")
118-
shutil.copy(r"pyside6\Release\ElaWidgetTools.pyd", "objects")
119-
shutil.copy(pyipath + r"\ElaWidgetTools.pyi", "objects")
134+
shutil.copy("pyside6/Release/ElaWidgetTools.pyd", "objects")
135+
shutil.copy(pyipath + "/ElaWidgetTools.pyi", "objects")
120136

121137
dirname = f"{binding}ElaWidgetTools"
122-
os.mkdir(rf"wheel\{dirname}")
123-
shutil.copy(r"objects\ElaWidgetTools.pyd", rf"wheel\{dirname}")
124-
shutil.copy(r"objects\ElaWidgetTools.pyi", rf"wheel\{dirname}")
138+
os.mkdir(f"wheel/{dirname}")
139+
shutil.copy("objects/ElaWidgetTools.pyd", f"wheel/{dirname}")
140+
shutil.copy("objects/ElaWidgetTools.pyi", f"wheel/{dirname}")
125141

126-
with open(r"wheel\__init__.py", "r") as ff:
142+
with open("wheel/__init__.py", "r") as ff:
127143
init = ff.read()
128-
with open(rf"wheel\{dirname}\__init__.py", "w") as ff:
144+
with open(f"wheel/{dirname}/__init__.py", "w") as ff:
129145
ff.write(f"from {binding} import QtCore, QtWidgets, QtGui\n" + init)
130146

131147
#

scripts/pyqt/gen_Def.sip.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
os.chdir(os.path.dirname(os.path.abspath(__file__)))
44

5-
with open(r"../../ElaWidgetTools/ElaWidgetTools\ElaDef.h", "r", encoding="utf8") as ff:
5+
with open("../../ElaWidgetTools/ElaWidgetTools/ElaDef.h", "r", encoding="utf8") as ff:
66
content = ff.read()
77

88
import re

scripts/pyqt/gen_widgets.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -502,7 +502,7 @@ def generate_sip_for_class__1(header_content, filename=""):
502502

503503
def cast_h_to_sip(filename):
504504
filename = os.path.splitext(os.path.basename(filename))[0]
505-
input_header_file = rf"{eladir}\{filename}.h"
505+
input_header_file = f"{eladir}/{filename}.h"
506506
output_sip_file = f"sip/{filename}.sip"
507507

508508
with open(input_header_file, "r", encoding="utf-8") as f:
@@ -552,7 +552,7 @@ def cast_h_to_sip(filename):
552552
cast_h_to_sip(f)
553553
allfiles.append(f"%Include {os.path.basename(f).split('.')[0]}.sip")
554554

555-
with open(r"sip\ElaWidgetTools.sip", "w", encoding="utf-8") as f:
555+
with open("sip/ElaWidgetTools.sip", "w", encoding="utf-8") as f:
556556
__ = "\n".join(allfiles)
557557
f.write(
558558
rf"""%Module(name=ElaWidgetTools, use_limited_api=True)

scripts/pyqt/sip_code_fix.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
print(sys.version_info.minor)
44

55
f = os.path.join(
6-
os.path.dirname(sys.executable), r"Lib\site-packages\sipbuild\project.py"
6+
os.path.dirname(sys.executable), "Lib/site-packages/sipbuild/project.py"
77
)
88
with open(f, "r") as ff:
99
x = ff.read()
@@ -18,7 +18,7 @@
1818

1919
f = os.path.join(
2020
os.path.dirname(sys.executable),
21-
r"Lib\site-packages\sipbuild\generator\utils.py",
21+
"Lib/site-packages/sipbuild/generator/utils.py",
2222
)
2323
with open(f, "r") as ff:
2424
x = ff.read()

0 commit comments

Comments
 (0)