2010/2/19 Christopher Sean Morrison <[email protected]>:
>
> On Feb 1, 2010, at 12:52 PM, Daniel Roßberg wrote:
>
>> I'm afraid this discussion is losing the common interest.  I.e. we
>> could continue it by private mail or IRC (if I'm logged in ;-}.
>
> What a horrible suggestion to take the discussion private!  :-)
> Developer discussions should be public.  Even the lurkers read.
> Shared knowledge is common knowledge.
OK. Therefore I'll continue to make some noise here ;-)

> Interestingly enough, the approach on *nix as we're currently set up
> is to utilize brlcad-config or pkg-config as they report manifest,
> linkage, and version information.  That naturally doesn't help you on
> Windows without a posix shell, but may be a similar approach that
> could be set up that would avoid header versioning.  A variation on
> make.vbs would probably do the trick to generate a brlcad-config.vbs
> that provides version and linkage information.
I don't use include/conf/make.vbs any more since I changed to CMake.
See e.g. include/conf/CMakeLists.txt for how I generate the COUNT,
DATE etc. files.

In misc/win32-msvc/Dll/CMakeLists.txt I generate a header file with
version information (brlcadversion.h).  But for this file I'm using
"bad" defines.  Although I could live with >const int< too.  This type
can't be used for conditional compilations.

But, to be honest, I find it remarkable that so many other software
projects provide their version information via defines.

> The point still stands for a binary being at least aware of what it
> was compiled with, which we already do for our internal codes.  The
> issue from my perspective is how to best enable that capability for
> external codes with or without exposing header version defines.
> Would a run-time brlcad-config application/script/whatever be
> sufficient?  (Particularly relevant to your needs too, Tom)
What should the brlcad-config script do?

Or the other way round: Look at the brlcad-~_win32-dll_devel packages.
 We are using here exactly these packages for our own software.  (They
correspond kinda with a BRL-CAD installation.  BTW, as mentioned
before they contain the brlcadversion.h header with the defines
requested by Tom ;)  Should these packages contain a brlcad-config
scrip?  What should such a script do?

> The information is definitely included in the libtool archive
> (the .la file), but that's only useful at link time and for libtool
> projects.
>
> Interesting food for thought, but it would be more beneficial to find
> a platform-agnostic solution, or at least a solution that is nearly
> identical across platforms.
A MS Windows DLL contains the version information too (if it was
included during linking).  But the linking of the executable happens
without touching the DLL.  In general a .lib file is used which
doesn't contain the version information.  To be platform independent
we would probably need a distinct file with this information.


Sziasztok,
     Daniel

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
BRL-CAD Developer mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/brlcad-devel

Reply via email to