diff --git a/src/VirtualLeaf_d.pro b/src/VirtualLeaf_d.pro new file mode 100644 --- /dev/null +++ b/src/VirtualLeaf_d.pro @@ -0,0 +1,215 @@ +# +# $Id$ +# +# This file is part of the Virtual Leaf. +# +# The Virtual Leaf is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# The Virtual Leaf is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with the Virtual Leaf. If not, see . +# +# Copyright 2010 Roeland Merks. +# + +#REACTIONS = reactions_auxin_growth.h +#REACTIONS = reactions_meinhardt.h +#REACTIONS = reactions_pce_growth.h +DEFINES += QTGRAPHICS +DEFINES += REACTIONS_HEADER=$${REACTIONS} +DEFINES += REACTIONS_HEADER_STRING=\"$${REACTIONS}\" +DEFINES += FLEMING + +CONFIG += qt debug +PERLDIR = ./perl +BINDIR = ../bin +DESTDIR = $$BINDIR +TARGET = VirtualLeaf +PARTMPL = $${TARGET}par.tmpl +MAINSRC = $${TARGET}.cpp +QT -= network sql xml +QT += qt3support +QWTDIR = /usr/local/qwt +QMAKE_LIBDIR += $$QWTDIR/lib + +win32:QWTDIR = "C:\Qwt-5.0.2" +unix:LIBS += -lxml2 -lz -lm +win32:LIBS += -L\"c:\Lib\" -L\"c:\Bin\" -lxml2 -lz -lm -lwsock32 + +!win32 { + GRAPHICS = qt #qwt +} + +win32 { + GRAPHICS = qt + RC_FILE = VirtualLeaf.rc + QMAKE_CXXFLAGS_RELEASE += -fexceptions -IC:\Include + QMAKE_CXXFLAGS_DEBUG += -fexceptions -IC:\Include + QMAKE_POST_LINK = "\ + C:\Bin\cp release\VirtualLeaf.exe \ + C:\Qt\4.5.3\bin\Qt3Support4.dll \ + C:\Qt\4.5.3\bin\QtGui4.dll \ + C:\Qt\4.5.3\bin\QtSql4.dll \ + C:\Qt\4.5.3\bin\QtXml4.dll \ + C:\Qt\4.5.3\bin\QtCore4.dll \ + C:\Qt\4.5.3\bin\QtNetwork4.dll \ + C:\Qt\4.5.3\bin\QtSvg4.dll \ + C:\bin\iconv.dll \ + C:\bin\libxml2.dll \ + C:\bin\zlib1.dll \ + C:\MinGW\bin\mingwm10.dll \ + $${DESTDIR}" +} + +# Application icons +macx { + ICON = leaficon.icns + # make sure that the executable can find the libqwt share library + QMAKE_POST_LINK = "mkdir $${DESTDIR}/$${TARGET}.app/Contents/Frameworks; \ + cp /usr/local/qwt/lib/libqwt.dylib $${DESTDIR}/$${TARGET}.app/Contents/Frameworks/.; \ + #install_name_tool -change libqwt.5.dylib $$QWTDIR/lib/libqwt.dylib $${DESTDIR}/$${TARGET}.app/Contents/MacOS/$${TARGET}; \ + install_name_tool -id @executable_path/../Frameworks/libqwt.dylib $${DESTDIR}/$${TARGET}.app/Contents/Frameworks/libqwt.dylib; \ + install_name_tool -change libqwt.5.dylib @executable_path/../Frameworks/libqwt.dylib $${DESTDIR}/$${TARGET}.app/Contents/MacOS/$${TARGET};\ + cp leaficon.icns $${DESTDIR}/$${TARGET}.app; " +} + +macx:release { + LIBS+= -dead_strip +} + +unix { + system(rm -f parameter.cpp parameter.h) + system(perl $$PERLDIR/make_parameter_source.pl $$PARTMPL) + system(perl $$PERLDIR/make_pardialog_source.pl $$PARTMPL) + #system(perl $$PERLDIR/make_xmlwritecode.pl -h $$REACTIONS) + CC = /usr/bin/gcc + QMAKE_CXXFLAGS_RELEASE += -fexceptions -I/usr/include/libxml2 + QMAKE_CXXFLAGS_DEBUG += -fexceptions -I/usr/include/libxml2 -DQDEBUG -ggdb3 -O0 + QMAKE_LFLAGS += -fPIC +} + +# Input +HEADERS += \ + apoplastitem.h \ + canvas.h \ + cellbase.h \ + cell.h \ + cellitem.h \ + forwardeuler.h \ + infobar.h \ + mainbase.h \ + mainbase.h \ + matrix.h \ + mesh.h \ + miscq.h \ + modelcatalogue.h \ + Neighbor.h \ + node.h \ + nodeitem.h \ + nodeset.h \ + OptionFileDialog.h \ + output.h \ + parameter.h \ + pardialog.h \ + parse.h \ + pi.h \ + qcanvasarrow.h \ + random.h \ + rungekutta.h \ + simitembase.h \ + simplugin.h \ + sqr.h \ + tiny.h \ + transporterdialog.h \ + UniqueMessage.h \ + vector.h \ + wallbase.h \ + wall.h \ + wallitem.h \ + warning.h \ + xmlwrite.h \ + $${PARTMPL} + +SOURCES += \ + apoplastitem.cpp \ + canvas.cpp \ + cellbase.cpp \ + cell.cpp \ + cellitem.cpp \ + forwardeuler.cpp \ + mainbase.cpp \ + matrix.cpp \ + mesh.cpp \ + miscq.cpp \ + modelcatalogue.cpp \ + Neighbor.cpp \ + node.cpp \ + nodeitem.cpp \ + nodeset.cpp \ + OptionFileDialog.cpp \ + output.cpp \ + parameter.cpp \ + pardialog.cpp \ + parse.cpp \ + random.cpp \ + rungekutta.cpp \ + simitembase.cpp \ + transporterdialog.cpp \ + UniqueMessage.cpp \ + vector.cpp \ + wallbase.cpp \ + wall.cpp \ + wallitem.cpp \ + warning.cpp \ + xmlwritecode.cpp \ + xmlwrite.cpp \ + $$MAINSRC + +contains( TARGET, leaf_fleming ) { + DEFINES += FLEMING +} + +contains(GRAPHICS, qwt) { + macx:LIBS += -L$$QWTDIR/lib -lqwt + win32:LIBS += -L$$QWTDIR/lib -lqwt5 + #LIBS += -L$$QWTDIR/lib -lqwt + INCLUDEPATH += $$QWTDIR/include + DEFINES += HAVE_QWT + HEADERS += data_plot.h + SOURCES += data_plot.cpp +} + +contains( GRAPHICS, qt ) { + message( "Building Qt executable" ) + QMAKE_CXXFLAGS_RELEASE += -DQTGRAPHICS # -fpermissive + QMAKE_CXXFLAGS_DEBUG += -DQTGRAPHICS +} + +contains( GRAPHICS, xfig ) { + message("Building Xfig executable (background runnable).") + QMAKE_CXXFLAGS_RELEASE += -DXFIGGRAPHICS + QMAKE_CXXFLAGS_DEBUG += -DXFIGGRAPHICS +} + +contains( GRAPHICS, x11 ) { + !unix { + error("X11 graphics only available on Unix systems.") + } + message("Building X11 executable") + SOURCES += x11graph.cpp + HEADERS += x11graph.h + QMAKE_CXXFLAGS_RELEASE += -DX11GRAPHICS + QMAKE_CXXFLAGS_DEBUG += -DX11GRAPHICS + CONFIG -= qt + CONFIG += x11 + unix:LIBS += -lpng +} + +# finis