[Ada] New attribute Builder'Global_Compilation_Switches ("<lang>")

Arnaud Charlet charlet@adacore.com
Mon Aug 4 09:08:00 GMT 2008


A new attribute Globat_Compilation_Switches ("<lang>") is added in
package Builder in project files. This attribute is recognized only by
gprbuild.

Tested on i686-pc-linux-gnu, committed on trunk

2008-08-04  Vincent Celier  <celier@adacore.com>

	* prj-attr.adb: New Builder attribute Global_Compilation_Switches
	
	* snames.adb: New standard name Global_Compilation_Switches
	
	* snames.ads: New standard name Global_Compilation_Switches

-------------- next part --------------
Index: snames.adb
===================================================================
--- snames.adb	(revision 138518)
+++ snames.adb	(working copy)
@@ -727,6 +727,7 @@ package body Snames is
      "extends#" &
      "externally_built#" &
      "finder#" &
+     "global_compilation_switches#" &
      "global_configuration_pragmas#" &
      "global_config_file#" &
      "gnatls#" &
Index: snames.ads
===================================================================
--- snames.ads	(revision 138518)
+++ snames.ads	(working copy)
@@ -1054,106 +1054,107 @@ package Snames is
    Name_Extends                        : constant Name_Id := N + 666;
    Name_Externally_Built               : constant Name_Id := N + 667;
    Name_Finder                         : constant Name_Id := N + 668;
-   Name_Global_Configuration_Pragmas   : constant Name_Id := N + 669;
-   Name_Global_Config_File             : constant Name_Id := N + 670;
-   Name_Gnatls                         : constant Name_Id := N + 671;
-   Name_Gnatstub                       : constant Name_Id := N + 672;
-   Name_Implementation                 : constant Name_Id := N + 673;
-   Name_Implementation_Exceptions      : constant Name_Id := N + 674;
-   Name_Implementation_Suffix          : constant Name_Id := N + 675;
-   Name_Include_Switches               : constant Name_Id := N + 676;
-   Name_Include_Path                   : constant Name_Id := N + 677;
-   Name_Include_Path_File              : constant Name_Id := N + 678;
-   Name_Inherit_Source_Path            : constant Name_Id := N + 679;
-   Name_Language_Kind                  : constant Name_Id := N + 680;
-   Name_Language_Processing            : constant Name_Id := N + 681;
-   Name_Languages                      : constant Name_Id := N + 682;
-   Name_Library                        : constant Name_Id := N + 683;
-   Name_Library_Ali_Dir                : constant Name_Id := N + 684;
-   Name_Library_Auto_Init              : constant Name_Id := N + 685;
-   Name_Library_Auto_Init_Supported    : constant Name_Id := N + 686;
-   Name_Library_Builder                : constant Name_Id := N + 687;
-   Name_Library_Dir                    : constant Name_Id := N + 688;
-   Name_Library_GCC                    : constant Name_Id := N + 689;
-   Name_Library_Interface              : constant Name_Id := N + 690;
-   Name_Library_Kind                   : constant Name_Id := N + 691;
-   Name_Library_Name                   : constant Name_Id := N + 692;
-   Name_Library_Major_Minor_Id_Supported : constant Name_Id := N + 693;
-   Name_Library_Options                : constant Name_Id := N + 694;
-   Name_Library_Partial_Linker         : constant Name_Id := N + 695;
-   Name_Library_Reference_Symbol_File  : constant Name_Id := N + 696;
-   Name_Library_Src_Dir                : constant Name_Id := N + 697;
-   Name_Library_Support                : constant Name_Id := N + 698;
-   Name_Library_Symbol_File            : constant Name_Id := N + 699;
-   Name_Library_Symbol_Policy          : constant Name_Id := N + 700;
-   Name_Library_Version                : constant Name_Id := N + 701;
-   Name_Library_Version_Switches       : constant Name_Id := N + 702;
-   Name_Linker                         : constant Name_Id := N + 703;
-   Name_Linker_Executable_Option       : constant Name_Id := N + 704;
-   Name_Linker_Lib_Dir_Option          : constant Name_Id := N + 705;
-   Name_Linker_Lib_Name_Option         : constant Name_Id := N + 706;
-   Name_Local_Config_File              : constant Name_Id := N + 707;
-   Name_Local_Configuration_Pragmas    : constant Name_Id := N + 708;
-   Name_Locally_Removed_Files          : constant Name_Id := N + 709;
-   Name_Map_File_Option                : constant Name_Id := N + 710;
-   Name_Mapping_File_Switches          : constant Name_Id := N + 711;
-   Name_Mapping_Spec_Suffix            : constant Name_Id := N + 712;
-   Name_Mapping_Body_Suffix            : constant Name_Id := N + 713;
-   Name_Metrics                        : constant Name_Id := N + 714;
-   Name_Naming                         : constant Name_Id := N + 715;
-   Name_Object_Generated               : constant Name_Id := N + 716;
-   Name_Objects_Linked                 : constant Name_Id := N + 717;
-   Name_Objects_Path                   : constant Name_Id := N + 718;
-   Name_Objects_Path_File              : constant Name_Id := N + 719;
-   Name_Object_Dir                     : constant Name_Id := N + 720;
-   Name_Path_Syntax                    : constant Name_Id := N + 721;
-   Name_Pic_Option                     : constant Name_Id := N + 722;
-   Name_Pretty_Printer                 : constant Name_Id := N + 723;
-   Name_Prefix                         : constant Name_Id := N + 724;
-   Name_Project                        : constant Name_Id := N + 725;
-   Name_Roots                          : constant Name_Id := N + 726;
-   Name_Required_Switches              : constant Name_Id := N + 727;
-   Name_Run_Path_Option                : constant Name_Id := N + 728;
-   Name_Runtime_Project                : constant Name_Id := N + 729;
-   Name_Shared_Library_Minimum_Switches : constant Name_Id := N + 730;
-   Name_Shared_Library_Prefix          : constant Name_Id := N + 731;
-   Name_Shared_Library_Suffix          : constant Name_Id := N + 732;
-   Name_Separate_Suffix                : constant Name_Id := N + 733;
-   Name_Source_Dirs                    : constant Name_Id := N + 734;
-   Name_Source_Files                   : constant Name_Id := N + 735;
-   Name_Source_List_File               : constant Name_Id := N + 736;
-   Name_Spec                           : constant Name_Id := N + 737;
-   Name_Spec_Suffix                    : constant Name_Id := N + 738;
-   Name_Specification                  : constant Name_Id := N + 739;
-   Name_Specification_Exceptions       : constant Name_Id := N + 740;
-   Name_Specification_Suffix           : constant Name_Id := N + 741;
-   Name_Stack                          : constant Name_Id := N + 742;
-   Name_Switches                       : constant Name_Id := N + 743;
-   Name_Symbolic_Link_Supported        : constant Name_Id := N + 744;
-   Name_Sync                           : constant Name_Id := N + 745;
-   Name_Synchronize                    : constant Name_Id := N + 746;
-   Name_Toolchain_Description          : constant Name_Id := N + 747;
-   Name_Toolchain_Version              : constant Name_Id := N + 748;
-   Name_Runtime_Library_Dir            : constant Name_Id := N + 749;
+   Name_Global_Compilation_Switches    : constant Name_Id := N + 669;
+   Name_Global_Configuration_Pragmas   : constant Name_Id := N + 670;
+   Name_Global_Config_File             : constant Name_Id := N + 671;
+   Name_Gnatls                         : constant Name_Id := N + 672;
+   Name_Gnatstub                       : constant Name_Id := N + 673;
+   Name_Implementation                 : constant Name_Id := N + 674;
+   Name_Implementation_Exceptions      : constant Name_Id := N + 675;
+   Name_Implementation_Suffix          : constant Name_Id := N + 676;
+   Name_Include_Switches               : constant Name_Id := N + 677;
+   Name_Include_Path                   : constant Name_Id := N + 678;
+   Name_Include_Path_File              : constant Name_Id := N + 679;
+   Name_Inherit_Source_Path            : constant Name_Id := N + 680;
+   Name_Language_Kind                  : constant Name_Id := N + 681;
+   Name_Language_Processing            : constant Name_Id := N + 682;
+   Name_Languages                      : constant Name_Id := N + 683;
+   Name_Library                        : constant Name_Id := N + 684;
+   Name_Library_Ali_Dir                : constant Name_Id := N + 685;
+   Name_Library_Auto_Init              : constant Name_Id := N + 686;
+   Name_Library_Auto_Init_Supported    : constant Name_Id := N + 687;
+   Name_Library_Builder                : constant Name_Id := N + 688;
+   Name_Library_Dir                    : constant Name_Id := N + 689;
+   Name_Library_GCC                    : constant Name_Id := N + 690;
+   Name_Library_Interface              : constant Name_Id := N + 691;
+   Name_Library_Kind                   : constant Name_Id := N + 692;
+   Name_Library_Name                   : constant Name_Id := N + 693;
+   Name_Library_Major_Minor_Id_Supported : constant Name_Id := N + 694;
+   Name_Library_Options                : constant Name_Id := N + 695;
+   Name_Library_Partial_Linker         : constant Name_Id := N + 696;
+   Name_Library_Reference_Symbol_File  : constant Name_Id := N + 697;
+   Name_Library_Src_Dir                : constant Name_Id := N + 698;
+   Name_Library_Support                : constant Name_Id := N + 699;
+   Name_Library_Symbol_File            : constant Name_Id := N + 700;
+   Name_Library_Symbol_Policy          : constant Name_Id := N + 701;
+   Name_Library_Version                : constant Name_Id := N + 702;
+   Name_Library_Version_Switches       : constant Name_Id := N + 703;
+   Name_Linker                         : constant Name_Id := N + 704;
+   Name_Linker_Executable_Option       : constant Name_Id := N + 705;
+   Name_Linker_Lib_Dir_Option          : constant Name_Id := N + 706;
+   Name_Linker_Lib_Name_Option         : constant Name_Id := N + 707;
+   Name_Local_Config_File              : constant Name_Id := N + 708;
+   Name_Local_Configuration_Pragmas    : constant Name_Id := N + 709;
+   Name_Locally_Removed_Files          : constant Name_Id := N + 710;
+   Name_Map_File_Option                : constant Name_Id := N + 711;
+   Name_Mapping_File_Switches          : constant Name_Id := N + 712;
+   Name_Mapping_Spec_Suffix            : constant Name_Id := N + 713;
+   Name_Mapping_Body_Suffix            : constant Name_Id := N + 714;
+   Name_Metrics                        : constant Name_Id := N + 715;
+   Name_Naming                         : constant Name_Id := N + 716;
+   Name_Object_Generated               : constant Name_Id := N + 717;
+   Name_Objects_Linked                 : constant Name_Id := N + 718;
+   Name_Objects_Path                   : constant Name_Id := N + 719;
+   Name_Objects_Path_File              : constant Name_Id := N + 720;
+   Name_Object_Dir                     : constant Name_Id := N + 721;
+   Name_Path_Syntax                    : constant Name_Id := N + 722;
+   Name_Pic_Option                     : constant Name_Id := N + 723;
+   Name_Pretty_Printer                 : constant Name_Id := N + 724;
+   Name_Prefix                         : constant Name_Id := N + 725;
+   Name_Project                        : constant Name_Id := N + 726;
+   Name_Roots                          : constant Name_Id := N + 727;
+   Name_Required_Switches              : constant Name_Id := N + 728;
+   Name_Run_Path_Option                : constant Name_Id := N + 729;
+   Name_Runtime_Project                : constant Name_Id := N + 730;
+   Name_Shared_Library_Minimum_Switches : constant Name_Id := N + 731;
+   Name_Shared_Library_Prefix          : constant Name_Id := N + 732;
+   Name_Shared_Library_Suffix          : constant Name_Id := N + 733;
+   Name_Separate_Suffix                : constant Name_Id := N + 734;
+   Name_Source_Dirs                    : constant Name_Id := N + 735;
+   Name_Source_Files                   : constant Name_Id := N + 736;
+   Name_Source_List_File               : constant Name_Id := N + 737;
+   Name_Spec                           : constant Name_Id := N + 738;
+   Name_Spec_Suffix                    : constant Name_Id := N + 739;
+   Name_Specification                  : constant Name_Id := N + 740;
+   Name_Specification_Exceptions       : constant Name_Id := N + 741;
+   Name_Specification_Suffix           : constant Name_Id := N + 742;
+   Name_Stack                          : constant Name_Id := N + 743;
+   Name_Switches                       : constant Name_Id := N + 744;
+   Name_Symbolic_Link_Supported        : constant Name_Id := N + 745;
+   Name_Sync                           : constant Name_Id := N + 746;
+   Name_Synchronize                    : constant Name_Id := N + 747;
+   Name_Toolchain_Description          : constant Name_Id := N + 748;
+   Name_Toolchain_Version              : constant Name_Id := N + 749;
+   Name_Runtime_Library_Dir            : constant Name_Id := N + 750;
 
    --  Other miscellaneous names used in front end
 
-   Name_Unaligned_Valid                : constant Name_Id := N + 750;
+   Name_Unaligned_Valid                : constant Name_Id := N + 751;
 
    --  Ada 2005 reserved words
 
-   First_2005_Reserved_Word            : constant Name_Id := N + 751;
-   Name_Interface                      : constant Name_Id := N + 751;
-   Name_Overriding                     : constant Name_Id := N + 752;
-   Name_Synchronized                   : constant Name_Id := N + 753;
-   Last_2005_Reserved_Word             : constant Name_Id := N + 753;
+   First_2005_Reserved_Word            : constant Name_Id := N + 752;
+   Name_Interface                      : constant Name_Id := N + 752;
+   Name_Overriding                     : constant Name_Id := N + 753;
+   Name_Synchronized                   : constant Name_Id := N + 754;
+   Last_2005_Reserved_Word             : constant Name_Id := N + 754;
 
    subtype Ada_2005_Reserved_Words is
      Name_Id range First_2005_Reserved_Word .. Last_2005_Reserved_Word;
 
    --  Mark last defined name for consistency check in Snames body
 
-   Last_Predefined_Name                : constant Name_Id := N + 753;
+   Last_Predefined_Name                : constant Name_Id := N + 754;
 
    ---------------------------------------
    -- Subtypes Defining Name Categories --
Index: prj-attr.adb
===================================================================
--- prj-attr.adb	(revision 138518)
+++ prj-attr.adb	(working copy)
@@ -201,6 +201,7 @@ package body Prj.Attr is
    "Pbuilder#" &
    "Ladefault_switches#" &
    "Lcswitches#" &
+   "Lcglobal_compilation_switches#" &
    "Scexecutable#" &
    "SVexecutable_suffix#" &
    "SVglobal_configuration_pragmas#" &


More information about the Gcc-patches mailing list