1------------------------------------------------------------------------------
2--                                                                          --
3--                             GPR TECHNOLOGY                               --
4--                                                                          --
5--                     Copyright (C) 2006-2015, AdaCore                     --
6--                                                                          --
7-- This is  free  software;  you can redistribute it and/or modify it under --
8-- terms of the  GNU  General Public License as published by the Free Soft- --
9-- ware  Foundation;  either version 3,  or (at your option) any later ver- --
10-- sion.  This software is distributed in the hope  that it will be useful, --
11-- but WITHOUT ANY WARRANTY;  without even the implied warranty of MERCHAN- --
12-- TABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public --
13-- License for more details.  You should have received  a copy of the  GNU  --
14-- General Public License distributed with GNAT; see file  COPYING. If not, --
15-- see <http://www.gnu.org/licenses/>.                                      --
16--                                                                          --
17------------------------------------------------------------------------------
18
19--  These package defines sections and the corresponding labels for exchange
20--  files between gprbuild and gprbind (binding exchange files) and gprlib
21--  (library exchange files).
22
23--  All labels start with '[' and end with ']'
24
25package Gprexch is
26
27   --  Binding exchange file sections
28
29   type Binding_Section is
30     (No_Binding_Section,
31      Quiet,
32      Verbose,
33      Nothing_To_Bind,
34      Shared_Libs,
35      Main_Base_Name,
36      Mapping_File,
37      Compiler_Path,
38      Compiler_Leading_Switches,
39      Compiler_Trailing_Switches,
40      Main_Dependency_File,
41      Dependency_Files,
42      Binding_Options,
43      Generated_Object_File,
44      Bound_Object_Files,
45      Generated_Source_Files,
46      Resulting_Options,
47      Run_Path_Option,
48      Project_Files,
49      Toolchain_Version,
50      Delete_Temp_Files,
51      Object_File_Suffix,
52      There_Are_Stand_Alone_Libraries);
53
54   function Binding_Label (Section : Binding_Section) return String;
55   --  Return the label for a section in a binder exchange file
56
57   function Get_Binding_Section (Label : String) return Binding_Section;
58   --  Get the current section from a label in a binding exchange file
59
60   --  Library exchange file sections
61
62   type Library_Section is
63     (No_Library_Section,
64      No_Create,
65      Quiet,
66      Verbose,
67      Relocatable,
68      Static,
69      Object_Files,
70      Options,
71      Object_Directory,
72      Library_Name,
73      Library_Directory,
74      Library_Dependency_Directory,
75      Library_Version,
76      Library_Options,
77      Library_Rpath_Options,
78      Library_Path,
79      Library_Version_Options,
80      Shared_Lib_Prefix,
81      Shared_Lib_Suffix,
82      Shared_Lib_Minimum_Options,
83      Symbolic_Link_Supported,
84      Major_Minor_Id_Supported,
85      PIC_Option,
86      Imported_Libraries,
87      Runtime_Library_Dir,
88      Driver_Name,
89      Compilers,
90      Compiler_Leading_Switches,
91      Compiler_Trailing_Switches,
92      Toolchain_Version,
93      Archive_Builder,
94      Archive_Builder_Append_Option,
95      Archive_Indexer,
96      Partial_Linker,
97      Archive_Suffix,
98      Run_Path_Option,
99      Separate_Run_Path_Options,
100      Install_Name,
101      Auto_Init,
102      Interface_Dep_Files,
103      Other_Interfaces,
104      Interface_Obj_Files,
105      Standalone_Mode,
106      Dependency_Files,
107      Binding_Options,
108      Leading_Library_Options,
109      Copy_Source_Dir,
110      Sources,
111      Generated_Object_Files,
112      Generated_Source_Files,
113      Max_Command_Line_Length,
114      Response_File_Format,
115      Response_File_Switches,
116      Keep_Temporary_Files,
117      Object_Lister,
118      Object_Lister_Matcher,
119      Export_File,
120      Library_Symbol_File);
121
122   function Library_Label (Section : Library_Section) return String;
123   --  Return the label for a section in a library exchange file
124
125   function Get_Library_Section (Label : String) return Library_Section;
126   --  Get the current section from a label in a library exchange file
127
128end Gprexch;
129