Disk ARchive  2.7.15
Full featured and portable backup and archiving tool
compile_time_features.hpp
Go to the documentation of this file.
1 /*********************************************************************/
2 // dar - disk archive - a backup/restoration program
3 // Copyright (C) 2002-2024 Denis Corbin
4 //
5 // This program is free software; you can redistribute it and/or
6 // modify it under the terms of the GNU General Public License
7 // as published by the Free Software Foundation; either version 2
8 // of the License, or (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License
16 // along with this program; if not, write to the Free Software
17 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 //
19 // to contact the author, see the AUTHOR file
20 /*********************************************************************/
21 
25 
26 
27 #ifndef COMPILE_TIME_FEATURES_HPP
28 #define COMPILE_TIME_FEATURES_HPP
29 
30 #include "../my_config.h"
31 
32 namespace libdar
33 {
34 
37 
39 
43 
44  namespace compile_time
45  {
47  bool ea() noexcept;
48 
50  bool largefile() noexcept;
51 
53  bool nodump() noexcept;
54 
56 
59  bool special_alloc() noexcept;
60 
62 
64  U_I bits() noexcept;
65 
67  bool thread_safe() noexcept;
68 
70  bool libz() noexcept;
71 
73  bool libbz2() noexcept;
74 
76  bool liblzo() noexcept;
77 
79  bool libxz() noexcept;
80 
82  bool libzstd() noexcept;
83 
85  bool liblz4() noexcept;
86 
88  bool libgcrypt() noexcept;
89 
91  bool libargon2() noexcept;
92 
94  bool furtive_read() noexcept;
95 
97  enum endian
98  {
99  big = 'B', //< big endian
100  little = 'L', //< little endian
101  error = 'E' //< neither big nor little endian! (libdar cannot run on such system)
102  };
103 
105  endian system_endian() noexcept;
106 
108  bool posix_fadvise() noexcept;
109 
111  bool fast_dir() noexcept;
112 
114  bool FSA_linux_extX() noexcept;
115 
117  bool FSA_birthtime() noexcept;
118 
120  bool Linux_statx() noexcept;
121 
123  bool microsecond_read() noexcept;
124 
126  bool nanosecond_read() noexcept;
127 
129  bool microsecond_write() noexcept;
130 
132  bool nanosecond_write() noexcept;
133 
135  bool symlink_restore_dates() noexcept;
136 
138  bool public_key_cipher() noexcept;
139 
141  bool libthreadar() noexcept;
142 
144  std::string libthreadar_version() noexcept;
145 
147  bool librsync() noexcept;
148 
150  bool remote_repository() noexcept;
151 
153  std::string libcurl_version() noexcept;
154 
155  } // end of compile_time namespace
156 
158 
159 } // end of libdar namespace
160 
161 #endif
endian system_endian() noexcept
returns the detected integer endian of the system
bool FSA_linux_extX() noexcept
returns whether libdar has been built with support for linux ext2/3/4 FSA
bool remote_repository() noexcept
returns whether remote repository feature is available (implemented using libcurl)
bool nanosecond_read() noexcept
returns whether libdar is able to read timestamps at least at nanosecond accuracy
bool libthreadar() noexcept
returns whether libthreadar linking will be done, allowing libdar to span several threads
endian
type used to return the endian nature of the current system
bool libz() noexcept
returns whether libdar is dependent on libz and if so has gzip compression/decompression available
bool librsync() noexcept
returns whether delta compression is available and delta diff stuff with it
bool Linux_statx() noexcept
returns whether libdar has been built with support for Linux statx()
bool libxz() noexcept
returns whether libdar is dependent on liblxz/liblzma and if so has xz compression/decompression avai...
std::string libcurl_version() noexcept
returns the libcurl version used or empty string if not available
bool largefile() noexcept
returns whether largefile (>2GiB) support has been activated at compilation time
bool symlink_restore_dates() noexcept
returns whether libdar is able to restore dates of symlinks
bool libbz2() noexcept
returns whether libdar is dependent on libbz2 and if so has bzip2 compression/decompression available
bool liblzo() noexcept
returns whether libdar is dependent on liblzo and if so has lzo compression/decompression available
bool furtive_read() noexcept
returns whether libdar can support furtive read mode when run by privileged user
bool libzstd() noexcept
returns whether libdar is dependent on libzstd and if so has zstd compression/decompression available
bool public_key_cipher() noexcept
returns whether public key cipher (relying on gpgme) are available
bool libgcrypt() noexcept
returns whether libdar is dependent on libgcrypt and if so has strong encryption and hashing features...
bool microsecond_write() noexcept
returns whether libdar is able to write timestamps at least at microsecond accuracy
bool libargon2() noexcept
returns whether libdar is dependent on libargon2 and if it has thus argon2 hash algorithm feature ava...
U_I bits() noexcept
returns the internal integer type used
std::string libthreadar_version() noexcept
return libthreadar version or empty string libthreadar is not available
bool nanosecond_write() noexcept
returns whether libdar is able to write timestamps at least at nanosecond accuracy
bool FSA_birthtime() noexcept
returns whether libdar has been built with support for HFS+ FSA
bool special_alloc() noexcept
returns whether special allocation support has been activated at compilation time
bool fast_dir() noexcept
returns whether libdar has been built with speed optimization for last directory
bool liblz4() noexcept
returns whether libdar is dependen in liblz4 and if so has lz4 compression/decompression available
bool posix_fadvise() noexcept
returns true if libdar has support for posix_fadvise activated available
bool thread_safe() noexcept
returns whether the current libdar is thread safe
bool microsecond_read() noexcept
returns whether libdar is able to read timestamps at least at microsecond accuracy
bool ea() noexcept
returns whether EA support has been activated at compilation time
bool nodump() noexcept
returns whether nodump flag support has been activated at compilation time
libdar namespace encapsulate all libdar symbols
Definition: archive.hpp:47