class Qwt < Formula desc "Qt Widgets for Technical Applications" 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 4 bottle do sha256 "62822bdbe6aa248f6382c23a2540bfc4ed38a77cff8f60872568e4a430ff2d94" => :mojave sha256 "d91a8d16588cd615df09fc8bdf288c1eea5be8c0ad7e0fe894ad70914eb47488" => :high_sierra sha256 "5e25de79818df25e3dab96795d24c4de066a39ae9d616d77c05f528ace671f6f" => :sierra sha256 "b486e9d7b4a9d15886b51d9536ea6b32a642262d3acff5a7ea6985d7fd88db1a" => :el_capitan sha256 "81fcb45fea416bc89e99b213d991c08ccb3ed34ef7da67346a273f8a1f203293" => :yosemite end option "with-qwtmathml", "Build the qwtmathml library" option "without-plugin", "Skip building the Qt Designer plugin" depends_on "qt" # 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/qt/plugins/designer`, not `plugins/designer`. s.sub! %r{(= \$\$\{QWT_INSTALL_PREFIX\})/(plugins/designer)$}, "\\1/lib/qt/\\2" end args = ["-config", "release", "-spec"] # On Mavericks we want to target libc++, this requires a unsupported/macx-clang-libc++ flag if ENV.compiler == :clang && MacOS.version >= :mavericks args << "macx-clang" else args << "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 int main() { QwtPlotCurve *curve1 = new QwtPlotCurve("Curve 1"); return (curve1 == NULL); } EOS system ENV.cxx, "test.cpp", "-o", "out", "-std=c++11", "-framework", "qwt", "-framework", "QtCore", "-F#{lib}", "-F#{Formula["qt"].opt_lib}", "-I#{lib}/qwt.framework/Headers", "-I#{Formula["qt"].opt_lib}/QtCore.framework/Versions/5/Headers", "-I#{Formula["qt"].opt_lib}/QtGui.framework/Versions/5/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