blob: a80539ea95fdffe1d14e8c376a458d09d95e2eb1 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
|
// file : build2/bin/guess -*- C++ -*-
// copyright : Copyright (c) 2014-2016 Code Synthesis Ltd
// license : MIT; see accompanying LICENSE file
#ifndef BUILD2_BIN_GUESS
#define BUILD2_BIN_GUESS
#include <build2/types>
#include <build2/utility>
namespace build2
{
namespace bin
{
// ar/ranlib information.
//
// Currently recognized ar/ranlib and their ids:
//
// gnu GNU binutils
// llvm LLVM
// bsd FreeBSD (and maybe other BSDs)
// msvc Microsoft's lib.exe
// generic Generic/unrecognized
//
// The signature is normally the --version/-V line.
//
// The checksum is used to detect ar/ranlib changes. It is calculated in
// a toolchain-specific manner (usually the output of --version/-V) and
// is not bulletproof.
//
struct bin_info
{
string ar_id;
string ar_signature;
string ar_checksum;
string ranlib_id;
string ranlib_signature;
string ranlib_checksum;
};
// The ranlib path can be empty, in which case no ranlib guessing will be
// attemplated and the returned ranlib_* members will be left empty as
// well.
//
bin_info
guess (const path& ar, const path& ranlib);
}
}
#endif // BUILD2_BIN_GUESS
|