This project contains a number of open source libraries, that make the building of COPASI with CMAKE as easy as to configure with:
cmake -DCOPASI_DEPENDENCY_DIR=<dir> <copasi source dir>
make
make install
We are in the process of updating the documentation. The older instructions are still available.
To build the COPASI dependencies we recommend to use the cmake build system from the main directory. This basically includes the required dependency libraries from the chosen configuration as external projects.
Currently not all cmake generators support external subprojects (building from the visual studio IDE is currently known to be not working) so we recommend to use either:
Ninja
Unix Makefiles
NMake Makefiles JOM
NMake Makefiles
If you just want to build the dependencies for the language bindings or the command line version for COPASI, you can simply configure using the BUILD_UI_DEPS=OFF
option. Then a build of those dependencies is done simply with:
mkdir build
cd build
cmake -G Ninja -DBUILD_UI_DEPS=OFF -DCMAKE_INSTALL_PREFIX=../bin ..
ninja
where:
build
: is the name of the build folder in which all of the copasi-dependencies will be built.-G Ninja
: specifies that the ninja generator should be used-DCMAKE_INSTALL_PREFIX=../bin
: this is also the path that you later specify as-DCOPASI_DEPENDENCY_DIR=<dir>
when configuring COPASI-DBUILD_UI_DEPS=OFF
: that no UI dependencies should be built..
: indicates that the root of the copasi-dependencies directory is one folder up
Note: on linux system crossguid has a dependency on the uuid
library, as such you will have to install it manually first. This can be done using your package manager:
apt-get install uuid-dev
or
yum install uuid-devel
or
pacman -S libutil-linux-devel
or directly from the source archives.
The COPASI user interface uses Qt. We recommend to use Qt5, with the additional Qt5DataVisualization
module installed.
To specify which Qt should be used, use the
SELECT_QT
: option we recommend it to be set toQt5
, other valid values areQt4
andAny
To ensure that Qt can be found you will need to specify the Qt5_DIR
variable to the full path of the lib/cmake/Qt5
path of your Qt5 installation). (Or for Qt4 the QT_DIR
variable to the full path of the root of your Qt4 installation).
Examples:
Qt5:
-DSELECT_QT=Qt5 -DQt5_DIR=C:/Qt/Qt5.14.2/5.14.2/msvc2017/lib/cmake/Qt5
Qt4:
-DSELECT_QT=Qt4 -DQTDIR=C:\Qt\qt-everywhere-opensource-src-4.8.6_vs14
to summarize to build all dependencies (including UI dependencies for Qt5) you would use commands like:
mkdir build
cd build
cmake -G Ninja -DSELECT_QT=Qt5 -DQt5_DIR=C:/Qt/Qt5.11.1/5.11.1/msvc2015/lib/cmake/Qt5 -DCMAKE_INSTALL_PREFIX=../bin ..
ninja
where:
build
: is the name of the build folder in which all of the copasi-dependencies will be built.-G Ninja
: specifies that the ninja generator should be used-DSELECT_QT=Qt5
: that Qt5 from the specifiedQt5_DIR
should be used-DCMAKE_INSTALL_PREFIX=../bin
: this is also the path that you later specify as-DCOPASI_DEPENDENCY_DIR=<dir>
when configuring COPASI..
: indicates that the root of the copasi-dependencies directory is one folder up
The complete list of all options is:
BUILD_UI_DEPS
: specifies whether the UI dependencies are preselected. (defaults toON
)BUILD_expat
: specifies whether or not expat should be built (defaults toON
)BUILD_raptor
: specifies whether raptor should be built (defaults toON
, forces expat to be built)BUILD_crossguid
: specifies whether raptor should be built (defaults toON
)BUILD_clapack
: specifies whether clapack should be built (defaults toON
)BUILD_libSBML
: specifies whether libSBML should be built (defaults toON
, forces expat to be built)BUILD_libnuml
: specifies whether libNUML should be built (defaults toON
, forces libSBML to be built)BUILD_libSEDML
: specifies whether libSEDML should be built (defaults toON
, forces libnuml to be built)BUILD_zlib
: specifies whether zlib should be built (defaults toON
)BUILD_zipper
: specifies whetherzipper
should be built (defaults toON
, forces zlib to be built)BUILD_libCombine
: specifies whether libCombine should be built (defaults toON
, forces zipper and libSBML to be built)BUILD_SBW
: specifies whether SBW should be built (defaults toBUILD_UI_DEPS
)BUILD_mml
: specifies whether MML should be built (defaults toBUILD_UI_DEPS
)BUILD_qwt6
: specifies whether qwt-6 should be built (defaults toBUILD_UI_DEPS
)BUILD_qwt
: specifies whether qwt should be built (defaults toBUILD_UI_DEPS
)BUILD_qwtplot3d
: specifies whether qwtplot3d should be built (defaults toBUILD_UI_DEPS
)BUILD_archive
: specifies whether an archive of the binaries should be created (defaults toON
)WITH_STATIC_RUNTIME
: a specific option on windows to ensure that the static MSVC runtime is used rather than the dynamic one. (defaults toOFF
) When using the dynamic runtime, the MSVC redistributable package will have to be installed on the target system.
The following open source libraries are included in this project:
- clapack 3.2.1
- cppunit 1.12.1
- expat 2.1.0
- qtmmlwidget
- QWT 5.2.0 or 6.1.0
- QWT 3D plot
- libSBML 5.18.0
- libnuml 1.1.1
- libSEDML 0.4.2
- libCOMBINE 0.2.2
- SBW Core
- raptor
- zipper 0.9.1
- crossguid
Just in case it needs saying, each of the libraries in the src
folder are released under their own respective licenses. Otherwise this project (i.e.: the build scripts) are released under the BSD License:
Copyright (c) 2013-2020, Frank T. Bergmann
All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:
Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer. Redistributions in
binary form must reproduce the above copyright notice, this list of
conditions and the following disclaimer in the documentation and/or
other materials provided with the distribution. THIS SOFTWARE IS
PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.