On 2017-05-19 07:53+0200 Thomas Gläßle wrote:

>
> Alan W. Irwin wrote on 05/19/2017 03:11 AM:
>> Yet from your report no such "auto"-related targets seem to be
>> available for
>> the CMake version on MinGW-w64/MSYS2.
>>
>> Just to confirm that conclusion, what are your results for
>>
>> make help |grep -i auto
>>
>> executed in the top directory of your build tree?
>
> Empty results.
>
> When grepping the whole directory there are matches, some of them
> autogen related. See attached `grep_auto.out` file.

Hi Thomas:

Thanks for this report.  Figuring this out is going to be fairly time
consuming so I don't ask that of you and instead the following notes
are for a PLplot developer with access to MinGW-w64/MSYS2 that might
want to take on this issue.

@Developers:

I had an extremely quick look at the grep_auto.out results, and it
does appear the Makefiles generated by CMake do have many of the
correct rules in place for moc to generate the required source code.
So the CMake bug appears to be that some key component of those rules
is missing on this platform, but figuring out exactly what is wrong
(say by doing detailed comparisons between the equivalent Linux and
MinGW-w64/MSYS2 results) is going to take a lot of work.  To simplify
that work, you should do such a comparison only for the simplest
possible test project example.  Right now we do have a fairly simple
test project implemented at cmake/test_automoc/CMakeLists.txt, but
that project was implemented to compare various ways of using moc with
CMake so it needs to be simplified even more ( i.e., to reduce it to
just one example of automoc at work following the style that I finally
adopted in bindings/qt_gui/CMakeLists.txt).

> I had a few bugs with gcc and other tools on this platform, so this
> could be a possibility..
> On the other hand I could (and still can) successfully build plplot
> 5.9.9 - meaning that I can successfully make this version of plplot and
> also link another program with the generated libraries. (Sorry, I
> realize I should have pointed this out earlier.. but somehow I forgot).

@Thomas:

Yes, using the CMake automoc capability (that apparently is failing
for you on the MinGW-w64/MSYS2 platform but which works fine on the
Linux platform) was implemented first for 5.12.0.  Before that we used
a brute force technique to generate the moc files which had problems
of its own that were solved by using the CMake capability.  So I would
far prefer to continue to use the CMake capability but find out what
is wrong with it just for MinGW-w64/MSYS2.

> I'm already on cmake 3.8.1 in the msys.

Yes, but presumably that is a patched version, and it would be
interesting to see if an unpatched version (that you built yourself)
did not have this issue.  In other words, such an experiment would be
part of finding out what is the source of this issue which (1) could be
some problem with the patches applied by the MinGW-w64/MSYS2 packagers
or (2) could be some problem with unpatched CMake automoc capability on
this platform that the CMake developers did not anticipate.

I got your later e-mail that it would be a while before you could try
this experiment, but that is fine since our own developer will likely
be trying this experiment instead.

Anyhow, you sure found an "interesting" problem.... :-)

>
>> Another
>> possibility is to try Qt5 instead.  You do that by (1) installing the
>> Qt5 development libraries and (2) convince our build system (which
>> prefers Qt4 by default) to use those libraries by using the
>> -DPLPLOT_USE_QT5=ON cmake option.
>
> I will have to check up on that. However, I will be away for one week
> with no access to my windows desktop - so expect nothing in the next few
> days. (I have the whole build tree with me if you need more info).

I think that is an extreme long shot that the Qt development packages
might be at fault rather than CMake itself so let us just forget that
possibility for now.

>
>> A final possibility is to give up on
>> our qt devices altogether on this platform (at least for now) by
>> disabling all of them (using the cmake option
>> -DDEFAULT_NO_QT_DEVICES=ON).
>
> Which devices can you suggest instead? I used Qt because it was the
> first one I got working on the older plplot.

Given the automoc trouble with qt on this platform, I would recommend
the cairo device driver which implements both noninteractive and
interactive devices that typically are of the same high quality as the
equivalent qt devices.  One issue is there will be a lot to install
starting with pkg-config.  But keep following up any WARNINGs
in cmake.out corresponding to "cairo" or "pango"
in cmake.out by installing the relevant MinGW-64/MSYS2 packages
and you should be OK.  Note that cairo and pango are a subset of
GTK+, so see the name of the relevant GTK+ package you
should install in
<https://sourceforge.net/p/plplot/wiki/MinGW-w64-MSYS2/>.
Furthermore, if you spot any issues with that list of package
names, please let me know so we can fix it.

An additional potential "cairo" issue on this platform is the
interactive xcairo device will not work because there is no X on this
platform.  We have implemented an interactive device called wincairo
which is a replacement for xcairo that is designed to work on Windows.
So ideally that device will provide you interactive capability.
However, I should warn you that device is not well tested yet so we
would all be most interested in how well it works for you.

> Installed a few of packages and silenced many of the WARNINGs, however
> still the same error occurs.

As expected since the two issues are unlikely to be related.

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
__________________________

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Plplot-general mailing list
Plplot-general@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-general

Reply via email to