https://hal.archives-ouvertes.fr/hal-02427428
Raw File
Tip revision: 71cea6b7054d14cabe643a38cd2b88a50ed09da1 authored by Software Heritage on 01 February 2019, 00:00:00 UTC
hal: Deposit 358 in collection hal
Tip revision: 71cea6b
Unit_Test_Chronomodel.pro
/* ---------------------------------------------------------------------

Copyright or © or Copr. CNRS	2014 - 2018

Authors :
	Philippe LANOS
	Helori LANOS
 	Philippe DUFRESNE

This software is a computer program whose purpose is to
create chronological models of archeological data using Bayesian statistics.

This software is governed by the CeCILL V2.1 license under French law and
abiding by the rules of distribution of free software.  You can  use,
modify and/ or redistribute the software under the terms of the CeCILL
license as circulated by CEA, CNRS and INRIA at the following URL
"http://www.cecill.info".

As a counterpart to the access to the source code and  rights to copy,
modify and redistribute granted by the license, users are provided only
with a limited warranty  and the software's author,  the holder of the
economic rights,  and the successive licensors  have only  limited
liability.

In this respect, the user's attention is drawn to the risks associated
with loading,  using,  modifying and/or developing or reproducing the
software by the user in light of its specific status of free software,
that may mean  that it is complicated to manipulate,  and  that  also
therefore means  that it is reserved for developers  and  experienced
professionals having in-depth computer knowledge. Users are therefore
encouraged to load and test the software's suitability as regards their
requirements in conditions enabling the security of their systems and/or
data to be ensured and,  more generally, to use and operate it in the
same conditions as regards security.

The fact that you are presently reading this means that you have had
knowledge of the CeCILL V2.1 license and that you accept its terms.
--------------------------------------------------------------------- */

QT       += testlib

#QT       -= gui

# Qt modules (must be deployed along with the application)
# in the Unit Tes, it must be the same as Chronomodel
QT += core gui widgets svg

TARGET = tst_chronomodeltest
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app

# The following define makes your compiler emit warnings if you use
# any feature of Qt which as been marked as deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if you use deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0

message("PWDnew : $$PWD")
message("PRO_PATH : $$_PRO_FILE_PWD_")
message("BUILD_DIR : $$BUILD_DIR")
message("DESTDIR : $$DESTDIR")
message("OBJECTS_DIR : $$OBJECTS_DIR")
message("MOC_DIR : $$MOC_DIR")
message("RCC_DIR : $$RCC_DIR")

SOURCES += tst_chronomodeltest.cpp

DEFINES += SRCDIR=\\\"$$PWD/\\\"


#########################################
# C++ 11
# Config must use C++ 11 for random number generator
# This works for Windows, Linux & Mac 10.7 and +
# In the future we'll need to increase to C++17
# which offered namespace std::experimental::parallel;
#########################################
CONFIG += c++11

#########################################
# Windows specific settings
#########################################
win32{
        # Resource file (Windows only)
        message("WIN specific settings")
       QMAKESPEC = win32-msvc  # for 32-bit and 64-bit

        RC_FILE += Chronomodel.rc
        #RC_ICONS += $$PRO_PATH/icon/Chronomodel.ico
        QT_FATAL_WARNING = 1

}
#########################################
# DEFINES
#########################################

DEFINES += _USE_MATH_DEFINES

# Activate this to use FFT kernel method on histograms

USE_FFT = 1
DEFINES += "USE_FFT=$${USE_FFT}"

# Choose the plugins to compile directly with the application

USE_PLUGIN_UNIFORM = 1
USE_PLUGIN_GAUSS = 1
USE_PLUGIN_14C = 1
USE_PLUGIN_TL = 1
USE_PLUGIN_AM = 1

DEFINES += "USE_PLUGIN_UNIFORM=$${USE_PLUGIN_UNIFORM}"
DEFINES += "USE_PLUGIN_GAUSS=$${USE_PLUGIN_GAUSS}"
DEFINES += "USE_PLUGIN_14C=$${USE_PLUGIN_14C}"
DEFINES += "USE_PLUGIN_TL=$${USE_PLUGIN_TL}"
DEFINES += "USE_PLUGIN_AM=$${USE_PLUGIN_AM}"

#########################################
# FFTW
#########################################

macx{
        # IMPORTANT NOTE :
        # We use FFTW 3.2.2 on Mac to support Mac OS X versions from 10.7.
        # (Using FFTW 3.3.4 is available for mac 10.9+)
        # We provide FFTW.3.2.2.dmg if you want to install it on your system, but this is not necessary!
        # The generated XCode project will locate FFTW files in the project directory and statically link against it.

        # this is to include fftw.h in the code :
        #INCLUDEPATH += $$_PRO_FILE_PWD_/lib/FFTW/mac    # this is the Chronomodel Code
        INCLUDEPATH += lib/FFTW/mac


        # Link the application with FFTW library
        # If no dylib are present, static libs (.a) are used => that's why we moved .dylib files in a "dylib" folder.
        #LIBS += -L"$$_PRO_FILE_PWD_/lib/FFTW/mac" -lfftw3   # this is the Chronomodel Code
        LIBS += -L"lib/FFTW/mac" -lfftw3


        # If we were deploying FFTW as a dynamic library, we should :
        # - Move all files from "lib/FFTW/mac/dylib" to "lib/FFTW/mac"
        # - Uncomment the lines below to copy dylib files to the bundle
        # - We may also need to call install_name_tool on both dylib and chronomodel executable.
        #	This has not been tested, so use otool -L path/to/dylib/files to check dependencies

        #FFTW_FILES.path = Contents/Frameworks
        #FFTW_FILES.files += $$PRO_PATH/deploy/mac/FFTW/libfftw3f.dylib
        #QMAKE_BUNDLE_DATA += FFTW_FILES
        #QMAKE_POST_LINK += install_name_tool -id @executable_path/../Frameworks/libfftw3f.dylib $$PRO_PATH/deploy/mac/FFTW/libfftw3f.dylib
        #QMAKE_POST_LINK += install_name_tool -change old/path @executable_path/../Frameworks/libfftw3f.3.dylib $$PRO_PATH/Release/Chronomodel.app/Contents/MacOS/Chronomodel;
}


win32{
        INCLUDEPATH +=  $$_PRO_FILE_PWD_/lib/FFTW

        contains(QT_ARCH, i386) {
            message("32-bit")
            LIBS += -L"$$_PRO_FILE_PWD_/lib/FFTW/win32" -lfftw3-3

        } else { # to compile with a x64 machine
            message("64-bit")
            LIBS += -L"$$_PRO_FILE_PWD_/lib/FFTW/win64" -lfftw3-3
        }
}
#linux :
unix:!macx{
        INCLUDEPATH += lib/FFTW
        LIBS += -lfftw3
}

#########################################
# TRANSLATIONS
#########################################
TRANSLATIONS = translations/Chronomodel_fr.ts \
                                translations/Chronomodel_en.ts

# For Microsoft Visual Studio only
CODECFORSRC = UTF-8

#########################################
# INCLUDES
#########################################

INCLUDEPATH += src/
INCLUDEPATH += src/mcmc/
INCLUDEPATH += src/model/
INCLUDEPATH += src/plugins/
INCLUDEPATH += src/plugins/plugin_14C/
INCLUDEPATH += src/plugins/plugin_am/
INCLUDEPATH += src/plugins/plugin_gauss/
INCLUDEPATH += src/plugins/plugin_tl/
INCLUDEPATH += src/plugins/plugin_uniform/
INCLUDEPATH += src/project/
INCLUDEPATH += src/ui/
INCLUDEPATH += src/ui/dialogs/
INCLUDEPATH += src/ui/graphs/
INCLUDEPATH += src/ui/lookandfeel/
INCLUDEPATH += src/ui/panel_model/
INCLUDEPATH += src/ui/panel_model/data/
INCLUDEPATH += src/ui/panel_model/scenes/
INCLUDEPATH += src/ui/panel_results/
INCLUDEPATH += src/ui/panel_mcmc/
INCLUDEPATH += src/ui/widgets/
INCLUDEPATH += src/ui/window/
INCLUDEPATH += src/utilities/

#########################################
# HEADERS
#########################################

HEADERS += src/MainController.h
HEADERS += src/AppSettings.h
HEADERS += src/StateKeys.h
HEADERS += src/ChronoApp.h

HEADERS += src/mcmc/Functions.h
HEADERS += src/mcmc/Generator.h
HEADERS += src/mcmc/MCMCLoop.h
HEADERS += src/mcmc/MCMCLoopMain.h
HEADERS += src/mcmc/MCMCSettings.h
HEADERS += src/mcmc/MetropolisVariable.h
HEADERS += src/mcmc/MHVariable.h

HEADERS += src/model/Constraint.h
HEADERS += src/model/Date.h
HEADERS += src/model/Event.h
HEADERS += src/model/EventConstraint.h
HEADERS += src/model/EventKnown.h
HEADERS += src/model/Model.h
HEADERS += src/model/ModelUtilities.h
HEADERS += src/model/Phase.h
HEADERS += src/model/PhaseConstraint.h

HEADERS += src/plugins/CalibrationCurve.h
HEADERS += src/plugins/GraphViewRefAbstract.h
HEADERS += src/plugins/PluginAbstract.h
HEADERS += src/plugins/PluginFormAbstract.h
HEADERS += src/plugins/PluginRefCurveSettingsView.h
HEADERS += src/plugins/PluginSettingsViewAbstract.h
HEADERS += src/plugins/RefCurve.h

equals(USE_PLUGIN_TL, 1){
        HEADERS += src/plugins/plugin_tl/PluginTL.h
        HEADERS += src/plugins/plugin_tl/PluginTLForm.h
        HEADERS += src/plugins/plugin_tl/PluginTLRefView.h
        HEADERS += src/plugins/plugin_tl/PluginTLSettingsView.h
}
equals(USE_PLUGIN_14C, 1){
        HEADERS += src/plugins/plugin_14C/Plugin14C.h
        HEADERS += src/plugins/plugin_14C/Plugin14CForm.h
        HEADERS += src/plugins/plugin_14C/Plugin14CRefView.h
        HEADERS += src/plugins/plugin_14C/Plugin14CSettingsView.h
}
equals(USE_PLUGIN_GAUSS, 1){
        HEADERS += src/plugins/plugin_gauss/PluginGauss.h
        HEADERS += src/plugins/plugin_gauss/PluginGaussForm.h
        HEADERS += src/plugins/plugin_gauss/PluginGaussRefView.h
        HEADERS += src/plugins/plugin_gauss/PluginGaussSettingsView.h
}
equals(USE_PLUGIN_AM, 1){
        HEADERS += src/plugins/plugin_am/PluginMag.h
        HEADERS += src/plugins/plugin_am/PluginMagForm.h
        HEADERS += src/plugins/plugin_am/PluginMagRefView.h
        HEADERS += src/plugins/plugin_am/PluginMagSettingsView.h
}
equals(USE_PLUGIN_UNIFORM, 1){
        HEADERS += src/plugins/plugin_uniform/PluginUniform.h
        HEADERS += src/plugins/plugin_uniform/PluginUniformForm.h
}

HEADERS += src/project/PluginManager.h
HEADERS += src/project/Project.h
HEADERS += src/project/ProjectSettings.h
HEADERS += src/project/SetProjectState.h
HEADERS += src/project/StateEvent.h

HEADERS += src/ui/dialogs/AboutDialog.h
HEADERS += src/ui/dialogs/AppSettingsDialog.h
HEADERS += src/ui/dialogs/AppSettingsDialogItemDelegate.h
HEADERS += src/ui/dialogs/ConstraintDialog.h
HEADERS += src/ui/dialogs/DateDialog.h
HEADERS += src/ui/dialogs/EventDialog.h
HEADERS += src/ui/dialogs/MCMCProgressDialog.h
HEADERS += src/ui/dialogs/MCMCSettingsDialog.h
HEADERS += src/ui/dialogs/PhaseDialog.h
HEADERS += src/ui/dialogs/PluginOptionsDialog.h
HEADERS += src/ui/dialogs/StudyPeriodDialog.h
HEADERS += src/ui/dialogs/TrashDialog.h

HEADERS += src/ui/graphs/AxisTool.h
HEADERS += src/ui/graphs/GraphCurve.h
HEADERS += src/ui/graphs/GraphView.h
HEADERS += src/ui/graphs/GraphViewAbstract.h
HEADERS += src/ui/graphs/GraphZone.h
HEADERS += src/ui/graphs/Ruler.h

HEADERS += src/ui/lookandfeel/Painting.h

HEADERS += src/ui/panel_model/EventPropertiesView.h
HEADERS += src/ui/panel_model/EventsListItemDelegate.h
HEADERS += src/ui/panel_model/ImportDataView.h
HEADERS += src/ui/panel_model/ModelView.h
HEADERS += src/ui/panel_model/MultiCalibrationDrawing.h
HEADERS += src/ui/panel_model/MultiCalibrationView.h
HEADERS += src/ui/panel_model/SceneGlobalView.h

HEADERS += src/ui/panel_model/data/CalibrationDrawing.h
HEADERS += src/ui/panel_model/data/CalibrationView.h
HEADERS += src/ui/panel_model/data/DatesList.h
HEADERS += src/ui/panel_model/data/DatesListItemDelegate.h

HEADERS += src/ui/panel_model/scenes/AbstractItem.h
HEADERS += src/ui/panel_model/scenes/AbstractScene.h
HEADERS += src/ui/panel_model/scenes/ArrowItem.h
HEADERS += src/ui/panel_model/scenes/ArrowTmpItem.h
HEADERS += src/ui/panel_model/scenes/DateItem.h
HEADERS += src/ui/panel_model/scenes/EventItem.h
HEADERS += src/ui/panel_model/scenes/EventKnownItem.h
HEADERS += src/ui/panel_model/scenes/EventsScene.h
HEADERS += src/ui/panel_model/scenes/PhaseItem.h
HEADERS += src/ui/panel_model/scenes/PhasesScene.h

HEADERS += src/ui/panel_results/GraphViewDate.h
HEADERS += src/ui/panel_results/GraphViewEvent.h
HEADERS += src/ui/panel_results/GraphViewPhase.h
HEADERS += src/ui/panel_results/GraphViewResults.h
HEADERS += src/ui/panel_results/GraphViewTempo.h
HEADERS += src/ui/panel_results/ResultsView.h

HEADERS += src/ui/widgets/Button.h
HEADERS += src/ui/widgets/CheckBox.h
HEADERS += src/ui/widgets/Collapsible.h
HEADERS += src/ui/widgets/ColorPicker.h
HEADERS += src/ui/widgets/GroupBox.h
HEADERS += src/ui/widgets/HelpWidget.h
HEADERS += src/ui/widgets/Label.h
HEADERS += src/ui/widgets/LineEdit.h
HEADERS += src/ui/widgets/Marker.h
HEADERS += src/ui/widgets/RadioButton.h
HEADERS += src/ui/widgets/ScrollCompressor.h
HEADERS += src/ui/widgets/Tabs.h

HEADERS += src/ui/window/MainWindow.h
HEADERS += src/ui/window/ProjectView.h

HEADERS += src/utilities/DateUtils.h
HEADERS += src/utilities/DoubleValidator.h
HEADERS += src/utilities/QtUtilities.h
HEADERS += src/utilities/Singleton.h
HEADERS += src/utilities/StdUtilities.h


#########################################
# SOURCES
#########################################

SOURCES += src/AppSettings.cpp
SOURCES += src/ChronoApp.cpp
#SOURCES += src/main.cpp # Don't use it while testing
SOURCES += src/MainController.cpp

SOURCES += src/mcmc/Functions.cpp
SOURCES += src/mcmc/Generator.cpp
SOURCES += src/mcmc/MCMCLoop.cpp
SOURCES += src/mcmc/MCMCLoopMain.cpp
SOURCES += src/mcmc/MCMCSettings.cpp
SOURCES += src/mcmc/MetropolisVariable.cpp
SOURCES += src/mcmc/MHVariable.cpp

SOURCES += src/model/Constraint.cpp
SOURCES += src/model/Date.cpp
SOURCES += src/model/Event.cpp
SOURCES += src/model/EventConstraint.cpp
SOURCES += src/model/EventKnown.cpp
SOURCES += src/model/Model.cpp
SOURCES += src/model/ModelUtilities.cpp
SOURCES += src/model/Phase.cpp
SOURCES += src/model/PhaseConstraint.cpp

SOURCES += src/plugins/CalibrationCurve.cpp
SOURCES += src/plugins/PluginRefCurveSettingsView.cpp
SOURCES += src/plugins/RefCurve.cpp

equals(USE_PLUGIN_TL, 1){
        SOURCES += src/plugins/plugin_tl/PluginTL.cpp
        SOURCES += src/plugins/plugin_tl/PluginTLForm.cpp
        SOURCES += src/plugins/plugin_tl/PluginTLRefView.cpp
    SOURCES += src/plugins/plugin_tl/PluginTLSettingsView.cpp
}
equals(USE_PLUGIN_14C, 1){
        SOURCES += src/plugins/plugin_14C/Plugin14C.cpp
        SOURCES += src/plugins/plugin_14C/Plugin14CForm.cpp
        SOURCES += src/plugins/plugin_14C/Plugin14CRefView.cpp
        SOURCES += src/plugins/plugin_14C/Plugin14CSettingsView.cpp
}
equals(USE_PLUGIN_GAUSS, 1){
        SOURCES += src/plugins/plugin_gauss/PluginGauss.cpp
        SOURCES += src/plugins/plugin_gauss/PluginGaussForm.cpp
        SOURCES += src/plugins/plugin_gauss/PluginGaussRefView.cpp
        SOURCES += src/plugins/plugin_gauss/PluginGaussSettingsView.cpp
}
equals(USE_PLUGIN_AM, 1){
        SOURCES += src/plugins/plugin_am/PluginMag.cpp
        SOURCES += src/plugins/plugin_am/PluginMagForm.cpp
        SOURCES += src/plugins/plugin_am/PluginMagRefView.cpp
        SOURCES += src/plugins/plugin_am/PluginMagSettingsView.cpp
}
equals(USE_PLUGIN_UNIFORM, 1){
        SOURCES += src/plugins/plugin_uniform/PluginUniform.cpp
        SOURCES += src/plugins/plugin_uniform/PluginUniformForm.cpp
}

SOURCES += src/project/PluginManager.cpp
SOURCES += src/project/Project.cpp
SOURCES += src/project/ProjectSettings.cpp
SOURCES += src/project/SetProjectState.cpp
SOURCES += src/project/StateEvent.cpp

SOURCES += src/ui/dialogs/AboutDialog.cpp
SOURCES += src/ui/dialogs/AppSettingsDialog.cpp
SOURCES += src/ui/dialogs/ConstraintDialog.cpp
SOURCES += src/ui/dialogs/DateDialog.cpp
SOURCES += src/ui/dialogs/EventDialog.cpp
SOURCES += src/ui/dialogs/MCMCProgressDialog.cpp
SOURCES += src/ui/dialogs/MCMCSettingsDialog.cpp
SOURCES += src/ui/dialogs/PhaseDialog.cpp
SOURCES += src/ui/dialogs/PluginOptionsDialog.cpp
SOURCES += src/ui/dialogs/StudyPeriodDialog.cpp
SOURCES += src/ui/dialogs/TrashDialog.cpp

SOURCES += src/ui/graphs/AxisTool.cpp
SOURCES += src/ui/graphs/GraphCurve.cpp
SOURCES += src/ui/graphs/GraphView.cpp
SOURCES += src/ui/graphs/GraphViewAbstract.cpp
SOURCES += src/ui/graphs/GraphZone.cpp
SOURCES += src/ui/graphs/Ruler.cpp

SOURCES += src/ui/lookandfeel/Painting.cpp

SOURCES += src/ui/panel_model/data/CalibrationDrawing.cpp
SOURCES += src/ui/panel_model/data/CalibrationView.cpp
SOURCES += src/ui/panel_model/data/DatesList.cpp

SOURCES += src/ui/panel_model/EventPropertiesView.cpp
SOURCES += src/ui/panel_model/ImportDataView.cpp
SOURCES += src/ui/panel_model/ModelView.cpp
SOURCES += src/ui/panel_model/MultiCalibrationDrawing.cpp
SOURCES += src/ui/panel_model/MultiCalibrationView.cpp
SOURCES += src/ui/panel_model/SceneGlobalView.cpp

SOURCES += src/ui/panel_model/scenes/AbstractItem.cpp
SOURCES += src/ui/panel_model/scenes/AbstractScene.cpp
SOURCES += src/ui/panel_model/scenes/ArrowItem.cpp
SOURCES += src/ui/panel_model/scenes/ArrowTmpItem.cpp
SOURCES += src/ui/panel_model/scenes/DateItem.cpp
SOURCES += src/ui/panel_model/scenes/EventItem.cpp
SOURCES += src/ui/panel_model/scenes/EventKnownItem.cpp
SOURCES += src/ui/panel_model/scenes/EventsScene.cpp
SOURCES += src/ui/panel_model/scenes/PhaseItem.cpp
SOURCES += src/ui/panel_model/scenes/PhasesScene.cpp

SOURCES += src/ui/panel_results/GraphViewDate.cpp
SOURCES += src/ui/panel_results/GraphViewEvent.cpp
SOURCES += src/ui/panel_results/GraphViewPhase.cpp
SOURCES += src/ui/panel_results/GraphViewResults.cpp
SOURCES += src/ui/panel_results/GraphViewTempo.cpp
SOURCES += src/ui/panel_results/ResultsView.cpp

SOURCES += src/ui/widgets/ColorPicker.cpp
SOURCES += src/ui/widgets/Collapsible.cpp
SOURCES += src/ui/widgets/ScrollCompressor.cpp
SOURCES += src/ui/widgets/Button.cpp
SOURCES += src/ui/widgets/CheckBox.cpp
SOURCES += src/ui/widgets/RadioButton.cpp
SOURCES += src/ui/widgets/Label.cpp
SOURCES += src/ui/widgets/LineEdit.cpp
SOURCES += src/ui/widgets/GroupBox.cpp
SOURCES += src/ui/widgets/HelpWidget.cpp
SOURCES += src/ui/widgets/Tabs.cpp
SOURCES += src/ui/widgets/Marker.cpp

SOURCES += src/ui/window/MainWindow.cpp
SOURCES += src/ui/window/ProjectView.cpp

SOURCES += src/utilities/StdUtilities.cpp
SOURCES += src/utilities/QtUtilities.cpp
SOURCES += src/utilities/DoubleValidator.cpp
SOURCES += src/utilities/DateUtils.cpp
back to top