blob: 98961887b941db80c0848ef1f496b82f765ff644 (
plain)
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
112
113
114
115
116
117
118
119
120
121
122
|
# Build the Qt Creator CDB extension
TEMPLATE = lib
include(../../../qtcreator.pri)
isEmpty(QTC_KEEP_CDBEXT_DEFAULT_CONFIG): CONFIG += release
VERSION =
CONFIG -= precompile_header
CONFIG += hide_symbols
# Switch to statically linked CRT. Note: There will be only one
# global state of the CRT, reconsider if other DLLs are required!
# TODO: No effect, currently?
QMAKE_CXXFLAGS_RELEASE -= -MD
QMAKE_CXXFLAGS_DEBUG -= -MDd
QMAKE_CXXFLAGS_RELEASE += -MT
QMAKE_CXXFLAGS_DEBUG += -MTd
BASENAME=qtcreatorcdbext
DEF_FILE=$$PWD/qtcreatorcdbext.def
# Find out whether we are _building_ 64/32bit and determine target
# directories accordingly.
#
# Check for VSCMD_ARG_TGT_ARCH (VS 17) or Platform=X64 (VS 13, 15)
# For older versions, fall back to hacky check on LIBPATH
ENV_TARGET_ARCH=$$(VSCMD_ARG_TGT_ARCH)
isEmpty(ENV_TARGET_ARCH):ENV_TARGET_ARCH = $$(Platform)
contains(ENV_TARGET_ARCH, .*64$) {
DIRNAME=$${BASENAME}64
CDB_PLATFORM=amd64
} else {
DIRNAME=$${BASENAME}32
CDB_PLATFORM=i386
}
LIBS+=-ldbgeng -luser32
DESTDIR=$$IDE_BUILD_TREE/lib/$${DIRNAME}
TARGET = $$BASENAME
message("Compiling Qt Creator CDB extension $$TARGET $$DESTDIR for $$CDB_PLATFORM")
CONFIG -= qt
QT -= gui
QT -= core
SOURCES += qtcreatorcdbextension.cpp \
extensioncontext.cpp \
eventcallback.cpp \
symbolgroupnode.cpp \
symbolgroup.cpp \
common.cpp \
stringutils.cpp \
gdbmihelpers.cpp \
outputcallback.cpp \
symbolgroupvalue.cpp \
containers.cpp
HEADERS += extensioncontext.h \
common.h \
iinterfacepointer.h \
eventcallback.h \
symbolgroup.h \
stringutils.h \
gdbmihelpers.h \
outputcallback.h \
symbolgroupvalue.h \
containers.h \
knowntype.h \
symbolgroupnode.h
isEmpty(PYTHON_INSTALL_DIR):PYTHON_INSTALL_DIR=$$(PYTHON_INSTALL_DIR)
!isEmpty(PYTHON_INSTALL_DIR):exists($$PYTHON_INSTALL_DIR) {
DEFINES += WITH_PYTHON=1
INCLUDEPATH += $$PYTHON_INSTALL_DIR/include
DEPENDPATH += $$PYTHON_INSTALL_DIR/include
SOURCES += \
pycdbextmodule.cpp \
pyfield.cpp \
pystdoutredirect.cpp \
pytype.cpp \
pyvalue.cpp
HEADERS += \
pycdbextmodule.h \
pyfield.h \
pystdoutredirect.h \
pytype.h \
pyvalue.h
CONFIG(release, debug|release): ABS_PYTHON_DLL = $$files($${PYTHON_INSTALL_DIR}/python??.dll)
CONFIG(debug, debug|release): ABS_PYTHON_DLL = $$files($${PYTHON_INSTALL_DIR}/python??_d.dll)
PYTHON_DLL = $$basename(ABS_PYTHON_DLL)
PYTHON_BASE_NAME = $$replace(PYTHON_DLL, .dll$, )
LIBS += -L$${PYTHON_INSTALL_DIR}/libs -l$$PYTHON_BASE_NAME
inst_python.files = $$ABS_PYTHON_DLL
inst_python.files += $$files($${PYTHON_INSTALL_DIR}/python??.zip)
inst_python.path = $$QTC_PREFIX/lib/$${DIRNAME}
inst_python.CONFIG += no_check_exist no_default_install
INSTALLS += inst_python
build_pass: deploy_python.depends = install_inst_python
deploy_python.CONFIG = recursive
CONFIG(release, debug|release): deploy_python.recurse = Release
CONFIG(debug, debug|release): deploy_python.recurse = Debug
QMAKE_EXTRA_TARGETS += deploy_python
} else {
message("Set PYTHON_INSTALL_DIR pointing to Python 3.5 or greater to enable the python dumpers for cdb.")
}
target.path = $$QTC_PREFIX/lib/$${DIRNAME} # TODO this should go to INSTALL_LIBRARY_PATH/$${DIRNAME}
INSTALLS += target
|