comp.lang.ada
 help / color / mirror / Atom feed
From: "Alex R. Mosteo" <devnull@mailinator.com>
Subject: Re: [GNAT 2006] Project file and conditional withing/linking
Date: Fri, 09 Jun 2006 09:45:40 +0200
Date: 2006-06-09T09:45:40+02:00	[thread overview]
Message-ID: <4esn72F1gdphpU1@individual.net> (raw)
In-Reply-To: m23befo2a6.fsf@grendel.local

Simon Wright wrote:

> "Alex R. Mosteo" <devnull@mailinator.com> writes:
> 
>> I'm using a project file and, depending on some external variables,
>> I want to include some library for linking or not. The library is
>> defined in its own project file.
>>
>> The problem is that withing the library project causes its linker
>> options to be added no matter what I try, and I'd like to remove
>> these linker options (otherwise the library is always linked).
> 
> I don't see why you use Linker_Options? I would have thought you could
> do everything with Default_Switches ("ada").

Actually, the previous GtkAda version used Default_Switches and current one
uses Linker_Options. I don't know the reason nor the implications. In any
case, I'm just using the installed GtkAda project files.

>> Conditionally withing seems out of the question: the "with"s are to be at
>> the top. I've tried overriding with
>>
>> for Gtkada.Linker'Default_Switches ("ada") use ();
>> for Gtkada.Linker.Linker_Options use ();
> 
> No, you can define your own switches, not theirs.
> 
>> I could remove the withing and copy the switches to my project file,
>> but I'd strongly prefer to keep using the stock installed library
>> project file.
> 
> We have defined environment-dependent symbols in non-source Projects
> and then used the symbols to create the appropriate switches in the
> user project. Something like
> 
>    package Linker is
>      case Use_Other_Package is
>        when Yes =>
>          for Default_Switches ("ada")
>            use ("-foo") & Other_Package.Linker_Switches;
>        when No =>
>          for Default_Switches ("ada") use ("-bar");
>      end case;
>    end Linker;

I used to do this with the GAP 2005 release, but it seems the GAP/GPL 2006
release will pass the linker options to gnatlink no matter what, once you
with the project. Maybe this is the difference between Default_Switches and
Linker_Options. Going to set up a test case.

Certainly, there are several solutions when you have control over all the
project files. I'm attempting to find a solution without modifying the
GtkAda stock project file.



  reply	other threads:[~2006-06-09  7:45 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-06-08  2:37 [GNAT 2006] Project file and conditional withing/linking Alex R. Mosteo
2006-06-08 12:19 ` mor3b
2006-06-08 19:50 ` Simon Wright
2006-06-09  7:45   ` Alex R. Mosteo [this message]
2006-06-09  8:08     ` Alex R. Mosteo
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox