Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

How to get GNAT version during build process

62 views
Skip to first unread message

Jerry

unread,
Jan 6, 2012, 12:45:02 AM1/6/12
to
How would one discover the version of GNAT used in a build? I'm
inquiring for someone using cmake. They have cobbled something
together but I get the feeling it is too brittle and requires manual
updating from time to time. Here is the patch that someone submitted:


diff -up plplot-5.9.9/cmake/modules/ada.cmake.gnat plplot-5.9.9/cmake/
modules/ada.cmake
--- plplot-5.9.9/cmake/modules/ada.cmake.gnat 2011-10-12
18:43:01.000000000 -0600
+++ plplot-5.9.9/cmake/modules/ada.cmake 2012-01-04 08:58:11.501470982
-0700
@@ -43,7 +43,7 @@ if(ENABLE_ada)
endif(ENABLE_ada)

if(ENABLE_ada)
- find_library(GNAT_LIB NAMES gnat gnat-4.5 gnat-4.4 gnat-4.3
gnat-4.2 gnat-4.1)
+ find_library(GNAT_LIB NAMES gnat gnat-4.7 gnat-4.6 gnat-4.5
gnat-4.4 gnat-4.3 gnat-4.2 gnat-4.1)
if(NOT GNAT_LIB)
message(STATUS "WARNING: "
"gnat library not found. Disabling ada bindings")


I stumbled across
GNAT.Compiler_Version (g-comver.ads)
in the GNAT library but when I ran this

with Ada.Text_IO; use Ada.Text_IO;
with GNAT.Compiler_Version;
procedure ada_version is
package CVer is new GNAT.Compiler_Version;
use Cver;
begin
Put_Line(Version);
end ada_version;

all I got was this

GPL 2010 (20100603)

whereas g-comver.ads promises a result in this format

v.vvx (yyyyddmm)"

where v.vv would be something like 3.16.

Jerry

Simon Wright

unread,
Jan 6, 2012, 3:32:00 AM1/6/12
to
You would have thought that cmake's find_library() would have found
libgnat; here, GNAT GPL 2011 gives (in
lib/gcc/x86_64-apple-darwin10.2.0/4.5.3/adalib)

$ ls -l libgnat*
-rwxr-xr-x@ 1 simon simon 3886280 19 Apr 2011 libgnat-2011.dylib
-rw-r--r--@ 1 simon simon 5321016 19 Apr 2011 libgnat.a
lrwxr-xr-x@ 1 simon simon 18 19 Apr 2011 libgnat.dylib -> libgnat-2011.dylib

Perhaps it doesn't like symlinks.

The comment in g-comver.ads is wrong even with 4.6.0: it just returns
"4.6.0".

I suppose we could continue the fragility by adding gnat-2010 gnat-2011
etc to the proposed patch!
0 new messages