-
Notifications
You must be signed in to change notification settings - Fork 42
/
qwt-qt4.rb
98 lines (84 loc) · 2.99 KB
/
qwt-qt4.rb
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
class QwtQt4 < Formula
desc "Qt Widgets for Technical Applications (qt4 version)"
homepage "https://qwt.sourceforge.io/"
url "https://downloads.sourceforge.net/project/qwt/qwt/6.1.3/qwt-6.1.3.tar.bz2"
sha256 "f3ecd34e72a9a2b08422fb6c8e909ca76f4ce5fa77acad7a2883b701f4309733"
revision 1
option "with-qwtmathml", "Build the qwtmathml library"
option "without-plugin", "Skip building the Qt Designer plugin"
depends_on "cartr/qt4/qt@4"
# Update designer plugin linking back to qwt framework/lib after install
# See: https://sourceforge.net/p/qwt/patches/45/
patch :DATA
def install
inreplace "qwtconfig.pri" do |s|
s.gsub!(/^\s*QWT_INSTALL_PREFIX\s*=(.*)$/, "QWT_INSTALL_PREFIX=#{prefix}")
s.sub!(/\+(=\s*QwtDesigner)/, "-\\1") if build.without? "plugin"
# Install Qt plugin in `lib/qt4/plugins/designer`, not `plugins/designer`.
s.sub! %r{(= \$\$\{QWT_INSTALL_PREFIX\})/(plugins/designer)$},
"\\1/lib/qt4/\\2"
end
args = ["-config", "release", "-spec"]
# On Mavericks we want to target libc++, this requires a unsupported/macx-clang-libc++ flag
args << if ENV.compiler == :clang && MacOS.version >= :mavericks
"unsupported/macx-clang-libc++"
else
"macx-g++"
end
if build.with? "qwtmathml"
args << "QWT_CONFIG+=QwtMathML"
prefix.install "textengines/mathml/qtmmlwidget-license"
end
system "qmake", *args
system "make"
system "make", "install"
end
def caveats
s = ""
if build.with? "qwtmathml"
s += <<~EOS
The qwtmathml library contains code of the MML Widget from the Qt solutions package.
Beside the Qwt license you also have to take care of its license:
#{opt_prefix}/qtmmlwidget-license
EOS
end
s
end
test do
(testpath/"test.cpp").write <<~EOS
#include <qwt_plot_curve.h>
int main() {
QwtPlotCurve *curve1 = new QwtPlotCurve("Curve 1");
return (curve1 == NULL);
}
EOS
system ENV.cxx, "test.cpp", "-o", "out",
"-framework", "qwt", "-framework", "QtCore",
"-F#{lib}", "-F#{Formula["cartr/qt4/qt@4"].opt_lib}",
"-I#{lib}/qwt.framework/Headers",
"-I#{Formula["cartr/qt4/qt@4"].opt_lib}/QtCore.framework/Headers",
"-I#{Formula["cartr/qt4/qt@4"].opt_lib}/QtGui.framework/Headers"
system "./out"
end
end
__END__
diff --git a/designer/designer.pro b/designer/designer.pro
index c269e9d..c2e07ae 100644
--- a/designer/designer.pro
+++ b/designer/designer.pro
@@ -126,6 +126,16 @@ contains(QWT_CONFIG, QwtDesigner) {
target.path = $${QWT_INSTALL_PLUGINS}
INSTALLS += target
+
+ macx {
+ contains(QWT_CONFIG, QwtFramework) {
+ QWT_LIB = qwt.framework/Versions/$${QWT_VER_MAJ}/qwt
+ }
+ else {
+ QWT_LIB = libqwt.$${QWT_VER_MAJ}.dylib
+ }
+ QMAKE_POST_LINK = install_name_tool -change $${QWT_LIB} $${QWT_INSTALL_LIBS}/$${QWT_LIB} $(DESTDIR)$(TARGET)
+ }
}
else {
TEMPLATE = subdirs # do nothing