+2013-01-03 Pascal Obry <obry@adacore.com>
+
+ * prj-attr.adb, projects.texi, snames.ads-tmpl: Add package remote and
+ corresponding attibutes.
+
+2013-01-03 Thomas Quinot <quinot@adacore.com>
+
+ * exp_aggr.adb: Minor comment improvement.
+
2013-01-03 Hristian Kirtchev <kirtchev@adacore.com>
* aspects.adb, aspects.ads: Add Aspect_Abstract_State to all the
end if;
-- Perform in-place expansion of aggregate in an object declaration.
- -- Note: actions generated for the aggregate will be captured in a block
- -- statement so that they can be transferred to freeze actions later
- -- if there is an address clause for the object.
+ -- Note: actions generated for the aggregate will be captured in an
+ -- expression-with-actions statement so that they can be transferred
+ -- to freeze actions later if there is an address clause for the
+ -- object. (Note: we don't use a block statement because this would
+ -- cause generated freeze nodes to be elaborated in the wrong scope).
-- Should document these individual tests ???
"SVproject_subdir#" &
"SVactive#" &
+ -- package Remote
+
+ "Premote#" &
+ "LVbuild_slaves#" &
+ "SVroot_dir#" &
+
-- package Stack
"Pstack#" &
* Avoid Duplication With Variables::
* Naming Schemes::
* Installation::
+* Distributed support::
@end menu
@c ---------------------------------------------
installed. Default is @b{share/gpr}.
@end table
+@c ---------------------------------------------
+@node Distributed support
+@subsection Distributed support
+@c ---------------------------------------------
+
+@noindent
+For large projects the compilation time can become a limitation in
+the development cycle. To cope with that, GPRbuild supports
+distributed compilation.
+
+The following attributes can be defined in package @code{Remote}:
+
+@table @asis
+
+@item @b{Build_Slaves}
+@cindex @code{Build_Slaves}
+
+A list of string referencing the remote build slaves to use for the
+compilation phase. The format is:
+@code{[protocol://]name.domain[:port]}.
+
+Where @code{protocol} is one of:
+
+@table @asis
+
+@item rsync
+@cindex @code{rsync}
+
+The sources are copied using the external @code{rsync} tool.
+
+@item file
+
+The sources are accessed via a shared directory or mount point.
+
+@end table
+
+The default port used to communicate with @command{gprslave} is
+@code{8484}.
+
+@item @b{Root_Dir}:
+@cindex @code{Root_Dir}
+
+Root directory of the project's sources. The default value is the
+project's directory.
+
+@end table
+
@c ---------------------------------------------
@node Organizing Projects into Subsystems
@section Organizing Projects into Subsystems
Name_Archive_Suffix : constant Name_Id := N + $;
Name_Binder : constant Name_Id := N + $;
Name_Body_Suffix : constant Name_Id := N + $;
+ Name_Build_Slaves : constant Name_Id := N + $;
Name_Builder : constant Name_Id := N + $;
Name_Clean : constant Name_Id := N + $;
Name_Compiler : constant Name_Id := N + $;
Name_Project_Files : constant Name_Id := N + $;
Name_Project_Path : constant Name_Id := N + $;
Name_Project_Subdir : constant Name_Id := N + $;
+ Name_Remote : constant Name_Id := N + $;
Name_Response_File_Format : constant Name_Id := N + $;
Name_Response_File_Switches : constant Name_Id := N + $;
+ Name_Root_Dir : constant Name_Id := N + $;
Name_Roots : constant Name_Id := N + $; -- GB
Name_Required_Switches : constant Name_Id := N + $;
Name_Run_Path_Option : constant Name_Id := N + $;