dolfin team mailing list archive
-
dolfin team
-
Mailing list archive
-
Message #15744
Re: Testing for library version
On Mon, Sep 28, 2009 at 10:58 AM, Johan Hake <hake@xxxxxxxxx> wrote:
> On Monday 28 September 2009 09:07:49 Johannes Ring wrote:
>> On Sun, Sep 27, 2009 at 8:51 PM, Johan Hake <hake@xxxxxxxxx> wrote:
>> > On Sunday 27 September 2009 20:18:07 Garth N. Wells wrote:
>> >> Johan Hake wrote:
>> >> > On Sunday 27 September 2009 19:49:09 Garth N. Wells wrote:
>> >> >> Where's the appropriate place in the build system to test for the
>> >> >> version number of external libraries? Is it in dolfin/SConscript
>> >> >> (using the simula-scons function 'checkVersion')?
>> >> >
>> >> > I do not think we have any defined sections in SConstruct/SConscript
>> >> > where this should be done. We have used checkVersion to check for the
>> >> > swig version some years ago... It is still there as out-commented code
>> >> > in the SConscript file.
>> >> >
>> >> > I think the function just compare a version string with another handed
>> >> > version string, where the numbers are delimited by '.'.
>> >> >
>> >> > Aren't there any version checks done in the pkg-config generator
>> >> > files?
>> >>
>> >> No, but I guess that's not the place to do it since they are unrelated
>> >> to DOLFIN and just produce a foo.pc file.
>> >>
>> >> I guest the right way is to use 'pkg-config --version foo.pc' rather
>> >> than checkVersion.
>> >
>> > Again, checkVersion is just a function that check if a version string is
>> > larger or equal than a passed version string. So the test might look
>> > something like this:
>> >
>> > foo_version = getoutput("pkg-config --version foo.pc")
>> > if scons.checkVersion(foo_version,"3.0.0"):
>> > raise Error
>> >
>> >> Still, I don't know where this check is best performed.
>> >
>> > Not sure either. I added an extensive check for the SWIG version in
>> > SConscript. I have never felt good about that piece of code...
>> >
>> > With the present state of the build system it is not easy to answer
>> > questions like this. However it would be nice to add some functionality
>> > to the scons.cfg file. Instead of passing a list of strings, stating the
>> > dependencies we pass a dict.
>> >
>> > Something like:
>> >
>> > OptDependencies = {'petsc':'3.0.0',
>> > 'slepc':'2.3.3':
>> > 'foo':None,
>> > ...}
>>
>> This is already possible. After a few minor bug fixes I ended up with
>> the following OptDependencies in dolfin/scons.cfg:
>>
>> OptDependencies = {'petsc': '3.0.0',
>> 'slepc': '3.0.0',
>> 'scotch': '5.1',
>> 'umfpack': '5.2.0',
>> 'gts': '0.7.6',
>> 'trilinos': '7.0.0',
>> 'cholmod': '1.6.0',
>> 'mtl4': '4',
>> 'parmetis': '3.1',
>> 'gmp': '4.2.4',
>> 'zlib': '1.2.3'}
>
> Is this possible for the Dependencies and SwigDependencies too? I think we are
> dependent on Python 2.5 for PyDOLFIN.
Yes, it is possible.
Johannes
> And what is it with the last part of the naming of some generated pkg-config
> files:
>
> ufc-1.pc, numpy-1.pc and python-2
>
> I understand that this denote the major version number, but isn't this handled
> with the version flag?
>
> If we do not use the versioning by naming, should we change the naming?
>
> Johan
>
References