SeqAn 3.4.0-rc.3
Pre-releaseThis is the third release candidate for SeqAn 3.4.0
What's Changed
- [INFRA] Bump RC by @eseiler in #3317
- [INFRA] Make packaging easier by @eseiler in #3318
- [INFRA] Update CPM Packages by @seqan-actions in #3316
- [FIX] cpp26: std::is_trivial_v is deprecated by @eseiler in #3319
- [DOC] Update by @eseiler in #3320
- [INFRA] Sanitizer CI by @eseiler in #3321
- [FIX,TEST] Do not check zlib output for alternative implementations by @eseiler in #3324
Full Changelog: 3.4.0-rc.2...3.4.0-rc.3
Notes for package maintainers
For reference, you can have a look at the Debian package.
Alternative zlib implementation
If your distribution ships an alternative zlib library, for example, zlib-ng, some tests will fail:
The following tests FAILED:
164 - contrib/stream/gz_ostream_test (Failed)
166 - contrib/stream/bgzf_ostream_test (Failed)
203 - io/sam_file/sam_file_output_test (Failed)
210 - io/sequence_file/sequence_file_output_test (Failed)
224 - io/structure_file/structure_file_output_test (Failed)
This is because we are testing compression separately for some file formats and the expected output refers to (vanilla) zlib's output.
zlib-ng should be automatically detected and causes those checks to be skipped.
If this is not the case, or you are using another zlib alternative, you can manually skip those checks:
cmake <...> -DCMAKE_CXX_FLAGS="-DSEQAN3_TEST_SKIP_ZLIB_DEFLATE=1"
Dependencies
Dependencies are listed in cmake/package-lock.cmake
.
We now use CPM for dependency management.
To use locally installed packages, pass -DCPM_USE_LOCAL_PACKAGES=ON
to cmake
, or set the environment variable CPM_USE_LOCAL_PACKAGES
to ON
. CPM documentation
If your locally installed packages has an older version, you may need to additionally pass the version to cmake
.
The version variables can be found in cmake/package-lock.cmake
.
For example, let's assume your googletest version is 1.14.0
instead of 1.15.2
listed in the package-lock.cmake
.
CPM (or rather CMake's find_package
) would not use your local version because 1.14.0
< 1.15.2
.
Passing -DSEQAN3_GOOGLETEST_VERSION=1.14.0
to CMake will result in your local package being used.
If your local package version is newer, it should be used without any additional CMake arguments.
Post install tests
To configure tests with an installed seqan3 version, CPM needs to be available.
However, CPM isn't installed when seqan3 is installed.
To still configure the tests, you have to pass -DSEQAN3_TEST_CPM_DIR=<path>
to your CMake command.
For example, -DSEQAN3_TEST_CPM_DIR=${SEQAN3_PACKAGE_SOURCE_DIRECTORY}/cmake ${SEQAN3_PACKAGE_SOURCE_DIRECTORY}/test/unit
.
Where SEQAN3_PACKAGE_SOURCE_DIRECTORY
is the downloaded source package.
SEQAN3_TEST_CPM_DIR
points to the directory containing CPM.cmake
.