274 lines
8.1 KiB
Prolog
274 lines
8.1 KiB
Prolog
# -------------------------------------------------
|
|
# Project created by QtCreator 2010-02-26T22:34:51
|
|
# -------------------------------------------------
|
|
TARGET = openEMS
|
|
CONFIG += console
|
|
CONFIG -= app_bundle qt
|
|
TEMPLATE = app
|
|
OBJECTS_DIR = obj
|
|
INCLUDEPATH += .
|
|
INCLUDEPATH += ../CSXCAD \
|
|
../fparser \
|
|
../tinyxml
|
|
LIBS += -L../CSXCAD -lCSXCAD
|
|
CONFIG += debug_and_release
|
|
|
|
###############################################################################
|
|
# CONFIG SECTION
|
|
|
|
# the SSE engine defaults to flush-to-zero mode, because of speed advantages
|
|
# to restore the correct handling of denormals and to comply to IEEE 754 uncomment:
|
|
# DEFINES += SSE_CORRECT_DENORMALS
|
|
|
|
# openEMS defaults to output length in unit meters; to recover the old behaviour
|
|
# to output length in terms of the drawing unit, uncomment:
|
|
# DEFINES += OUTPUT_IN_DRAWINGUNITS
|
|
|
|
# CONFIG SECTION
|
|
###############################################################################
|
|
|
|
win32 {
|
|
QMAKE_CXXFLAGS += -DH5_USE_16_API
|
|
INCLUDEPATH += ../hdf5/include ../hdf5/include/cpp ../boost/include/boost-1_42
|
|
LIBS += ../hdf5/lib/hdf5.lib
|
|
LIBS += ../boost/lib/libboost_thread-mgw44-mt.lib
|
|
LIBS += -L../CSXCAD/release
|
|
LIBS += ../fparser/release/libfparser4.a
|
|
LIBS += ../tinyxml/release/libtinyxml2.a
|
|
|
|
### vtk ###
|
|
INCLUDEPATH += ..\vtk \
|
|
..\vtk\Common \
|
|
..\vtk\Filtering \
|
|
..\vtk\IO
|
|
LIBS += ..\vtk\bin\libvtkIO.dll \
|
|
..\vtk\bin\libvtkFiltering.dll \
|
|
..\vtk\bin\libvtkCommon.dll \
|
|
..\vtk\bin\libvtksys.dll \
|
|
..\vtk\bin\libvtkzlib.dll
|
|
}
|
|
!win32 {
|
|
LIBS += ../fparser/libfparser.so
|
|
LIBS += ../tinyxml/libtinyxml.so
|
|
LIBS += -lboost_thread
|
|
LIBS += -lhdf5 -lhdf5_cpp
|
|
### vtk ###
|
|
INCLUDEPATH += /usr/include/vtk-5.2 \
|
|
/usr/include/vtk-5.4 \
|
|
/usr/include/vtk-5.6
|
|
LIBS += -lvtkCommon \
|
|
-lvtkIO \
|
|
-lvtksys \
|
|
-lvtkFiltering
|
|
}
|
|
QMAKE_LFLAGS += \'-Wl,-rpath,\$$ORIGIN/../CSXCAD\'
|
|
QMAKE_LFLAGS += \'-Wl,-rpath,\$$ORIGIN/../fparser\'
|
|
QMAKE_LFLAGS += \'-Wl,-rpath,\$$ORIGIN/../tinyxml\'
|
|
|
|
#### SOURCES ################################################################
|
|
SOURCES += main.cpp \
|
|
openems.cpp
|
|
|
|
# FDTD
|
|
SOURCES += FDTD/engine.cpp \
|
|
FDTD/operator.cpp \
|
|
FDTD/engine_multithread.cpp \
|
|
FDTD/operator_cylinder.cpp \
|
|
FDTD/engine_sse.cpp \
|
|
FDTD/operator_sse.cpp \
|
|
FDTD/operator_sse_compressed.cpp \
|
|
FDTD/engine_sse_compressed.cpp \
|
|
FDTD/operator_multithread.cpp \
|
|
FDTD/excitation.cpp \
|
|
FDTD/operator_cylindermultigrid.cpp \
|
|
FDTD/engine_cylindermultigrid.cpp \
|
|
FDTD/engine_interface_fdtd.cpp \
|
|
FDTD/engine_interface_sse_fdtd.cpp \
|
|
FDTD/engine_interface_cylindrical_fdtd.cpp
|
|
|
|
# FDTD/extensions source files
|
|
SOURCES += FDTD/extensions/engine_extension.cpp \
|
|
FDTD/extensions/operator_ext_dispersive.cpp \
|
|
FDTD/extensions/operator_ext_lorentzmaterial.cpp \
|
|
FDTD/extensions/engine_ext_dispersive.cpp \
|
|
FDTD/extensions/engine_ext_lorentzmaterial.cpp \
|
|
FDTD/extensions/operator_ext_pml_sf.cpp \
|
|
FDTD/extensions/engine_ext_pml_sf.cpp \
|
|
FDTD/extensions/engine_ext_cylindermultigrid.cpp \
|
|
FDTD/extensions/operator_ext_upml.cpp \
|
|
FDTD/extensions/engine_ext_upml.cpp \
|
|
FDTD/extensions/operator_extension.cpp \
|
|
FDTD/extensions/engine_ext_mur_abc.cpp \
|
|
FDTD/extensions/operator_ext_mur_abc.cpp \
|
|
FDTD/extensions/operator_ext_cylinder.cpp \
|
|
FDTD/extensions/engine_ext_cylinder.cpp \
|
|
FDTD/extensions/operator_ext_excitation.cpp \
|
|
FDTD/extensions/engine_ext_excitation.cpp
|
|
|
|
# Common source files
|
|
SOURCES += Common/operator_base.cpp \
|
|
Common/engine_interface_base.cpp \
|
|
Common/processmodematch.cpp \
|
|
Common/processvoltage.cpp \
|
|
Common/processing.cpp \
|
|
Common/processintegral.cpp \
|
|
Common/processfields.cpp \
|
|
Common/processfields_td.cpp \
|
|
Common/processcurrent.cpp \
|
|
Common/processfields_fd.cpp \
|
|
Common/processfieldprobe.cpp \
|
|
Common/processfields_sar.cpp
|
|
|
|
# tools
|
|
SOURCES += tools/global.cpp \
|
|
tools/useful.cpp \
|
|
tools/array_ops.cpp \
|
|
tools/ErrorMsg.cpp \
|
|
tools/AdrOp.cpp \
|
|
tools/vtk_file_writer.cpp \
|
|
tools/hdf5_file_writer.cpp
|
|
|
|
#### HEADERS ################################################################
|
|
HEADERS += openems.h
|
|
|
|
# FDTD
|
|
HEADERS += FDTD/engine.h \
|
|
FDTD/operator.h \
|
|
FDTD/engine_multithread.h \
|
|
FDTD/operator_cylinder.h \
|
|
FDTD/engine_sse.h \
|
|
FDTD/operator_sse.h \
|
|
FDTD/excitation.h \
|
|
FDTD/operator_sse_compressed.h \
|
|
FDTD/engine_sse_compressed.h \
|
|
FDTD/operator_multithread.h \
|
|
FDTD/operator_cylindermultigrid.h \
|
|
FDTD/engine_cylindermultigrid.h \
|
|
FDTD/engine_interface_fdtd.h \
|
|
FDTD/engine_interface_sse_fdtd.h \
|
|
FDTD/engine_interface_cylindrical_fdtd.h
|
|
|
|
# FDTD/extensions header files
|
|
HEADERS += FDTD/extensions/operator_extension.h \
|
|
FDTD/extensions/engine_extension.h \
|
|
FDTD/extensions/engine_ext_mur_abc.h \
|
|
FDTD/extensions/operator_ext_mur_abc.h \
|
|
FDTD/extensions/operator_ext_cylinder.h \
|
|
FDTD/extensions/engine_ext_cylinder.h \
|
|
FDTD/extensions/operator_ext_dispersive.h \
|
|
FDTD/extensions/operator_ext_lorentzmaterial.h \
|
|
FDTD/extensions/engine_ext_dispersive.h \
|
|
FDTD/extensions/engine_ext_lorentzmaterial.h \
|
|
FDTD/extensions/operator_ext_pml_sf.h \
|
|
FDTD/extensions/engine_ext_pml_sf.h \
|
|
FDTD/extensions/engine_ext_cylindermultigrid.h \
|
|
FDTD/extensions/operator_ext_upml.h \
|
|
FDTD/extensions/engine_ext_upml.h \
|
|
FDTD/extensions/operator_ext_excitation.h \
|
|
FDTD/extensions/engine_ext_excitation.h
|
|
|
|
# Common header files
|
|
HEADERS += Common/operator_base.h \
|
|
Common/engine_interface_base.h \
|
|
Common/processvoltage.h \
|
|
Common/processing.h \
|
|
Common/processintegral.h \
|
|
Common/processfields.h \
|
|
Common/processfields_td.h \
|
|
Common/processcurrent.h \
|
|
Common/processmodematch.h \
|
|
Common/processfields_fd.h \
|
|
Common/processfieldprobe.h \
|
|
Common/processfields_sar.h
|
|
|
|
# tools
|
|
HEADERS += tools/ErrorMsg.h \
|
|
tools/AdrOp.h \
|
|
tools/constants.h \
|
|
tools/array_ops.h \
|
|
tools/global.h \
|
|
tools/useful.h \
|
|
tools/aligned_allocator.h \
|
|
tools/vtk_file_writer.h \
|
|
tools/hdf5_file_writer.h
|
|
|
|
QMAKE_CXXFLAGS_RELEASE = -O3 \
|
|
-g \
|
|
-march=native
|
|
QMAKE_CXXFLAGS_DEBUG = -O0 \
|
|
-g \
|
|
-march=native
|
|
|
|
MPI_SUPPORT {
|
|
DEFINES += MPI_SUPPORT
|
|
INCLUDEPATH += /usr/include/mpi
|
|
LIBS += -lmpi -lmpi++
|
|
HEADERS += FDTD/operator_mpi.h \
|
|
FDTD/engine_mpi.h \
|
|
FDTD/openems_fdtd_mpi.h
|
|
SOURCES += FDTD/operator_mpi.cpp \
|
|
FDTD/engine_mpi.cpp \
|
|
FDTD/openems_fdtd_mpi.cpp
|
|
|
|
QMAKE_CXXFLAGS_RELEASE += -Wno-unused-parameter #needed because mpich2 produces tons of unused parameter
|
|
}
|
|
|
|
# add git revision
|
|
QMAKE_CXXFLAGS += -DGIT_VERSION=\\\"`git describe --tags`\\\"
|
|
|
|
# to use ABI2 target:
|
|
# qmake CONFIG+="ABI2 bits64" -o Makefile.ABI2-64 openEMS.pro
|
|
# make -fMakefile.ABI2-64
|
|
ABI2 {
|
|
CONFIG -= debug \
|
|
debug_and_release
|
|
CONFIG += release
|
|
QMAKE_CFLAGS_RELEASE = -O2 \
|
|
-fabi-version=2
|
|
QMAKE_CXXFLAGS_RELEASE = -O2 \
|
|
-fabi-version=2
|
|
QMAKE_CC = apgcc
|
|
QMAKE_CXX = apg++
|
|
QMAKE_LINK = apg++
|
|
QMAKE_LINK_SHLIB = apg++
|
|
QMAKE_LFLAGS_RPATH =
|
|
QMAKE_LFLAGS = \'-Wl,-rpath,\$$ORIGIN/lib\'
|
|
}
|
|
bits64 {
|
|
QMAKE_CXXFLAGS_RELEASE += -m64 \
|
|
-march=athlon64
|
|
QMAKE_LFLAGS_RELEASE += -m64 \
|
|
-march=athlon64
|
|
OBJECTS_DIR = ABI2-64
|
|
LIBS = ../CSXCAD/ABI2-64/libCSXCAD.so
|
|
LIBS += ../fparser/ABI2-64/libfparser.so
|
|
LIBS += ../tinyxml/ABI2-64/libtinyxml.so
|
|
LIBS += ../boost-64/lib/libboost_thread.so
|
|
LIBS += ../hdf5-64/lib/libhdf5.so
|
|
LIBS += ../hdf5-64/lib/libhdf5_cpp.so \
|
|
-lpthread
|
|
INCLUDEPATH += ../hdf5-64/include
|
|
INCLUDEPATH += ../boost-64/include
|
|
}
|
|
bits32 {
|
|
QMAKE_CXXFLAGS_RELEASE += -m32 \
|
|
-march=pentium3
|
|
QMAKE_LFLAGS_RELEASE += -m32 \
|
|
-march=pentium3
|
|
OBJECTS_DIR = ABI2-32
|
|
LIBS = ../CSXCAD/ABI2-32/libCSXCAD.so
|
|
LIBS += ../fparser/ABI2-32/libfparser.so
|
|
LIBS += ../tinyxml/ABI2-32/libtinyxml.so
|
|
LIBS += ../boost-32/lib/libboost_thread.so
|
|
LIBS += ../hdf5-32/lib/libhdf5.so
|
|
LIBS += ../hdf5-32/lib/libhdf5_cpp.so
|
|
INCLUDEPATH += ../hdf5-32/include
|
|
INCLUDEPATH += ../boost-32/include
|
|
}
|
|
ABI2 {
|
|
DESTDIR = $$OBJECTS_DIR
|
|
MOC_DIR = $$OBJECTS_DIR
|
|
UI_DIR = $$OBJECTS_DIR
|
|
RCC_DIR = $$OBJECTS_DIR
|
|
}
|