Loading...
Searching...
No Matches
compile_time_features.hpp
Go to the documentation of this file.
/*********************************************************************/
// dar - disk archive - a backup/restoration program
// Copyright (C) 2002-2026 Denis Corbin
//
// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation; either version 2
// of the License, or (at your option) any later version.
//
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
//
// to contact the author, see the AUTHOR file
/*********************************************************************/
#ifndef COMPILE_TIME_FEATURES_HPP
#define COMPILE_TIME_FEATURES_HPP
#include "../my_config.h"
#include "integers.hpp"
namespace libdar
{
namespace compile_time
{
bool ea() noexcept;
bool largefile() noexcept;
bool nodump() noexcept;
bool special_alloc() noexcept;
U_I bits() noexcept;
bool thread_safe() noexcept;
bool libz() noexcept;
bool libbz2() noexcept;
bool liblzo() noexcept;
bool libxz() noexcept;
bool libzstd() noexcept;
bool liblz4() noexcept;
bool libgcrypt() noexcept;
bool libargon2() noexcept;
bool furtive_read() noexcept;
enum endian
{
big = 'B',
little = 'L',
error = 'E'
};
endian system_endian() noexcept;
bool posix_fadvise() noexcept;
bool fast_dir() noexcept;
bool FSA_linux_extX() noexcept;
bool FSA_birthtime() noexcept;
bool Linux_statx() noexcept;
bool microsecond_read() noexcept;
bool nanosecond_read() noexcept;
bool microsecond_write() noexcept;
bool nanosecond_write() noexcept;
bool symlink_restore_dates() noexcept;
bool public_key_cipher() noexcept;
bool libthreadar() noexcept;
std::string libthreadar_version() noexcept;
bool librsync() noexcept;
bool remote_repository() noexcept;
bool ftp_repository() noexcept;
bool sftp_repository() noexcept;
bool whirlpool_hash() noexcept;
std::string libcurl_version() noexcept;
U_I thread_stack_size() noexcept;
} // end of compile_time namespace
} // end of libdar namespace
#endif
integers.hpp
are defined here basic integer types that tend to be portable
my_config.h
include macro defined by the configure script and some specific additional ones
libdar::compile_time
nested namespace inside libdar
Definition compile_time_features.hpp:47
libdar::compile_time::system_endian
endian system_endian() noexcept
returns the detected integer endian of the system
libdar::compile_time::FSA_linux_extX
bool FSA_linux_extX() noexcept
returns whether libdar has been built with support for linux ext2/3/4 FSA
libdar::compile_time::remote_repository
bool remote_repository() noexcept
returns whether remote SFTP and FTP repository are both available
libdar::compile_time::nanosecond_read
bool nanosecond_read() noexcept
returns whether libdar is able to read timestamps at least at nanosecond accuracy
libdar::compile_time::libthreadar
bool libthreadar() noexcept
returns whether libthreadar linking will be done, allowing libdar to span several threads
libdar::compile_time::endian
endian
type used to return the endian nature of the current system
Definition compile_time_features.hpp:100
libdar::compile_time::big
@ big
big endian
Definition compile_time_features.hpp:101
libdar::compile_time::error
@ error
neither big nor little endian! (libdar cannot run on such system)
Definition compile_time_features.hpp:103
libdar::compile_time::little
@ little
little endian
Definition compile_time_features.hpp:102
libdar::compile_time::libz
bool libz() noexcept
returns whether libdar is dependent on libz and if so has gzip compression/decompression available
libdar::compile_time::librsync
bool librsync() noexcept
returns whether delta compression is available and delta diff stuff with it
libdar::compile_time::Linux_statx
bool Linux_statx() noexcept
returns whether libdar has been built with support for Linux statx()
libdar::compile_time::libxz
bool libxz() noexcept
returns whether libdar is dependent on liblxz/liblzma and if so has xz compression/decompression avai...
libdar::compile_time::libcurl_version
std::string libcurl_version() noexcept
returns the libcurl version used or empty string if not available
libdar::compile_time::largefile
bool largefile() noexcept
returns whether largefile (>2GiB) support has been activated at compilation time
libdar::compile_time::symlink_restore_dates
bool symlink_restore_dates() noexcept
returns whether libdar is able to restore dates of symlinks
libdar::compile_time::libbz2
bool libbz2() noexcept
returns whether libdar is dependent on libbz2 and if so has bzip2 compression/decompression available
libdar::compile_time::liblzo
bool liblzo() noexcept
returns whether libdar is dependent on liblzo and if so has lzo compression/decompression available
libdar::compile_time::sftp_repository
bool sftp_repository() noexcept
returns whether FTP repository support is available
libdar::compile_time::furtive_read
bool furtive_read() noexcept
returns whether libdar can support furtive read mode when run by privileged user
libdar::compile_time::ftp_repository
bool ftp_repository() noexcept
returns whether FTP repository support is available
libdar::compile_time::libzstd
bool libzstd() noexcept
returns whether libdar is dependent on libzstd and if so has zstd compression/decompression available
libdar::compile_time::whirlpool_hash
bool whirlpool_hash() noexcept
returns whether whirlpool hash algorithm is available
libdar::compile_time::public_key_cipher
bool public_key_cipher() noexcept
returns whether public key cipher (relying on gpgme) are available
libdar::compile_time::libgcrypt
bool libgcrypt() noexcept
returns whether libdar is dependent on libgcrypt and if so has strong encryption and hashing features...
libdar::compile_time::microsecond_write
bool microsecond_write() noexcept
returns whether libdar is able to write timestamps at least at microsecond accuracy
libdar::compile_time::libargon2
bool libargon2() noexcept
returns whether libdar is dependent on libargon2 and if it has thus argon2 hash algorithm feature ava...
libdar::compile_time::bits
U_I bits() noexcept
returns the internal integer type used
libdar::compile_time::libthreadar_version
std::string libthreadar_version() noexcept
return libthreadar version or empty string libthreadar is not available
libdar::compile_time::nanosecond_write
bool nanosecond_write() noexcept
returns whether libdar is able to write timestamps at least at nanosecond accuracy
libdar::compile_time::FSA_birthtime
bool FSA_birthtime() noexcept
returns whether libdar has been built with support for HFS+ FSA
libdar::compile_time::special_alloc
bool special_alloc() noexcept
returns whether special allocation support has been activated at compilation time
libdar::compile_time::thread_stack_size
U_I thread_stack_size() noexcept
return the thread stack size if configured from libdar else 0 for default config
libdar::compile_time::fast_dir
bool fast_dir() noexcept
returns whether libdar has been built with speed optimization for last directory
libdar::compile_time::liblz4
bool liblz4() noexcept
returns whether libdar is dependen in liblz4 and if so has lz4 compression/decompression available
libdar::compile_time::posix_fadvise
bool posix_fadvise() noexcept
returns true if libdar has support for posix_fadvise activated available
libdar::compile_time::thread_safe
bool thread_safe() noexcept
returns whether the current libdar is thread safe
libdar::compile_time::microsecond_read
bool microsecond_read() noexcept
returns whether libdar is able to read timestamps at least at microsecond accuracy
libdar::compile_time::ea
bool ea() noexcept
returns whether EA support has been activated at compilation time
libdar::compile_time::nodump
bool nodump() noexcept
returns whether nodump flag support has been activated at compilation time
libdar
libdar namespace encapsulate all libdar symbols
Definition archive.hpp:47