There are three different “packaging targets”:
- a source package of the SeqAn library (
- a package containing all apps (
- a package containing a single SeqAn app (
We assume that you have read Installing SeqAn and have cloned or unzipped the full SeqAn sources to
~/devel/seqan (not the “library sources” described in other places).
The instructions for all packaging targets are the same (replace
$pack_target with the above string):
~ # mkdir -p ~/devel/seqan-build/deploy ~ # cd ~/devel/seqan-build/deploy deploy # cmake ../../seqan -DSEQAN_BUILD_SYSTEM=$pack_target -DSEQAN_STATIC_APPS=1 -DSEQAN_ARCH_SSE4=1 deploy # make package
On Windows, replace the last command with
deploy # cmake --build . --target PACKAGE
Depending on the platform this might create a ZIP-file, a tarball and/or a platform specific installer.
We provide (1) a source package of SeqAn library; and for each official application (3) single binary packages for different operating systems and architectures.
Especially when creating packages, make sure that the cmake generator and/or compiler are the ones you want!
- The binary packages should be built on the oldest supported kernel and with the oldest supported GCC compiler.
- The CMake version on the building system should be at least 3.1.
- Builds should be static (
- There should be a 32Bit package, built on a 32Bit system or cross-compiled (
- There should be a 64Bit package.
- There should be an optimized 64Bit build (
- For applications where it makes sense, a further optimized build can be provided (
These are some guidelines for creating SeqAn packages for operating system specific packaging systems, like apt (Debian/Ubuntu) or rpm (Fedora/RedHat/CentOS/SUSE).
We recommend that downstream package maintainers provide one package named seqan that contains only the header-library and the api-docs and that is built from our library packages available here: http://packages.seqan.de
They have the advantage of not requiring any build steps, simply copy the
share directories to the desired locations.
Beyond that package maintainers have the choice to create either a single package called seqan-apps that contains all the applications or a separate package per application (with the respective name of that app). Based on the above instructions this should be fairly easy to accomplish.