seqan / raptor

A fast and space-efficient pre-filter for querying very large collections of nucleotide sequences.
https://docs.seqan.de/raptor
Other
52 stars 18 forks source link

Missing SDSL reuiqrement but submodule is present #390

Closed 7PintsOfCherryGarcia closed 1 year ago

7PintsOfCherryGarcia commented 1 year ago

Platform

Description

Following steps:

git clone https://github.com/seqan/raptor
cd raptor
git submodule update --init
mkdir -p build
cd build
cmake ..
make

cmake configuration fails asking for the SDSL library with the following message

...
--     …adding submodule include:  /tmp/jmn549/raptor-3.0.1-Source/lib/submodules/cereal/include
--     …adding submodule include:  /tmp/jmn549/raptor-3.0.1-Source/lib/submodules/lemon/include
--     …adding submodule include:  /tmp/jmn549/raptor-3.0.1-Source/lib/submodules/sdsl-lite/include
--   C++ Standard-20 support:    via -std=c++20
--   OpenMP Support:             via -fopenmp
--   SIMD-OpenMP Support:        via -fopenmp-simd
--   Suppressing GCC 4 warnings: via -Wno-psabi
--   Optimize build:             via -march=native
--   Link Time Optimization:     not available
--   Binary-stripping:           via -s
--   Thread support:             not found
--   Optional dependency:        ZLIB-1.2.11 found
--   Optional dependency:        BZip2-1.0.6 found
--   Optional dependency:        libexecinfo found
CMake Error at lib/seqan3/build_system/seqan3-config.cmake:109 (message):
  The SDSL library is required, but wasn't found.  Get it from
  https://github.com/xxsds/sdsl-lite
Call Stack (most recent call first):
  lib/seqan3/build_system/seqan3-config.cmake:277 (seqan3_config_error)
  lib/chopper/CMakeLists.txt:60 (find_package)
...

Unfortunately can't use conda so really need to compile from source.

eseiler commented 1 year ago

Hey there,

what's your CMake version?

With newer versions, there should be a CMakeFiles/CMakeConfigureLog.yaml file in the build directory, which should contain the actual error messages.

Internally, it is just checked whether #include <sdsl/version.hpp> compiles; and the actual compile error should be in the CMakeConfigureLog.yaml.

7PintsOfCherryGarcia commented 1 year ago

Hi, what's your CMake version? cmake version 3.20.2

No CMakeFiles/CMakeConfigureLog.yaml only CMakeError.log

CMakeError.log

eseiler commented 1 year ago

Looks like you are using the C compiler, instead of the C++ one. (Log shows calls to /home/jmn549/.local/bin/clang instead of /home/jmn549/.local/bin/clang++)

Though this is a bit weird because it seems works for the configure steps before the error.

This depends a bit on how you configure the compilers:

Via CMake:

-DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc # If those point to the correct version
# or
-DCMAKE_CXX_COMPILER=/path/to/g++ -DCMAKE_C_COMPILER=/path/to/gcc # Full paths
# or
-DCMAKE_CXX_COMPILER=g++-12 -DCMAKE_C_COMPILER=gcc-12 # Executables might have version suffix

Env variable:

# Same as above, but as environment variables
export CC=gcc
export CXX=g++

Clang won't compile for 3.0.1, only the main branch supports Clang (>=17).

If this doesn't help, can you show your command line calls for CMake and the full CMake output?

7PintsOfCherryGarcia commented 1 year ago

Looks like you are using the C compiler, instead of the C++ one. Though this is a bit weird because it seems works for the configure steps before the error

Indeed I had a lot of trouble with the way cmake was calling the compiler.

On top of that centOS comes with gcc 8.5.0 which is not supported by raptor. Could not make clang work for the life of me so had to compile the latest gcc and directed cmake to use my version of g++.

raptor is up and running.

Thanks for your help.