Skip to content

Commit 2434015

Browse files
committed
chore(build/common.prf): prefer ../generated_cpp & keep Qt5 fallbacks
Default to `../generated_cpp` (generator output). If missing, probe the exact-version dir (`generated_cpp_<MAJOR><MINOR>`, e.g., 515) and then the legacy Qt5 fallbacks. Also allow override via: ``` qmake PYTHONQT_GENERATED_PATH=/abs/path ``` When wrappers are absent, emit a concise error that lists the searched paths and indicates how to generate them.
1 parent f3a9b57 commit 2434015

File tree

1 file changed

+44
-28
lines changed

1 file changed

+44
-28
lines changed

build/common.prf

Lines changed: 44 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -17,42 +17,58 @@ CONFIG(debug, debug|release) {
1717
TARGET = $${TARGET}_d
1818
}
1919

20-
# Try files that are generated by the user:
21-
PYTHONQT_GENERATED_PATH = $$PWD/../generated_cpp
20+
# Allow override (e.g., qmake PYTHONQT_GENERATED_PATH=/abs/path)
21+
isEmpty(PYTHONQT_GENERATED_PATH) {
22+
PYTHONQT_GENERATED_PATH = $$PWD/../generated_cpp
23+
}
2224

25+
# Fallbacks to checked-in wrappers
2326
!exists($$PYTHONQT_GENERATED_PATH) {
24-
# If no files are generated, try the checked-in wrappers:
25-
PYTHONQT_GENERATED_PATH = $$PWD/../generated_cpp_$${QT_MAJOR_VERSION}$${QT_MINOR_VERSION}
27+
# Exact version directory (e.g., generated_cpp_515 or generated_cpp_69)
28+
PYTHONQT_GENERATED_PATH_VERSIONED = $$PWD/../generated_cpp_$${QT_MAJOR_VERSION}$${QT_MINOR_VERSION}
29+
exists($$PYTHONQT_GENERATED_PATH_VERSIONED) {
30+
PYTHONQT_GENERATED_PATH = $$PYTHONQT_GENERATED_PATH_VERSIONED
31+
}
32+
}
2633

27-
!exists($$PYTHONQT_GENERATED_PATH) {
28-
# For Qt5 we know that the older generated wrappers work with the later
29-
# versions, even (apparently) Qt5.15, so:
30-
equals(QT_MAJOR_VERSION, 5) {
31-
# Qt5: have 5.0, 5.3, 5.4, 5.6 and 5.11 at present:
32-
lessThan(QT_MINOR_VERSION, 3) { # 5.1, 5.2
33-
PYTHONQT_GENERATED_PATH = $$PWD/../generated_cpp_50
34-
}
35-
else: lessThan(QT_MINOR_VERSION, 6) { # 5.5
36-
PYTHONQT_GENERATED_PATH = $$PWD/../generated_cpp_54
37-
}
38-
else: lessThan(QT_MINOR_VERSION, 11) { # 5.7, 5.8, 5.9, 5.10
39-
PYTHONQT_GENERATED_PATH = $$PWD/../generated_cpp_56
40-
}
41-
else: lessThan(QT_MINOR_VERSION, 15) { # 5.11, 5.12, 5.13, 5.14
42-
PYTHONQT_GENERATED_PATH = $$PWD/../generated_cpp_511
43-
}
44-
else { # 5.15
45-
# LATEST Qt5 generated files:
46-
PYTHONQT_GENERATED_PATH = $$PWD/../generated_cpp_515
47-
}
34+
!exists($$PYTHONQT_GENERATED_PATH) {
35+
# For Qt5 we know that the older generated wrappers work with the later
36+
# versions, even (apparently) Qt5.15, so:
37+
equals(QT_MAJOR_VERSION, 5) {
38+
# Qt5: have 5.0, 5.3, 5.4, 5.6 and 5.11 at present:
39+
lessThan(QT_MINOR_VERSION, 3) { # 5.1, 5.2
40+
PYTHONQT_GENERATED_PATH_VERSIONED = $$PWD/../generated_cpp_50
4841
}
49-
50-
!exists($$PYTHONQT_GENERATED_PATH) {
51-
error("No generated sources exist for Qt$${QT_VERSION}")
42+
else: lessThan(QT_MINOR_VERSION, 6) { # 5.3, 5.4, 5.5
43+
PYTHONQT_GENERATED_PATH_VERSIONED = $$PWD/../generated_cpp_54
44+
}
45+
else: lessThan(QT_MINOR_VERSION, 11) { # 5.6, 5.7, 5.8, 5.9, 5.10
46+
PYTHONQT_GENERATED_PATH_VERSIONED = $$PWD/../generated_cpp_56
47+
}
48+
else: lessThan(QT_MINOR_VERSION, 15) { # 5.11, 5.12, 5.13, 5.14
49+
PYTHONQT_GENERATED_PATH_VERSIONED = $$PWD/../generated_cpp_511
50+
}
51+
else { # >= 5.15
52+
PYTHONQT_GENERATED_PATH_VERSIONED = $$PWD/../generated_cpp_515
53+
}
54+
exists($$PYTHONQT_GENERATED_PATH_VERSIONED) {
55+
PYTHONQT_GENERATED_PATH = $$PYTHONQT_GENERATED_PATH_VERSIONED
5256
}
5357
}
5458
}
5559

60+
!exists($$PYTHONQT_GENERATED_PATH) {
61+
error("No generated wrapper sources for Qt $${QT_VERSION}.\n"
62+
+ "Looked in:\n"
63+
+ " - $$PWD/../generated_cpp\n"
64+
+ " - $$PWD/../generated_cpp_$${QT_MAJOR_VERSION}$${QT_MINOR_VERSION} (e.g., generated_cpp_515)\n"
65+
+ "Generate them first:\n"
66+
+ " qmake CONFIG+=generator_only && make\n"
67+
+ " cd generator && ./pythonqt_generator\n"
68+
+ "Or pass an explicit path:\n"
69+
+ " qmake PYTHONQT_GENERATED_PATH=/abs/path")
70+
}
71+
5672
!build_pass {
5773
message("Qt version: Qt$${QT_VERSION}")
5874
message("Using generated sources files from $${PYTHONQT_GENERATED_PATH}")

0 commit comments

Comments
 (0)