Changeset - 096de6bb6fab
[Not reviewed]
default
0 9 0
Michael Guravage - 15 years ago 2010-04-29 19:03:53
michael.guravage@cwi.nl
Restructured project files for windows build. Compiling with libxml2 yields multiple definition errors.
9 files changed with 90 insertions and 62 deletions:
0 comments (0 inline, 0 general)
.hgignore
Show inline comments
 
# use glob syntax.
 
syntax: glob
 

	
 
*~
 
*.a
 
*.cache
 
*.Debug
 
*.o
 
*.orig
 
*.out
 
*.Release
 
*.so
 
*.vars
 
*Makefile
 
*make.out
 
*moc_*.cpp
 
*make.out
 
*Makefile
 
src/parameter.h
 
src/parameter.cpp
 
src/default.par
 
src/pardialog.h
 
src/pardialog.cpp
 
bin*
src/VirtualLeaf.pro
Show inline comments
 
@@ -24,37 +24,35 @@
 
#REACTIONS = reactions_pce_growth.h
 
DEFINES += QTGRAPHICS
 
DEFINES += REACTIONS_HEADER=$${REACTIONS}
 
DEFINES += REACTIONS_HEADER_STRING=\"$${REACTIONS}\"
 
DEFINES += FLEMING
 

	
 
CONFIG += qt release 
 
CONFIG += qt release
 
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
 
LIBXML2DIR = C:\libxml2
 

	
 
!win32 {
 
 GRAPHICS = qt #qwt
 
}
 

	
 
win32 {
 
 CONFIG += console
 
 system(DEL parameter.cpp parameter.h) 
 
 GRAPHICS = qt 
 
 RC_FILE = VirtualLeaf.rc
 
 QMAKE_CXXFLAGS_RELEASE += -fexceptions -IC:\Include
 
 QMAKE_CXXFLAGS_DEBUG += -fexceptions -IC:\Include
 
 QMAKE_CXXFLAGS += -fexceptions -I$${LIBXML2DIR}\include
 
 QMAKE_CXXFLAGS_DEBUG += -DQDEBUG -ggdb3 -O0
 
 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 \
 
@@ -63,12 +61,13 @@ win32 {
 
  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}"
 
 LIBS += -lz -lm -lwsock32 -L$${LIBXML2DIR}\lib -lxml2
 
}
 

	
 
# Application icons
 
macx {
 
 ICON = leaficon.icns
 
 # make sure that the executable can find the libqwt share library
 
@@ -83,21 +82,25 @@ macx {
 
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
 
 QWTDIR = /ufs/guravage/opt/qwt-5.2.1-svn
 
 QMAKE_LIBDIR += $$QWTDIR/lib 
 
 QMAKE_CXXFLAGS += -fexceptions -I/usr/include/libxml2
 
 QMAKE_CXXFLAGS_DEBUG += -DQDEBUG -ggdb3 -O0
 
 QMAKE_LFLAGS += -fPIC
 
 LIBS += -lxml2 -lz -lm 
 
}
 

	
 
system(perl $$PERLDIR/make_parameter_source.pl $$PARTMPL)
 
system(perl $$PERLDIR/make_pardialog_source.pl $$PARTMPL)
 
#system(perl $$PERLDIR/make_xmlwritecode.pl -h $$REACTIONS)
 

	
 
# Input
 
HEADERS += \
 
 apoplastitem.h \
 
 canvas.h \
 
 cellbase.h \
 
 cell.h \
 
@@ -174,42 +177,39 @@ SOURCES += \
 

	
 
contains( TARGET, leaf_fleming ) {
 
 DEFINES += FLEMING	
 
}
 

	
 
contains(GRAPHICS, qwt) {
 
 macx:LIBS += -L$$QWTDIR/lib -lqwt
 
 win32:LIBS += -L$$QWTDIR/lib -lqwt5
 
 #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 
 
 QMAKE_CXXFLAGS += -DQTGRAPHICS # -fpermissive
 
}
 

	
 
contains( GRAPHICS, xfig ) {
 
 message("Building Xfig executable (background runnable).")
 
 QMAKE_CXXFLAGS_RELEASE += -DXFIGGRAPHICS
 
 QMAKE_CXXFLAGS_DEBUG += -DXFIGGRAPHICS
 
 QMAKE_CXXFLAGS += -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 
 
 QMAKE_CXXFLAGS += -DX11GRAPHICS
 
 CONFIG -= qt
 
 CONFIG += x11
 
 unix:LIBS += -lpng
 
}
 

	
 
# finis
src/VirtualLeaf_d.pro
Show inline comments
 
@@ -33,28 +33,26 @@ 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
 
LIBXML2DIR = C:\libxml2
 

	
 
!win32 {
 
 GRAPHICS = qt #qwt
 
}
 

	
 
win32 {
 
 CONFIG += console
 
 system(DEL parameter.cpp parameter.h) 
 
 GRAPHICS = qt 
 
 RC_FILE = VirtualLeaf.rc
 
 QMAKE_CXXFLAGS_RELEASE += -fexceptions -IC:\Include
 
 QMAKE_CXXFLAGS_DEBUG += -fexceptions -IC:\Include
 
 QMAKE_CXXFLAGS += -fexceptions -I$${LIBXML2DIR}\include
 
 QMAKE_CXXFLAGS_DEBUG += -DQDEBUG -ggdb3 -O0
 
 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 \
 
@@ -63,12 +61,13 @@ win32 {
 
  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}"
 
 LIBS += -lz -lm -lwsock32 -L$${LIBXML2DIR}\lib -lxml2
 
}
 

	
 
# Application icons
 
macx {
 
 ICON = leaficon.icns
 
 # make sure that the executable can find the libqwt share library
 
@@ -83,21 +82,25 @@ macx {
 
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
 
 QWTDIR = /ufs/guravage/opt/qwt-5.2.1-svn
 
 QMAKE_LIBDIR += $$QWTDIR/lib 
 
 QMAKE_CXXFLAGS += -fexceptions -I/usr/include/libxml2
 
 QMAKE_CXXFLAGS_DEBUG += -DQDEBUG -ggdb3 -O0
 
 QMAKE_LFLAGS += -fPIC
 
 LIBS += -lxml2 -lz -lm 
 
}
 

	
 
system(perl $$PERLDIR/make_parameter_source.pl $$PARTMPL)
 
system(perl $$PERLDIR/make_pardialog_source.pl $$PARTMPL)
 
#system(perl $$PERLDIR/make_xmlwritecode.pl -h $$REACTIONS)
 

	
 
# Input
 
HEADERS += \
 
 apoplastitem.h \
 
 canvas.h \
 
 cellbase.h \
 
 cell.h \
 
@@ -174,42 +177,39 @@ SOURCES += \
 

	
 
contains( TARGET, leaf_fleming ) {
 
 DEFINES += FLEMING	
 
}
 

	
 
contains(GRAPHICS, qwt) {
 
 macx:LIBS += -L$$QWTDIR/lib -lqwt
 
 win32:LIBS += -L$$QWTDIR/lib -lqwt5
 
 #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 
 
 QMAKE_CXXFLAGS += -DQTGRAPHICS # -fpermissive
 
}
 

	
 
contains( GRAPHICS, xfig ) {
 
 message("Building Xfig executable (background runnable).")
 
 QMAKE_CXXFLAGS_RELEASE += -DXFIGGRAPHICS
 
 QMAKE_CXXFLAGS_DEBUG += -DXFIGGRAPHICS
 
 QMAKE_CXXFLAGS += -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 
 
 QMAKE_CXXFLAGS += -DX11GRAPHICS
 
 CONFIG -= qt
 
 CONFIG += x11
 
 unix:LIBS += -lpng
 
}
 

	
 
# finis
src/build_models/plugin_auxingrowth.pro
Show inline comments
 
@@ -27,19 +27,20 @@ TARGET = auxingrowth
 
HEADERS = ../simplugin.h $${TARGET}plugin.h  
 
QMAKE_CXXFLAGS += -I..
 
QT += qt3support
 
SOURCES = $${TARGET}plugin.cpp
 
TEMPLATE = lib 
 

	
 
unix:LIBS += -L"lib" -lvleaf
 
win32:LIBS += -L"lib" -lvleaf
 
LIBXML2DIR = C:\libxml2
 

	
 
unix {
 
 LIBS += -Llib -lvleaf
 
 QMAKE_CXXFLAGS += -fexceptions -I/usr/include/libxml2
 
 QMAKE_LFLAGS += -fPIC
 
}
 

	
 
win32 {
 
 QMAKE_CXXFLAGS += -fexceptions -IC:\Include
 
 LIBS += -Llib -lvleaf
 
 QMAKE_CXXFLAGS += -fexceptions -IC:\strawberry\c\include -I$${LIBXML2DIR}\include
 
}
 

	
 
# finis
src/build_models/plugin_leaf.pro
Show inline comments
 
@@ -27,19 +27,20 @@ TARGET = leaf
 
HEADERS = ../simplugin.h $${TARGET}plugin.h  
 
QMAKE_CXXFLAGS += -I..
 
QT += qt3support
 
SOURCES = $${TARGET}plugin.cpp
 
TEMPLATE = lib 
 

	
 
unix:LIBS += -L"lib" -lvleaf
 
win32:LIBS += -L"lib" -lvleaf
 
LIBXML2DIR = C:\libxml2
 

	
 
unix {
 
 LIBS += -Llib -lvleaf
 
 QMAKE_CXXFLAGS += -fexceptions -fPIC -I/usr/include/libxml2
 
 QMAKE_LFLAGS += -fPIC
 
}
 

	
 
win32 {
 
 QMAKE_CXXFLAGS += -fexceptions -IC:\Include
 
 LIBS += -Llib -lvleaf
 
 QMAKE_CXXFLAGS += -fexceptions -IC:\strawberry\c\include -I$${LIBXML2DIR}\include
 
}
 

	
 
# finis
src/build_models/plugin_meinhardt.pro
Show inline comments
 
@@ -27,20 +27,21 @@ TARGET = meinhardt
 
HEADERS = simplugin.h $${TARGET}plugin.h  
 
QMAKE_CXXFLAGS += -I..
 
QT += qt3support
 
SOURCES = $${TARGET}plugin.cpp
 
TEMPLATE = lib 
 

	
 
unix:LIBS += -L"lib" -lvleaf
 
win32:LIBS += -L"lib" -lvleaf
 
LIBXML2DIR = C:\libxml2
 

	
 
unix {
 
 LIBS += -Llib -lvleaf
 
 QMAKE_CXXFLAGS += -fexceptions -I/usr/include/libxml2
 
 QMAKE_LFLAGS += -fPIC
 
}
 

	
 
win32 {
 
 QMAKE_CXXFLAGS += -fexceptions -IC:\Include
 
 LIBS += -Llib -lvleaf
 
 QMAKE_CXXFLAGS += -fexceptions -IC:\strawberry\c\include -I$${LIBXML2DIR}\include
 
}
 

	
 
# finis
 

	
src/build_models/plugin_test.pro
Show inline comments
 
@@ -28,18 +28,20 @@ TARGET = test
 
HEADERS = ../simplugin.h $${TARGET}plugin.h  
 
QMAKE_CXXFLAGS += -I..
 
QT += qt3support
 
SOURCES = $${TARGET}plugin.cpp
 
TEMPLATE = lib 
 

	
 
unix:LIBS += -L"lib" -lvleaf
 
win32:LIBS += -L"lib" -lvleaf
 
LIBXML2DIR = C:\libxml2
 

	
 
unix {
 
 LIBS += -Llib -lvleaf
 
 QMAKE_CXXFLAGS += -fexceptions -I/usr/include/libxml2
 
 QMAKE_LFLAGS += -fPIC
 
 QMAKE_CXXFLAGS += -fexceptions -I/usr/include/libxml2
 
}
 

	
 
win32 {
 
 QMAKE_CXXFLAGS += -fexceptions -IC:\Include
 
 LIBS += -Llib -lvleaf
 
 QMAKE_CXXFLAGS += -fexceptions -I$${LIBXML2DIR}\include
 
}
 

	
 
# finis
src/cellbase.h
Show inline comments
 
@@ -27,16 +27,19 @@
 
#define _CELLBASE_H_
 

	
 
#include <list>
 
#include <vector>
 
#include <iostream>
 
#include <QString>
 
#include <QDebug>
 

	
 
#include "vector.h"
 
#include "parameter.h"
 
#include "wall.h"
 
#include "warning.h"
 
#include "assert.h"
 

	
 
extern Parameter par;
 
using namespace std;
 

	
 
class Mesh;
 
class Node;
 
@@ -125,14 +128,26 @@ class CellBase :  public QObject, public
 
    enum boundary_type {None, Noflux, SourceSink, SAM};
 
    static const char * boundary_type_names[4];
 

	
 
    inline const char *BoundaryStr(void) { return boundary_type_names[boundary]; }
 
    
 
    ostream &print(ostream &os) const;
 

	
 
    inline double Chemical(int c) const { // returns the value of chemical c
 
      return chem[c];
 
    #ifdef QDEBUG
 
      qDebug() << endl << "Entering cellbase::chemical(" << c << ")" << endl;
 
    #endif
 

	
 
      int nchem = NChem();
 

	
 
      #ifdef _undefined_
 
      if ((c<0) || (c>=nchem))
 
	MyWarning::warning("CellBase::Chemical says: index c is: %d, but nchem is: %d. Merely return zero", c, nchem);
 
      #endif
 

	
 
      return ((c<0) || (c>=nchem)) ? 0 : chem[c];
 
    }
 

	
 
    
 
    //void print_nblist(void) const;
 

	
 
    boundary_type SetBoundary(boundary_type bound) {
src/libplugin.pro
Show inline comments
 
@@ -25,14 +25,13 @@ DESTDIR = build_models/lib
 
PERLDIR = ./perl
 
PARTMPL = VirtualLeafpar.tmpl
 
QT += qt3support
 
TARGET = vleaf
 
TEMPLATE = lib
 

	
 
unix:LIBS +=  -lxml2 -lz -lm 
 
win32:LIBS += -L\"c:\Lib\" -L\"c:\Bin\" -lxml2 -lz -lm -lwsock32
 
LIBXML2DIR = C:\libxml2
 

	
 
HEADERS = \
 
 cellbase.h \
 
 matrix.h \
 
 output.h \
 
 parameter.h \
 
@@ -56,17 +55,20 @@ SOURCES = \
 
 vector.cpp \
 
 wallbase.cpp \
 
 warning.cpp
 

	
 
unix {
 
 system(rm -f parameter.cpp parameter.h) # this is performed here when qmake is envoked and not in the resulting makefile.
 
 system(perl $$PERLDIR/make_parameter_source.pl $$PARTMPL)
 
 system(perl $$PERLDIR/make_pardialog_source.pl $$PARTMPL)
 
 QMAKE_CXXFLAGS += -fexceptions -fPIC -I/usr/include/libxml2
 
 QMAKE_LFLAGS += -fPIC
 
 LIBS += -lxml2 -lz -lm 
 
}
 

	
 
win32 {
 
  QMAKE_CXXFLAGS += -fexceptions -IC:\Include
 
 system(DEL parameter.cpp parameter.h) 
 
 QMAKE_CXXFLAGS += -fexceptions -I$${LIBXML2DIR}\include
 
}
 

	
 
system(perl $$PERLDIR/make_parameter_source.pl $$PARTMPL)
 
system(perl $$PERLDIR/make_pardialog_source.pl $$PARTMPL)
 
#system(perl $$PERLDIR/make_xmlwritecode.pl -h $$REACTIONS)
 
#
0 comments (0 inline, 0 general)