On 2014-04-07 17:11+0200 Thorsten Behrens wrote:

> [...]The general cause of all trouble is within the file
> CMakeDInformation.cmake (which is burried deep inside the path
> \cmake\modules\language_support\cmake).

Agreed.

>
> As far as I understand it, this module is intended to define several CMake
> variables/properties for the different environments the project might be
> built under. In lines 178-204 some variables/properties regarding OS and D
> compiler used are set up. *Only* if the OS is Windows and the compiler is
> not GDC, then CMAKE_LINK_LIBRARY_FLAG is set to "-L+").

and possibly SET(CMAKE_LIBRARY_PATH_FLAG "-L+") causes problems as well.

> [...]Something else strikes me odd with this CMAKE_LINK_LIBRARY_FLAG variable.
> Most other variables being set in that block of code contain an explicit
> reference to the D language ... and because of this most probably do not
> interfere with other languages. Only the variables
> CMAKE_LINK_LIBRARY_FLAG, CMAKE_LIBRARY_PATH_FLAG and
> CMAKE_LIBRARY_PATH_TERMINATOR do not refer specifically to the D language.
> Perhaps, when introducing language support for D, it was forgotten to make
> these variables language dependent?

No, these variables are also set in official CMake language support
files as well.  But the way they are set is much more generic and
compiler- and platform-dependent rather than computer-language
dependent. This is because CMake language support has become much more
sophisticated since the early history of CMake when
CMakeDInformation.cmake was implemented by a non-CMake group of
developers.

Furthermore, there is no mention of the -L+ flag in _any_ of the
official methods where the above variables are set so either that was
a mistake by the implementers of CMakeDInformation.cmake or only valid
for an extremely narrow set of circumstances.  For example, if
http://msdn.microsoft.com/en-us/library/windows/hardware/ff552114(v=vs.85).aspx
is relevant documentation for this compiler option it does appear to
be specific to "control source display and program stepping options"
so nothing to do with linking and thus likely a mistake for
Windows platforms.

> I agree with you, that it is indeed quite easy to just use a big hammer
> for this small nail, but this might cause bigger problems for whoever
> needs PLplot using the D language.

No, this workaround does not affect D language support on Unix which
by and large works without issues.  It only affects those using the D
language on Windows.  Furthermore, to my knowledge nobody has tried
that combination yet.  So by definition that is an experimental
combination where setting -DENABLE_d=OFF by default (but allowing the
user to set -DENABLE_d=ON if they so desire) is the correct approach
in my view.

Thorsten (or anybody else here) if you do have access to a D compiler
on Windows and want to look further into D language support on that
platform, I would encourage you to experiment with Windows-only
changes to our D language support files (using -DENABLE_d=ON), but
otherwise I don't think it is possible to figure out what changes are
needed in those files for the Windows case.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________

------------------------------------------------------------------------------
Put Bad Developers to Shame
Dominate Development with Jenkins Continuous Integration
Continuously Automate Build, Test & Deployment 
Start a new project now. Try Jenkins in the cloud.
http://p.sf.net/sfu/13600_Cloudbees_APR
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to