==============================
GPRBUILD 2.3 NEW FEATURES LIST
==============================

Copyright (C) 2014-2016, AdaCore

This file contains a complete list of new features in version 2.3 of GPRBUILD.
A full description of all GPRBUILD features can be found in the GPRBUILD
User's Guide.

NF-23-OA08-029 GPRinstall now uninstall aggregate projects (2015-10-10)

   GPRinstall now has support for uninstalling aggregate projects. In this
   case all libraries/projects part of the aggregate project are uninstalled.

NF-23-OA08-016 Allow more packages in aggregate projects (2015-11-18)

   Packages Naming, Compiler, Binder and Linker are not allowed in aggregate
   projects and aggregate library projects. In addition, package Install is
   not allowed in aggregate projects. All other packages are allowed.

NF-23-OA08-010 Builder switches in aggregate projects (2015-10-21)

   Switches specified in Builder'Switches (others) in a main aggregate or
   aggregate library project are now taken into account by gprbuild.

NF-23-O930-025 Improve reproducibility of builds (2015-10-14)

   When gprbuild is used to build the same executable with the same project
   files and sources, with the same paths on two different but similar
   platforms, the executables will be the same and will have the same behavior.
   In particular, the elaboration orders of the Ada code will be the same.

NF-23-O924-030 GPRinstall now installs all sources by default (2015-09-27)

   GPRinstall now installs all sources by default. To revert to the previous
   behavior the -m (minimal) switch has been introduced. Note that -a
   switch has been kept for compatibility reason but does nothing now.

NF-23-O921-014 Generate symlink for library major version (2015-09-24)

   GPRinstall now creates symlink for the library major version if needed.

NF-23-O902-041 Improve usability of code compiled on other machine (2015-10-20)

   When Ada code that has been compiled on machine A for a specific runtime is
   used to build an executable on machine B for the same runtime, the build
   will now succeed in all cases, even though the path of the runtime on
   machine A is not the same as the path of the runtime on machine B.

NF-23-O720-008 Proper process clean-up in distributed build (2015-08-06)

   When a builder is interrupted (ctrl-c), GPRslave will kill all
   corresponding processes. By doing this we ensure faster and cleaner
   restart of the same compilation.

NF-23-O612-022 Add variables in gprinstall's generated projects (2015-06-15)

   Project generated with gprinstall will now contains global variables
   as found in the original project.

NF-23-O601-024 Create a symlink for the versioned libraries (2015-06-01)

   A symlink is now created on the main library directory for a library
   name with a version (Library_Version attribute).

NF-23-O528-047 New tool gprname (2015-07-06)

   A new GPR tool, gprname, is now available. It is the replacement of
   "gnatname -P".

NF-23-O525-021 Value of Runtime when --RTS= is specified (2015-06-18)

   When --RTS= is specified for a language on the command line, the value of
   attribute reference 'Runtime (<language>) is the value specified by the
   switch --RTS=, even when attribute Runtime (<language>) has been declared.

NF-23-O420-012 --create-map-file for cross targets (2015-04-21)

  This is now supported on cross platforms that use GNU ld to link.

NF-23-O325-017 Out of tree build (2015-03-29)

  gprbuild can now build a project file out of a the source tree. That is,
  all artifacts (object, executable, ALI files) are relocated to the directory
  where gprbuild is launched when using the new --relocate-build-tree option.

  The --relocate-build-tree option is also available with gprinstall and
  gprclean to install artifacts or delete them from the out-of-tree build
  directory.

NF-23-O224-040 GPRbuild distributed environment variables (2015-04-12)

  gprbuild and gprslave now accepts slaves to be specified using environment
  variables. Either GPR_SLAVES which contains a coma separated list of host
  names or GPR_SLAVES_FILE with specify a file whose content must be an host
  name per line.

NF-23-O127-044 New gprbuild switch -z (2015-01-26)

  gprbuild now accepts the switch -z to build executable with no main
  subprogram, as gnatmake already does.

NF-23-O126-001 Warnings when interface of a SAL is incomplete (2015-01-27)

  When gprbuild is invoked without -q, it checks if the interface of a SAL
  is complete, and warn if units of the project that are imported by the
  interface units are not themselves in the interface.

NF-23-NC04-012 Linking with --lto=nn when -jnn and --lto are used (2014-12-18)

  When gprbuild is invoked with -jnn (nn > 1) and with the linker switch
  --lto (or -flto), the linker is invoked with --lto=nn (or -flto=nn) to speed
  up linking.

NF-23-NC03-007 Invoke the correct gnatbind for unknown targets (2014-02-03)

  When gprbuild is invoked with an unkown target and the Ada compiler is
  found by gprconfig, the correct gnatbind for the target is now used,
  instead of the native one.

NF-23-NA15-003 GPRinstall new --no-build-var option (2014-11-21)

  A new option --no-build-var has been introduced and is meant to be
  use for project with a single configuration (single installation).
  In this case there is no build/scenario variable generated.

NF-23-NA14-036 GPRinstall Mode & Install_Name attributes (2014-12-10)

  It is now possible to set the Mode and Install_Name value in the
  package Install of a project. These attributes are equivalent to the
  GPSinstall command line options but allow per project fine tuning of
  the installation setup.

NF-23-NA07-058 Dependency with different timestamp (2015-03-13)

  gprbuild now recompiles a file based source if one of its dependency source
  has a different time stamp, even when the time stamp is before the one of
  the object file.
