1 ------------------------------------------------------------------------------
3 -- GNAT COMPILER COMPONENTS --
9 -- Copyright (C) 2018, AdaCore --
11 -- GNAT is free software; you can redistribute it and/or modify it under --
12 -- terms of the GNU General Public License as published by the Free Soft- --
13 -- ware Foundation; either version 3, or (at your option) any later ver- --
14 -- sion. GNAT is distributed in the hope that it will be useful, but WITH- --
15 -- OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY --
16 -- or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License --
17 -- for more details. You should have received a copy of the GNU General --
18 -- Public License distributed with GNAT; see file COPYING3. If not, go to --
19 -- http://www.gnu.org/licenses for a complete copy of the license. --
21 -- GNAT was originally developed by the GNAT team at New York University. --
22 -- Extensive contributions were provided by Ada Core Technologies Inc. --
24 ------------------------------------------------------------------------------
26 -- See vxlink-main.adb for a description of the tool.
28 -- This package contains only common utility functions used by the other
33 with Ada
.Containers
.Indefinite_Vectors
;
37 package Strings_List
is new Ada
.Containers
.Indefinite_Vectors
40 subtype Arguments_List
is Strings_List
.Vector
;
42 procedure Set_Verbose
(Value
: Boolean);
43 function Is_Verbose
return Boolean;
45 procedure Set_Error_State
(Message
: String);
46 function Is_Error_State
return Boolean;
48 procedure Log_Info
(S
: String);
49 procedure Log_Error
(S
: String);
51 procedure Run
(Arguments
: Arguments_List
);
53 function Run
(Arguments
: Arguments_List
) return String;
55 function Gcc
return String;
56 -- Current toolchain's gcc command
58 function Gxx
return String;
59 -- Current toolchain's g++ command
61 function Nm
return String;
62 -- Current toolchain's nm command
64 function Ends_With
(Str
, Suffix
: String) return Boolean
65 is (Str
'Length >= Suffix
'Length
66 and then Str
(Str
'Last - Suffix
'Length + 1 .. Str
'Last) = Suffix
);