make.adb (Gnatmake): Add to table Library_Projs only library projects that are not extended.

2011-08-03  Vincent Celier  <celier@adacore.com>

	* make.adb (Gnatmake): Add to table Library_Projs only library projects
	that are not extended. Do not check if a library project that is
	extended should be regenerated. Do not add to table Library_Paths the
	libraries that are in extended projects. Link only with libraries that
	are in libray projects that are not extended.
	* prj-nmsc.adb (Check_Library_Attributes): Do not reset flag Library
	for a library project that is extended.

From-SVN: r177269
This commit is contained in:
Vincent Celier 2011-08-03 12:36:13 +00:00 committed by Arnaud Charlet
parent 276e02243a
commit f77b022b82
3 changed files with 63 additions and 47 deletions

View File

@ -1,3 +1,13 @@
2011-08-03 Vincent Celier <celier@adacore.com>
* make.adb (Gnatmake): Add to table Library_Projs only library projects
that are not extended. Do not check if a library project that is
extended should be regenerated. Do not add to table Library_Paths the
libraries that are in extended projects. Link only with libraries that
are in libray projects that are not extended.
* prj-nmsc.adb (Check_Library_Attributes): Do not reset flag Library
for a library project that is extended.
2011-08-03 Gary Dismukes <dismukes@adacore.com>
* sem_ch6.adb (Find_Corresponding_Spec): When in an instance, skip

View File

@ -5530,6 +5530,7 @@ package body Make is
Proj1 := Project_Tree.Projects;
while Proj1 /= null loop
if Proj1.Project.Extended_By = No_Project then
if Proj1.Project.Standalone_Library then
Stand_Alone_Libraries := True;
end if;
@ -5542,6 +5543,7 @@ package body Make is
if Proj1.Project.Need_To_Build_Lib then
Add_To_Library_Projs (Proj1.Project);
end if;
end if;
Proj1 := Proj1.Next;
end loop;
@ -5553,6 +5555,7 @@ package body Make is
Proj1 := Project_Tree.Projects;
while Proj1 /= null loop
if Proj1.Project.Library
and then Proj1.Project.Extended_By = No_Project
and then Proj1.Project.Library_Kind /= Static
and then not Proj1.Project.Need_To_Build_Lib
and then not Proj1.Project.Externally_Built
@ -5898,11 +5901,10 @@ package body Make is
-- except those of library projects.
Prj.Env.Set_Ada_Paths
(Main_Project, Project_Tree, Use_Include_Path_File);
-- (Project => Main_Project,
-- In_Tree => Project_Tree,
-- Including_Libraries => True,
-- Include_Path => Use_Include_Path_File);
(Project => Main_Project,
In_Tree => Project_Tree,
Including_Libraries => False,
Include_Path => Use_Include_Path_File);
-- If switch -C was specified, create a binder mapping file
@ -6000,6 +6002,7 @@ package body Make is
-- is set, add it to the Library_Paths table.
if Proj1.Project.Library_Kind /= Static
and then Proj1.Project.Extended_By = No_Project
and then Path_Option /= null
then
Library_Paths.Increment_Last;
@ -6014,6 +6017,9 @@ package body Make is
end loop;
for Index in 1 .. Library_Projs.Last loop
if
Library_Projs.Table (Index).Extended_By = No_Project
then
if Library_Projs.Table (Index).Library_Kind = Static
and then not Targparm.OpenVMS_On_Target
then
@ -6025,7 +6031,8 @@ package body Make is
(Index).Library_Dir.Display_Name) &
"lib" &
Get_Name_String
(Library_Projs.Table (Index). Library_Name) &
(Library_Projs.Table
(Index).Library_Name) &
"." &
MLib.Tgt.Archive_Ext);
@ -6048,6 +6055,7 @@ package body Make is
(Library_Projs.Table (Index).
Library_Name));
end if;
end if;
end loop;
end if;

View File

@ -4271,8 +4271,6 @@ package body Prj.Nmsc is
exit;
end if;
end loop;
Project.Extends.Library := False;
end if;
if Project.Library and then not Lib_Name.Default then