From the project root directory:
# Run the build script (automatically handles Conan setup)
./scripts/build.sh
# Run build script with clang compiler
./scripts/build.sh --clang
# Run build script and execute tests
./scripts/build.sh --test
# Run build script with clang compiler and execute tests
./scripts/build.sh --clang --testmkdir build && cd buildIt's recommended to install Conan in a Python virtual environment:
# Create a virtual environment
python3 -m venv /path/to/venv
# Activate the virtual environment
source /path/to/venv/bin/activate
# Install Conan in the virtual environment
pip install "conan>=2.0.0"
# Now you can use Conan
conan install .. --output-folder=. --build=missingcmake -G Ninja -DCMAKE_TOOLCHAIN_FILE=./conan_toolchain.cmake ..
ninjaThis project requires Conan 2.x. If you encounter errors related to Conan profiles, you can run the setup script:
./scripts/setup_conan.shThis will create the default Conan 2.x profile with appropriate settings for your compiler.
If you're using an older version of Conan 1.x, you'll need to upgrade:
pip install --upgrade "conan>=2.0.0"This project uses the Ninja build system for faster build times and better incremental builds. Make sure to install Ninja on your system:
- On Ubuntu/Debian:
apt-get install ninja-build - On macOS:
brew install ninja - On Windows:
choco install ninjaor download from the official GitHub release
If you encounter build failures related to missing dependencies, make sure you have:
- Installed Conan 2.x package manager
- Installed Ninja build system
- Run the Conan install step with
--output-folder=.and--build=missingflags - Ensured you have a C++17 compatible compiler
# Analyze a remote repository
singularity --repo https://github.com/username/repo
# Analyze a local repository
singularity --path /path/to/local/repo
# Get help
singularity --helpThis project supports both GCC and Clang/LLVM toolchains. By default, it uses the system's default compiler, but you can explicitly use Clang:
# Build with Clang/LLVM
./scripts/build.sh --clangFor convenience, there's also a wrapper script build_with_clang.sh that does the same thing.
When using Docker, the build automatically uses Clang as configured in the Dockerfile.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this software except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.