Re: [cmake-developers] Incomplete gfortran library link command sometimes mysteriously occurs with MinGW/MSYS on Wine-1.5.15 platform

2012-10-23 Thread Alan W. Irwin

Here is the current status of the hunt for the solution of this issue.
In sum, the subject line should be changed to Incomplete gfortran
library link command always issued for downloaded Microsoft version of
CMake but not for a bootstrapped version of CMake for MinGW/MSYS on
Wine-1.5.15

My original concerns about CMake generating bad Fortran link commands
on a Windows platform involved results from two closely related
software projects, ephcom and te_gen. An older version of ephcom
tested well on Linux and CMake/MinGW/MSYS/Wine last year, and the
latest version tests well on Linux currently. te_gen is recently
resurrected (last released in 1999) Fortran software that strongly
depends on ephcom and which tests well on Linux currently, but which
had never been tested on Windows (CMake/MinGW/MSYS/Wine) before.

Both te_gen and ephcom demonstrated that the downloaded Windows binary
version of CMake-2.8.9 issued incorrect Fortran library linking
commands while a version of CMake-2.8.9 that had been bootstrap-built
on MinGW/MSYS/Wine issued the correct Fortran library linking
commands. David and Bill are currently looking at a scripted build of
ephcom to see whether they can replicate the issue on a Microsoft
version of Windows.  I have also given them detailed results from the
good link and bad link build trees to help them figure out what is
wrong with the downloaded Windows binary version of CMake-2.8.9.

With the bootstrapped CMake-2.8.9, I got good test results for the
current ephcom for MinGW corresponding to 4.5.2 and Wine-1.5.15.
However, te_gen had run-time errors.  Those were unlikely to be
anything to do with the CMake bad generated link issue, but you never
know, so I have been working hard on fixing those te_gen run-time
issues in the last several day, and I just had complete success there.
It turned out that MinGW has peculiarities in the way it handles
Fortran common blocks, and the errors from that had being magnified by
bugs (leading to segfaults and stackdumps) in the ephcom and te_gen
error reporting system.  I solved both issues by the appropriate
ephcom and te_gen code changes, and the result is te_gen gave a good
test result on MinGW/MSYS/Wine for the first time this morning!  That
result is identical to the same test run on Linux other than the
expected difference in floating-point noise between the two results.
So I am very happy at the moment, and I think these tests are a strong
indication that there is nothing obviously wrong with the CMake-2.8.9
source code or the bootstrap build of that source code on
MinGW/MSYS/Wine.

However, the bad generated Fortran link issue with the downloaded
binary Windows version of CMake-2.8.9 is still a concern.  In an ideal
world that should be producing the same good link commands for Fortran
that the bootstrapped version does.  If David and Bill cannot
replicate the problem on Microsoft Windows or figure out what is going
on from all the detailed build-tree results I gave them for the bad
link and good link cases, I would be willing to do any additional
experiments here they request to help see what is going wrong with the
downloaded binary Windows version of CMake on Wine.

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
__
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] Incomplete gfortran library link command sometimes mysteriously occurs with MinGW/MSYS on Wine-1.5.15 platform

2012-10-23 Thread Alan W. Irwin

On 2012-10-23 17:41-0400 David Cole wrote:


Short update:
 - I ran the script Alan sent me on a real Windows 7 machine, and
didnot reproduce the problem while using the pre-built binary install
of CMake 2.8.9


Thanks, David, for running that test which appears to rule out a
compiler bug (for whatever C++ compiler was used to build the
pre-built binary of CMake-2.8.9).  So at this point a scenario where
that C++ compiler uses new Windows API that Wine does not implement
properly (while MinGW sticks to more common Windows API that Wine does
implement correctly) is looking more likely.

It appears the next step on your side is for Bill is to run his expert
eye over the details he requested for my good build tree and bad build
tree. He has just requested those details for the second time (which I
just sent for the second time), and hopefully they will actually reach
him this time.  My guess is he will also want to compare those results
with your own good build tree for the same test case.

Meanwhile, I am going to attempt to repeat all my good PLplot, ephcom,
and te_gen tests here using MinGW/gcc-version 4.7.0 (the version you
get if you use the latest MinGW automatic installer and you request
updates to the precanned versions).  These tests, of course, will be
for cmake bootstrapped with the MinGW/gcc-version 4.7.0. The
motivation for these additional tests is to future-proof my results
(i.e., make sure MinGW version is not critical to my recent success on
the MinGW/MSYS/Wine platform).  These tests if successful should also
help to reduce concerns that there is any memory management issues in
the CMake-2.8.9 source code.  Of course, I will also try the same
canned test you tried for this new MinGW version both for the
bootstrapped CMake and the downloaded Windows binary version of CMake,
but my expectation is the result will be the same (bootstrapped CMake
generates the correct Fortran link command while the downloaded
Windows binary version does not).  But we will see.

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
__
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] Incomplete gfortran library link command sometimes mysteriously occurs with MinGW/MSYS on Wine-1.5.15 platform

2012-10-22 Thread Alan W. Irwin

On 2012-10-19 13:39-0400 Bill Hoffman wrote:


On 10/19/2012 1:24 PM, Alan W. Irwin wrote:


So far this morning there have been no takers, but I hope that changes
since I am really stumped by CMake _intermittently_ not issuing the
correct link command for libraries with no consistent pattern I can
spot with regard to anything I change.


Couple of things to try:

run --trace on cmake and compare them.  Maybe something odd is happening with 
your cmake variables.   Also, look at the generated makefiles and find out 
what is different between the ones that work and the ones that don't.


If this can not be reproduced by running a set command line (some script you 
write)...


Thanks for those suggestions, Bill.

The current status is I have sent a complete test case to David Cole
who plans to run it when he has a chance this week on at least one
Windows platform available to him.  That test should show just how
easy this issue is to replicate (or not).

For that test case here, CMakes generates a bad link command for the epcomf 
Fortran
library for the downloaded Windows binary version of CMake-2.8.9, but I have
just discovered that a bootstrapped build of CMake-2.8.9 (using
MinGW/MSYS for version 4.5.2 of gcc) generates the correct Fortran link
command.  I have attached the two relevant build.make files for you
and David to look at.  The diff between them shows a lot of noise
due to different names for libraries used by downloaded versus bootstrapped
CMake.  I eliminated that diff noise as follows:

wine@raven sed -e s?libephcom?ephcom?g -e s?libgnulliver?gnulliver?g
-es?\.dll\.a?.lib?g /tmp/build.make |diff -au /tmp/bad_build.make -

The result was

--- /tmp/bad_build.make 2012-10-20 12:57:03.575441788 -0700
+++ -   2012-10-20 12:59:56.777968384 -0700
@@ -26,17 +26,14 @@
 SHELL = /bin/sh

 # The CMake executable.
-CMAKE_COMMAND = /Z/home/wine/newstart/cmake-2.8.9-win32-x86/bin/cmake.exe
+CMAKE_COMMAND = 
/Z/home/wine/newstart/bootstrap_cmake/install_4.5.2/bin/cmake.exe

 # The command to remove a file.
-RM = /Z/home/wine/newstart/cmake-2.8.9-win32-x86/bin/cmake.exe -E remove -f
+RM = /Z/home/wine/newstart/bootstrap_cmake/install_4.5.2/bin/cmake.exe -E 
remove -f

 # Escaping for special characters.
 EQUALS = =

-# The program to use to edit the cache.
-CMAKE_EDIT_COMMAND = 
/Z/home/wine/newstart/cmake-2.8.9-win32-x86/bin/cmake-gui.exe
-
 # The top-level source directory on which CMake was run.
 CMAKE_SOURCE_DIR = /z/home/wine/newstart/ephcom2_20121019

@@ -53,6 +50,7 @@
 include bindings/f95/CMakeFiles/ephcomf.dir/flags.make

 bindings/f95/CMakeFiles/ephcomf.dir/ephcomf.f.obj: 
bindings/f95/CMakeFiles/ephcomf.dir/flags.make
+bindings/f95/CMakeFiles/ephcomf.dir/ephcomf.f.obj: 
bindings/f95/CMakeFiles/ephcomf.dir/includes_Fortran.rsp
 bindings/f95/CMakeFiles/ephcomf.dir/ephcomf.f.obj: 
z:/home/wine/newstart/ephcom2_20121019/bindings/f95/ephcomf.f
$(CMAKE_COMMAND) -E cmake_progress_report 
/Z/home/wine/newstart/ephcom2/build_dir/CMakeFiles $(CMAKE_PROGRESS_1)
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green Building 
Fortran object bindings/f95/CMakeFiles/ephcomf.dir/ephcomf.f.obj
@@ -81,8 +79,11 @@
 dll/ephcomf.dll: dll/ephcom.lib
 dll/ephcomf.dll: dll/gnulliver.lib
 dll/ephcomf.dll: 
z:/home/wine/newstart/ephcom2_20121019/bindings/f95/ephcomf_mingw.def
+dll/ephcomf.dll: bindings/f95/CMakeFiles/ephcomf.dir/objects1.rsp
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --red --bold 
Linking Fortran shared library ../../dll/ephcomf.dll
-	cd /Z/home/wine/newstart/ephcom2/build_dir/bindings/f95  /z/home/wine/newstart/MinGW/bin/gfortran.exe  /z/home/wine/newstart/ephcom2_20121019/bindings/f95/ephcomf_mingw.def -shared  -o ../../dll/ephcomf.dll $(ephcomf_OBJECTS) $(ephcomf_EXTERNAL_OBJECTS) ../../dll/ephcomfc.lib ../../dll/ephcomc.lib ../../dll/ephcom.lib ../../dll/gnulliver.lib 
+	cd /Z/home/wine/newstart/ephcom2/build_dir/bindings/f95  /Z/home/wine/newstart/bootstrap_cmake/install_4.5.2/bin/cmake.exe -E remove -f CMakeFiles/ephcomf.dir/objects.a

+   cd /Z/home/wine/newstart/ephcom2/build_dir/bindings/f95  
/z/home/wine/newstart/MinGW/bin/ar.exe cr CMakeFiles/ephcomf.dir/objects.a 
@CMakeFiles/ephcomf.dir/objects1.rsp
+   cd /Z/home/wine/newstart/ephcom2/build_dir/bindings/f95  
/z/home/wine/newstart/MinGW/bin/gfortran.exe 
/z/home/wine/newstart/ephcom2_20121019/bindings/f95/ephcomf_mingw.def -shared -o 
../../dll/ephcomf.dll -Wl,--out-implib,../../dll/ephcomf.lib 
-Wl,--major-image-version,0,--minor-image-version,0 -Wl,--whole-archive 
CMakeFiles/ephcomf.dir/objects.a -Wl,--no-whole-archive ../../dll/ephcomfc.lib 
../../dll/ephcomc.lib ../../dll/ephcom.lib ../../dll/gnulliver.lib

 # Rule to build all files generated by this target.
 bindings/f95/CMakeFiles/ephcomf.dir/build: dll/ephcomf.dll

You can see the link commands are very different, but also it is
intriguing there are other differences as well between CMake results
generated with two

[cmake-developers] Incomplete gfortran library link command sometimes mysteriously occurs with MinGW/MSYS on Wine-1.5.15 platform

2012-10-19 Thread Alan W. Irwin
 if that will make any difference. (The
bootstrapped version of CMake-2.8.9 that I have now only works with
version 4.6.2 of the compilers, i.e, the compiler version it was
built with.)

So this has been a long, sad, and continuing saga where I still
haven't pinned down exactly why on some occasions CMake generates
incomplete link commands for Fortran libraries.

However, my feeling at this stage is the complete or incomplete
Fortran link commands are not caused by anything I am doing, but are
instead caused by some memory management issue for CMake that
sometimes clobbers the variables that control whether the linking is
for a module or library.

To test that hypothesis further, I am willing to run a gdb session
(gdb.exe is available as one of the MinGW executables) on CMake while
it is executing to help see what is going on, but I would need some
help from experts here with navigating my way throught the many
different CMake routines and to find exactly what variables affect the
module versus library style of Fortran linking.

Although it is hard for me to imagine some Wine-1.5.15 bug
intermittently affecting whether CMake generates a full or incomplete
link command for Fortran libraries, I guess that is a possible
explanation of what I am seeing as well.  So that raises the important
question of what is the status of MSYS Makefiles testing on
proprietary Windows platforms? I know from what Bill has said recently
that MSYS Makefiles builds are tested regularly on a couple of
machines, but do those tests include Fortran? And if so, what version
of the MinGW gfortran compiler is being tested, and does that testing
include attempts to link Fortran executables with Fortran libraries?
(Note the incomplete linking is normally detected by such attempts.
Alternatively you could test whether both *.dll and *.dll.a files are
being produced by the link step.) Does anyhow here have lots of
MinGW/MSYS Windows experience with gfortran so they are in a position
to comment on the reliability of the link commands for Fortran
libraries generated by cmake -G MSYS Makefiles for that platform?

This generated Fortran link command issue has already given me several
miserable days so any help you could give me with this issue would be
much appreciated.

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
__
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] Incomplete gfortran library link command sometimes mysteriously occurs with MinGW/MSYS on Wine-1.5.15 platform

2012-10-19 Thread Alan W. Irwin

On 2012-10-19 02:18-0700 Alan W. Irwin wrote:


So this has been a long, sad, and continuing saga where I still
haven't pinned down exactly why on some occasions CMake generates
incomplete link commands for Fortran libraries.

However, my feeling at this stage is the complete or incomplete
Fortran link commands are not caused by anything I am doing, but are
instead caused by some memory management issue for CMake that
sometimes clobbers the variables that control whether the linking is
for a module or library.


Let me marshall the arguments further concerning this hypothesis now that
I have had some sleep.

The issue appears for the Windows binary versions of CMake-2.8.5,
2.8.8, and 2.8.9, and I think (but cannot recall clearly) that it also
occurred at least once for the bootstrapped build of CMake-2.8.9. Of
course, there could be a long-term memory-management issue for the
code that generates the Fortran link command for the MSYS Makefiles
generator that affects all recent CMake versions.  Later today I will
be able to say more about that when I try another bootstrapped build
based on my present (4.5.2) MinGW version.  But regardless of whether
bootstrapped builds are more reliable in this respect, the symptoms of
memory management issues are often intermittent and depend on all
sorts of implementation details so I expect the symptoms for the
bootstrapped version could be different than the Windows binary
version which was presumably built with a Windows compiler rather than
MinGW compiler and also different between MinGW versions.

The issue occurred first not only for the full te-gen build system,
but also for a completely simplified version of it.  For what it is
worth those simplifications were implemented by removing all sorts of
te_gen build-system CMake code with constructs like

if(whatever)
 (many CMake commands)
endif(whatever)

where whatever was not defined.  I don't know the CMake internal
implications of code that is removed this way, but I doubt the result
is identical to actually removing the code from the file since I got
the bad link command issued for the exact te_gen equivalent (only the
names were changed) of my simple test case, but never for that simple
test case.

The issue is always specific to the generation of the Fortran link
command for the MSYS Makefiles generator.  If it is some wine-1.5.15
problem why does the intermittent problem always occur just for that
limited case?  Remember, for the same platform I did a bootstrap build
of CMake with no obvious issues, and I did very extensive testing of C
results (with complete linking commands always issued for the C
libraries involved) for ephcom2 with no obvious issues.  Also, when
the Fortran link command generated by CMake was working, I did a
modest (less than 1-minute of cpu time) but successful test of the
Fortran run-time with the ephcomf Fortran library.  In contrast, there
_are_ run-time issues for MinGW gfortran-4.6.2 revealed by the
extensive Fortran run-time testing (up to one hour cpu time when it is
working) I get with the te_gen package.  But I doubt the generation of
the Fortran library link command by CMake itself depends in the
slightest on Fortran run-time issues so long as a platform is capable
of building a simple Fortran test application that can be successfully
run (which is the case for all variants I have tried so far).

I suspect that no current test platforms for the MSYS Makefiles case
include a check that the Fortran link command for libraries actually
generates both a *.dll and *.dll.a form of the library.  Would it be
straightforward to arrange such a test?  Perhaps I just haven't run my
simple test case (for a Hello World Fortran library) often enough to
find a case where it didn't generate the *.dll.a form of the library
Thus, routine simple testing for this potential issue might turn up
some (intermittent) instances where it occurs.



To test that hypothesis further, I am willing to run a gdb session
(gdb.exe is available as one of the MinGW executables) on CMake while
it is executing to help see what is going on, but I would need some
help from experts here with navigating my way throught the many
different CMake routines and to find exactly what variables affect the
module versus library style of Fortran linking.

Although it is hard for me to imagine some Wine-1.5.15 bug
intermittently affecting whether CMake generates a full or incomplete
link command for Fortran libraries, I guess that is a possible
explanation of what I am seeing as well.  So that raises the important
question of what is the status of MSYS Makefiles testing on
proprietary Windows platforms? I know from what Bill has said recently
that MSYS Makefiles builds are tested regularly on a couple of
machines, but do those tests include Fortran? And if so, what version
of the MinGW gfortran compiler is being tested, and does that testing
include attempts to link Fortran executables with Fortran libraries?
(Note

Re: [cmake-developers] Incomplete gfortran library link command sometimes mysteriously occurs with MinGW/MSYS on Wine-1.5.15 platform

2012-10-19 Thread Alan W. Irwin

On 2012-10-19 13:08-0400 David Cole wrote:


Hi Alan,

Can you write a script that would reproduce the problem for us here if
we ran the script? (Even if the project that it has to build is
complex...)


Thanks for that offer, and yes I do have the complete builds scripted
by bash (see comment below) for both te_gen and ephcom.  te_gen is a
complicated test case because it depends on ephcom.  But fortunately I
currently have the generated Fortran link command issue showing up for
ephcom which considerably simplifies what I need to send you.

So let me simplify the ephcom build script as much as possible for you (while
it still demonstrates the bad symptoms for me), and I hope to get
back to you off-list ASAP with a complete example.



There is nightly testing using MSYS Makefiles with GNU 4.5.0 with Fortran:

 http://open.cdash.org/buildSummary.php?buildid=2618838

and all the Fortran tests pass:

 
http://open.cdash.org/viewTest.php?buildid=2618838filtercount=1showfilters=1field1=testname/stringcompare1=63value1=Fortran


Are any of those 5 separate tests sensitive to an incomplete linking
statement being issued for Fortran libraries?  That won't generate any
errors until an attempt is made to link a Fortran application with
that badly linked library.  If the answer is these tests are sensitive
to the issue, then I will try (later today after I have sent you the
ephcom script) the 4.5.0 version of MinGW myself to be as consistent
as possible with these tests.  Of course, my experience is that simple
tests for this issue don't show anything, but my simple tests were not
extensive so if the above actually do a lot of such simple tests
relevant to this issue, that would be useful to know.




From the way you describe things here, it sounds like you're switching

back and forth between versions of CMake, versions of gfortran, and
also modifying CMake code to narrow down and come up with a simple
case, and other actions ... all of which may have some interactions
with cached variable values. I don't think there's a memory clobbering
issue going on here (but there could be, I suppose), but rather more
likely some setting that gets stuck in the CMakeCache file but is then
not applicable after you make a code change in CMake, but the value is
still there in the cache, and maybe unexpectedly influences what is
generated. (This is all just suspicion and speculation, but reasonable
I think.) You especially should always do a fully clean re-build if
you change compilers, even if it's just one version number.


Clean rebuilds are not the issue since my bash scripts for running
each of these test cases always include a command to remove the build
tree before doing any test in a separate initially empty build tree.
I didn't use a script for the simple example, but in that case
as well I was alway careful to make a clean start with
an initially empty build tree.



If it works for the simple case, but not for the complex one, then
some difference between those projects is the thing that triggers the
problem. It would be good using fully clean re-builds to give exact
steps to reproduce the problem in the simplest case. Although
reproducing it with a more complex case might certainly be more useful
than spending tons and tons of time trying to simplify it.

Again:
Can you write a script that would reproduce the problem for us here if
we ran the script? (Even if the project that it has to build is
complex...)


Yes, and I will try to get back to you ASAP with that.

Thanks, again, for that offer!

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
__
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] ReactOS: Important filed bug reports went to backlog en masse

2012-08-13 Thread Alan W. Irwin

On 2012-08-13 06:54-0400 David Cole wrote:


This was actually my exact intent (to re-involve the original
reporters via the notification system, since nobody else has picked up
on the bugs enough to assign them), and this was just step 1.

The bug tracker's roadmap page and what bugs are actually assigned to
active CMake developers are two of the most important pieces of
information we can get from the bug tracker.

Having a bunch of bugs in there that nobody has ever looked at is just
as useless as allowing emails on the list to fall through the cracks
without any responses.

I intend to do the same thing with bugs that are actually assigned to
developers that have not been updated in the last 3 or 4 months. (If
it hasn't been updated, then it's not really active...) If you care
about a bug that's assigned to you, and want to get it fixed in CMake
2.8.10, please update it by adding a note by setting the Target
Version field and putting it on the roadmap page.

The ones that people really care about will be brought back. If nobody
cares about an issue, then it's not really an issue. The bug tracker
is an imperfect measurement of care, but it's one of the closest
proxies that we have.


Thanks for your comments,


My comment is this is a really touchy political issue.

To be a devil's advocate, backlogging is generally a slap in the face
to those of us who have made an effort to present a careful,
well-documented bug report which often includes a patch that fixes the
issue.  My impression is a lot of such high-quality bug reports are
still ignored because of lack of resources to even make decisions on
whether the proposed fix is acceptable or not, and this lack of
resources to do decision making has now been formalized with the
backlogging idea.  Why should we try to make high-quality bug reports
for CMake if we have to periodically do additional and completely
non-productive work to justify not throwing our prior good effort on
the trash heap (i.e., backlog)?

Note, these are devil's advocate points, and I do personally
understand the necessity of a measure like this to keep your limited
bug-fixing resources focussed on issues where the bug reporter really
cares about the outcome, and also to achieve higher signal-to-noise
ratio in the bugtracker for issues that are not backlogged. But I
would make sure that the period of time before a bug is backlogged is
generous (at least a year), and I would advertise that period of time
up front on the bugtracker as part of a notice that carefully
justifies the measure and which also warns the would-be bug reporter
that it is normally a long-term commitment to keep his bug report out
of the trash heap if his bug report does not attract the attention of
a CMake developer (regardless of whether they are salaried by Kitware
or volunteer).

Also, this whole issue is a clear sign that CMake does not have enough
_organized_ bug report evaluation resources at the moment (for example,
to simply test and evaluate all patches that appear on the bug
tracker).  My impression from all the traffic on this list is the
volunteer development community for CMake is growing rapidly, but
perhaps you (David) might be able to harness some of that volunteer
energy by periodically giving a report on the numbers of unresolved
bugs on the bugtracker and asking for volunteers to help with
evaluation of those.

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
__
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] ReactOS: Important filed bug reports went to backlog en masse

2012-08-13 Thread Alan W. Irwin

On 2012-08-13 17:23-0400 David Cole wrote:


I realize that this is a touchy subject, and tried very hard to word
my messages that went along with this action to make it very clear
that putting a bug into the 'backlog' is not in the least bit
permanent.


I think the politics of this could be considerably eased if you also
put a prominent announcement of what the backlog classification means
on the first page of the bug tracker.

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
__
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] Documented property IMPORTED_LOCATION does not exist

2012-01-25 Thread Alan W. Irwin

On 2012-01-25 08:14-0500 Brad King wrote:


On 1/25/2012 1:50 AM, Michael Wild wrote:

So, to fix your code, use IMPORTED_LOCATION_NOCONFIG.


Actually just use LOCATION or LOCATION_${CONFIG} for some CONFIG:

http://www.cmake.org/cmake/help/cmake-2-8-docs.html#prop_tgt:LOCATION
http://www.cmake.org/cmake/help/cmake-2-8-docs.html#prop_tgt:LOCATION_CONFIG

They will tell you where to find the target file for any target,
including imported targets.  The IMPORTED_... properties are really
meant for *setting* to tell CMake something, not for *getting*
information from CMake.


That important distinction between IMPORTED_LOCATION and LOCATION
needs clarification in the documentation so even experienced CMake
users like me are not mislead.

For example, under PROPERTIES ON TARGETS, the IMPORTED_LOCATION
documentation uses the phrase this is a lot implying the property
exists (i.e., has been reliably set) for any given imported target.

Michael's original response to me said he used IMPORTED_LOCATION all
the time with no issues.  So he apparently configures his software
builds in some way (is that because you always set CMAKE_BUILD_TYPE,
Michael?) to actually make the exported modules contain
IMPORTED_LOCATION, while for PLplot I just build it with no specified
CMAKE_BUILD_TYPE so only IMPORTED_LOCATION_NOCONFIG (but not
IMPORTED_LOCATION) is set in the exported modules.

Is that the real issue here?  Should exporting a target automatically
set both IMPORTED_LOCATION_NOCONFIG _and_ IMPORTED_LOCATION for all
cases (e.g., when you haven't set CMAKE_BUILD_TYPE as in my particular
PLplot build)?

Of course, if I had read further in the documentation to LOCATION, it
is made clear there that is the READ-ONLY one that should be used for
most generality.

But I didn't read further since the IMPORTED_LOCATION section implied
that property would be set reliably for imported targets, and
certainly Michael's original response seemed to confirm that as well,
i.e., his experience seemed to be consistent with that documentation.

So it appear to me the choices are to set IMPORTED_LOCATION in export
modules reliably regardless of how CMAKE_BUILD_TYPE is set (or not
set) or to change the documentation of IMPORTED_LOCATION to indicate
it is not always reliably set for imported targets and urge the reader
to use LOCATION instead.

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
__
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] Documented property IMPORTED_LOCATION does not exist

2012-01-24 Thread Alan W. Irwin

On 2012-01-24 06:28+0100 Michael Wild wrote:


On 01/24/2012 05:50 AM, Alan W. Irwin wrote:

The documentation you get from

cmake --help-full

refers to the IMPORTED_LOCATION property as one of the more important
ones set for imported targets.  I have to agree that location is the
most important property for imported targets, but the name appears to
be wrong for the documentation of this property!

After screwing around for a while trying to use the above
property for my imported targets, I discovered (by guessing) that the
name of a property that actually does give the location information is
IMPORT_LOCATION, not IMPORTED_LOCATION.  For what it is worth,
IMPORT_LOCATION works for an imported library, and I haven't tried
this on imported executables. (By the way, LOCATION works as well, but
that appears from the documentation to be a left-over from CMake 2.4
which is why I tried to get IMPORTED_LOCATION to work and when that
failed, switched to the currently undocumentated IMPORT_LOCATION.)

I find IMPORTED_LOCATION is mentioned in the following
places in the cmake-2.8.6 source tree:

software@raven find cmake-2.8.6 -print0 -type f \
|xargs -0 grep -l IMPORTED_LOCATION
cmake-2.8.6/ChangeLog.txt
cmake-2.8.6/Modules/FindQt4.cmake
cmake-2.8.6/Tests/ExportImport/Import/A/CMakeLists.txt
cmake-2.8.6/Tests/SimpleInstall/CMakeLists.txt
cmake-2.8.6/Tests/SimpleInstallS2/CMakeLists.txt
cmake-2.8.6/Source/cmTarget.cxx
cmake-2.8.6/Source/cmAddExecutableCommand.h
cmake-2.8.6/Source/cmAddLibraryCommand.h
cmake-2.8.6/Source/cmExportBuildFileGenerator.cxx
cmake-2.8.6/Source/cmExportInstallFileGenerator.cxx

A similar search for IMPORT_LOCATION found nothing at all!

However, I spot-checked cmake-2.8.6/Source/cmTarget.cxx, and all those
mentions of IMPORTED_LOCATION appear to be documentation strings
rather than executable code, and I was unable to find why
IMPORTED_LOCATION does not work for me while IMPORT_LOCATION does. So
this needs someone who is familiar with the CMake code to figure out
what the actual problem is here, and to decide whether a fix to the
documentation strings is all that is required or whether some deeper
change needs to be made.

Alan


IMPORTED_LOCATION works just fine for me. Also IMPORT_LOCATION, as you
call it, is not referenced once in the whole CMake source, while
IMPORTED_LOCATION is, and not only as a documentation string as you
claim.


Hi Michael:

Thanks for your response.

Since you cannot verify the issue, then the most likely reason is
there is some difference between your and my CMake version, minimum
CMake version (which affects policy decisions), and hardware/software
platform. Could you be more specific about those constraints in your
case?

Just to be sure I was reporting a clean result, I started with a
fresh bootstrap build and install of CMake-2.8.7 that I did on my 
Debian Squeeze platform. I then built and installed PLplot (which

specifies cmake_minimum_required(VERSION 2.8.2 FATAL_ERROR) from
scratch using that version of cmake.

I have attached the resulting export module files that are installed
as a result of that PLplot install.

I then checked imported target properties with the following CMake test script
(which is also attached for convenience).

project(test_export NONE)
cmake_minimum_required(VERSION 2.8.2 FATAL_ERROR)
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR} )
include(export_plplot OPTIONAL RESULT_VARIABLE IF_PLOT)
if(IF_PLOT)
  get_target_property(test_loc1 _plplotcmodule IMPORT_LOCATION)
  message(STATUS IMPORT_LOCATION = ${test_loc1})
  get_target_property(test_loc2 _plplotcmodule IMPORTED_LOCATION)
  message(STATUS IMPORTED_LOCATION = ${test_loc2})
else(IF_PLOT)
  message(WARNING IF_PLOT = ${IF_PLOT})
endif(IF_PLOT)

And here was the result when cmake was invoked from a sub-directory
of the one containing the above CMakeLists.txt and the export files.

software@raven cmake ..
-- IMPORT_LOCATION =
/home/software/plplot_svn/installcmake/lib/python2.6/site-packages/_plplotcmodule.so
-- IMPORTED_LOCATION = test_loc2-NOTFOUND
-- Configuring done
-- Generating done
-- Build files have been written to: /tmp/cmake_test/build_dir

Note, _plplotcmodule is one of the shared objects generated by PLplot
for our python bindings, but if you look at the export files, there
doesn't seem to be anything done differently for _plplotcmodule compared
to other PLplot library targets, and also I assure you
the result for IMPORT_LOCATION is correct.

So the above simple script cleanly shows the issue for 2.8.7. 
IMPORT_LOCATION is an imported target property with the correct value

while IMPORTED_LOCATION is not found.

If you try the same test script with the same exported files, do you
get a different result? If you still have trouble verifying the above
result, then please also try CMake-2.8.7 to see whether that version
is the source of the issue.

One obvious possibility is there is something wrong with the attached
PLplot export files.

They are generated by the PLplot build

[cmake-developers] Documented property IMPORTED_LOCATION does not exist

2012-01-23 Thread Alan W. Irwin

The documentation you get from

cmake --help-full

refers to the IMPORTED_LOCATION property as one of the more important
ones set for imported targets.  I have to agree that location is the
most important property for imported targets, but the name appears to
be wrong for the documentation of this property!

After screwing around for a while trying to use the above
property for my imported targets, I discovered (by guessing) that the
name of a property that actually does give the location information is
IMPORT_LOCATION, not IMPORTED_LOCATION.  For what it is worth,
IMPORT_LOCATION works for an imported library, and I haven't tried
this on imported executables. (By the way, LOCATION works as well, but
that appears from the documentation to be a left-over from CMake 2.4
which is why I tried to get IMPORTED_LOCATION to work and when that
failed, switched to the currently undocumentated IMPORT_LOCATION.)

I find IMPORTED_LOCATION is mentioned in the following
places in the cmake-2.8.6 source tree:

software@raven find cmake-2.8.6 -print0 -type f \
|xargs -0 grep -l IMPORTED_LOCATION
cmake-2.8.6/ChangeLog.txt
cmake-2.8.6/Modules/FindQt4.cmake
cmake-2.8.6/Tests/ExportImport/Import/A/CMakeLists.txt
cmake-2.8.6/Tests/SimpleInstall/CMakeLists.txt
cmake-2.8.6/Tests/SimpleInstallS2/CMakeLists.txt
cmake-2.8.6/Source/cmTarget.cxx
cmake-2.8.6/Source/cmAddExecutableCommand.h
cmake-2.8.6/Source/cmAddLibraryCommand.h
cmake-2.8.6/Source/cmExportBuildFileGenerator.cxx
cmake-2.8.6/Source/cmExportInstallFileGenerator.cxx

A similar search for IMPORT_LOCATION found nothing at all!

However, I spot-checked cmake-2.8.6/Source/cmTarget.cxx, and all those
mentions of IMPORTED_LOCATION appear to be documentation strings
rather than executable code, and I was unable to find why
IMPORTED_LOCATION does not work for me while IMPORT_LOCATION does. So
this needs someone who is familiar with the CMake code to figure out
what the actual problem is here, and to decide whether a fix to the
documentation strings is all that is required or whether some deeper
change needs to be made.

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
__
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] branch HandleCMAKE_CXX_COMPILER_ARG1InEclipse for 2.8.6 ?

2011-10-01 Thread Alan W. Irwin

On 2011-10-01 20:13+0200 Alexander Neundorf wrote:


On Saturday 01 October 2011, David Cole wrote:

Brad and Bill and I will look at this Monday.

We are closing in on the final 2.8.6 release. If we take changes Monday,
we'll merge them, await the dashboard results on Tuesday morning, and then
build the final 2.8.6. If we take no changes, I'll build 2.8.6 on Monday.

You must admit, this fix affects an awfully small percentage of the total
CMake user base... So we may not take it. But, since it's so small, we may.


That's what I thought too :-)


How many last minute changes to accept appears to be a universal
issue for releasing software.  I have turned more and more
conservative on this issue as I gained experience with the downsides
of such changes for other projects.

For me it now boils down to these questions:

1. If there is a high upside (many users benefit) to the last-minute
change, then why aren't you delaying the release to make sure the
change is properly tested?

2. If there is a low upside to the last-minute change (only a few
users benefit), can you bet your project's reputation that there is no
downside for all users or would it be better to wait for the next
release cycle to gain more testing of the change?

CMake developers will obviously have to make up their own mind on this
issue for their releases, but as you can tell from the way those
questions are posed, I almost always discourage last-minute changes in
releases for projects where I am one of the developers.

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
__
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] cmake-2.8.5 build error on the MinGW/MSYS/wine platform

2011-09-16 Thread Alan W. Irwin

Hi Clint:

There are questions for you below concerning where system header
information in the Wine environment is located.

On 2011-09-15 14:34-0700 Alan W. Irwin wrote:


Of course, Wine _might_ be at fault here for not #defining
_SSIZE_T_DEFINED when ssize_t is typedefed.  But is that a standard
that you expect to be followed on all platforms or a Microsoft Windows
idiosyncrasy that more robust CMake code would not have to worry
about?


I looked further, and the _Linux_ build of wine does have the following
in the install tree

$prefix/include/wine/msvcrt/sys/types.h:#define _SSIZE_T_DEFINED

where $prefix is my prefix for my Linux wine install.  The context for that 
#define is as follows:


#ifndef _SSIZE_T_DEFINED
#ifdef _WIN64
typedef __int64 ssize_t;
#else
typedef int ssize_t;
#endif
#define _SSIZE_T_DEFINED
#endif

So _SSIZE_T_DEFINED should be unequivocally #defined by the above if
(i) the information in msvcrt/sys/types.h is available in the wine
environment and (ii) in a location that CMake expects in that
free Windows environment, and (iii) it is in the #include chain
for the build of, e.g., archive_read.c.obj.

Following the general Wine directions, I put $prefix/bin on my Linux
PATH, then run winecfg, and everything seems to work fine from within
the wine environment (e.g, the build of ephcom-2.0.2, and the build of
CMake-2.8.5) except for the #define of _SSIZE_T_DEFINED.

Clint, this next question is mostly directed to you since you have
some Wine platform experience. What can I do further to diagnose what
is wrong with my Wine environment such that _SSIZE_T_DEFINED is not
#defined?

I have searched throughout my .wine prefix directory (created by
winecfg), and there are lots of dll's in that directory tree 
(including .wine/drive_c/windows/system32/msvcrt.dll), but there

doesn't seem to be any header files in that directory tree at all. So
how does winecfg set up access to the headers in $prefix/include?

The cmake output is ambiguous about where it finds types.h.  All it
says in that regard is

-- Looking for sys/types.h
-- Looking for sys/types.h - found

and for all I know that could be referring to some other header file than
$prefix/include/wine/msvcrt/sys/types.h.  In any case at the key
moment at make time when the cmake build needs access to the above
#define _SSIZE_T_DEFINED in that file, that file is not in the
#include chain so _SSIZE_T_DEFINED is not #defined.

Although my present build of 2.8.5 with the -D_SSIZE_T_DEFINED
workaround wiped out my previous experiments 
with the failing build of 2.8.3, I did save the actual

gcc command that was failing at the time.  It was the following:

/Z/home/wine/newstart/MinGW/bin/gcc.exe  -DCURL_STATICLIB
-DLIBARCHIVE_STATIC -DHAVE_CONFIG_H 
-I/Z/home/wine/newstart/cmake/build_dir/Utilities/cmlibarchive 
-I/Z/home/wine/newstart/cmake/build_dir/Utilities

-I/z/home/software/cmake/cmake-2.8.3/Utilities
-I/z/home/software/cmake/cmake-2.8.3/Utilities/cmbzip2
-I/z/home/software/cmake/cmake-2.8.3/Utilities/cmlibarchive/libarchive
-o CMakeFiles/cmlibarchive.dir/archive_read.c.obj   -c
/z/home/software/cmake/cmake-2.8.3/Utilities/cmlibarchive/libarchive/archive_read.c

Notice there are no -I options to help find system headers such as
$prefix/include/wine/msvcrt/sys/types.h.  In any case that header does
not appear to be in the #include chain for the CMake build, but I will
attempt to confirm that further tomorrow with a repeat of my gcc -E
-dD run (this time for 2.8.5) without the -D_SSIZE_T_DEFINED workaround.

Please let me know any other experiments I should be trying to pin
down exactly why $prefix/include/wine/msvcrt/sys/types.h is not in the
#include chain for the archive_read.c.obj build.

Sorry it is taking so long to unpeel each layer of this onion, but
debugging wine headers is completely new to me so I am having trouble
knowing where to look for information.

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
__
___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] cmake-2.8.5 build error on the MinGW/MSYS/wine platform

2011-09-16 Thread Alan W. Irwin

On 2011-09-16 14:48-0400 David Cole wrote:


The information in this CMake bug tracker issue suggests that this is
*completely* a MinGW / MSYS regression, and not really a cmake
issue...

 http://public.kitware.com/Bug/view.php?id=12418

According to the latest note there, just added:

 With mingw 4.5.2 it works, but mingw 4.6.1 fails with this error.

Nothing to do with CMake or Wine at all. I would call this one a very
recently introduced mingw problem.


Hmm. Brad and Bill just got through assuring me repeatedly there is no
problem with the most recent MinGW/MSYS build of CMake on Microsoft
Windows.  Of course, they could be up against the case where some
Microsoft platforms work and others do not.  Anyhow, it appears this
guy got the same broken build on some Microsoft platform that I am
getting on Wine. It appears the next obvious step is to attempt
replicating that guy's broken-build results with the most recent
MinGW/MSYS on whatever Microsoft platform he was using.

Note, I would be quite relieved (since I am way beyond my depth here)
if one of you could find a way verify that broken build on Microsoft
Windows. That means Wine is just a distraction to the discussion, and
I can let some expert Kitware employee deal with this issue who
presumably has a large desire to have builds of CMake with recent
MinGW/MSYS actually work on all Microsoft Windows platforms.

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
__
___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] cmake-2.8.5 build error on the MinGW/MSYS/wine platform

2011-09-16 Thread Alan W. Irwin

On 2011-09-16 16:46-0400 Brad King wrote:


On 9/16/2011 4:40 PM, Brad King wrote:

As expected upstream libarchive already fixed this:

http://code.google.com/p/libarchive/source/detail?r=3649


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=8dfe74c3


Hi Brad, Bill, and Dave:

As anticipated, that version of the patch (for cmake-2.8.5) works
for me on Wine.

@ Brad: Thanks for trying my suggestion that older MinGW/MSYS
installers might not be so good at updating to get you the latest
version of MinGW/MSYS.

@ Bill: Thanks for the encouragement to keep pursuing this issue.

@ Dave: Thanks for noticing the bug report that had the same broken
build issue that I was having on Wine which was the key breakthrough
in my opinion.

This has been a tough one for me because (i) my Wine environment is slow
(each cmake build takes more than an hour because of a nasty 1-second command
startup latency issue for each command run by cmake and make), (ii)
too many possibilities (Wine, CMake, or MinGW) for the source of the
issue, and (iii) many preprocessor directives that made it virtually
impossible to eyeball the code to see what was wrong (although gcc -E
-dD eventually came to the rescue there).

Anyhow, I am very glad that the CMake code finally has a solution for
this issue!

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
__
___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] cmake-2.8.5 build error on the MinGW/MSYS/wine platform

2011-09-15 Thread Alan W. Irwin

On 2011-09-14 21:54-0700 Alan W. Irwin wrote:


On 2011-09-01 05:45-0700 Alan W. Irwin wrote:


On 2011-08-28 14:34-0400 Bill Hoffman wrote:


Can you try and build CMake 2.8.4, then 2.8.3 and see what happens?



[...]I thought wine-1.3.27 might have been to culprit, but it turns out I
was just now able to generate the same cmake-2.8.5 build error with
MinGW/MSYS/wine-1.3.26.  On that same platform, and with the binary
version of cmake-2.8.5 (which worked very well for me with ephcom2) I
will now attempt builds of cmake-2.8.4 and earlier to see whether the
cmake-2.8.5 build error I am getting is a cmake-source code regression
for this fixed platform.


There is exactly the same build error when attempting to build
cmake-2.8.4 and 2.8.3 using binary cmake-2.8.5 and when attempting to
build 2.8.3 with binary cmake-2.8.3.  I have built cmake-2.8.3
successfully before with binary cmake-2.8.3 on a MinGW/MSYS/wine
platform so this appears to be some incompatibility of cmake builds
with either (i) recent versions of wine or (ii) recent versions of
MinGW/MSYS.

To eliminate the latter possibility, could somebody please try to
build cmake with the MSYS Makefiles generator on Windows?  It
literally is only a 5 minute download to install the required
MinGW/MSYS these days (see below).


That automatic installer (available
at http://sourceforge.net/projects/mingw/files/Automated MinGW
Installer/mingw-get-inst/)
literally takes about 5 minutes to download and install all of
MinGW/MSYS on wine, and I am sure that it would even be faster
on Windows.  Is there anybody game to try the build
of cmake on Windows using the latest MinGW/MSYS stack you
install with the automatic installer?


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
__
___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] cmake-2.8.5 build error on the MinGW/MSYS/wine platform

2011-09-15 Thread Alan W. Irwin

On 2011-09-15 09:22-0400 Brad King wrote:


On 9/15/2011 4:12 AM, Alan W. Irwin wrote:

To eliminate the latter possibility, could somebody please try to
build cmake with the MSYS Makefiles generator on Windows?


We have a dashboard for this.  I build that all the time on
my own machine too.  Just in case, I updated the toolchain:

mingw-get install gcc
mingw-get install g++
mingw-get install gfortran
mingw-get install binutils

CMake 2.8.5 builds the latest CMake master with no errors.


That sounds definitive, but I don't really trust MinGW/MSYS installers
(since that is alpha software) to do the right thing with updates.  It
wasn't that long ago that that functionality was completely broken.
Instead, what I did was a complete install with
mingw-get-inst-20110802, and I hope you will try that as well
to completely eliminate this possibility.

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
__
___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] cmake-2.8.5 build error on the MinGW/MSYS/wine platform

2011-09-15 Thread Alan W. Irwin

On 2011-09-15 09:27-0400 Bill Hoffman wrote:


On 9/15/2011 4:12 AM, Alan W. Irwin wrote:




That automatic installer (available
at http://sourceforge.net/projects/mingw/files/Automated MinGW
Installer/mingw-get-inst/)
literally takes about 5 minutes to download and install all of
MinGW/MSYS on wine, and I am sure that it would even be faster
on Windows. Is there anybody game to try the build
of cmake on Windows using the latest MinGW/MSYS stack you
install with the automatic installer?



I just built with the most recent MinGW makefile build, and it works.


MinGW Makefiles is quite different than the MSYS Makefiles builds
I am doing.  Also, note my comments to Brad about what constitutes the
latest MinGW/MSYS.  I am pretty sure from Brad's MSYS Makefiles
result that all is well with MSYS Makefiles builds of CMake on
Microsoft Windows, but being absolutely sure is even better than
pretty sure which is why I asked him to try replicating exactly the
same MinGW/MSYS install steps that I did.

Also, 
we have dashboards that do mingw and msys.  See these builds:


amber12.kitware Win32-mingw-gcc-4.5
amber12.kitware Win32-msys-gcc-4.5


For the msys one you appear to be referring to
http://www.cdash.org/CDash/iphone/buildsummary.php?buildid=1039633.

There is no identification there of the exact MinGW/MSYS being used
for that build.  Furthermore, the cmake time is 6 seconds and the
build time is 0 seconds (same start and end time). So it appears to be
an update of a previous build rather than a build from scratch.  That
makes sense from the perspective of saving a lot of computer time on
the machine doing the build, but it is not the same as the build from
scratch that I am doing here.  Again, it is the difference between
being pretty sure and absolutely sure there is no trouble
with MSYS Makefiles builds of CMake on Microsoft windows.



Sounds to me it is the windows.h that comes with wine maybe.  Really you 
should just debug this and find the issue.  Run make help in 
Utilities/cmlibarchive/libarchive.  You will see file.i.  targets you want 
this one: archive_read.i


That will create a cpp processed version of the file. Then you need to grep 
around the files that are included and find the problem.


I have avoided this step because I have been frankly intimidated by
the size and complexity of the CMake code and my lack of (free)
Windows platform knowledge.  However, now you have encouraged me to
try debugging it, I realize there is an even easier way to track down
what is going on with the macros in question. That is, find the exact
g++ command that failed from the VERBOSE=1 ouput, then repeat that by
hand using the g++ -E -dD (or -dM) options.

More later after I give that idea a try.

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
__
___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] cmake-2.8.5 build error on the MinGW/MSYS/wine platform

2011-09-15 Thread Alan W. Irwin

On 2011-08-27 16:22-0700 Alan W. Irwin wrote:


If you compare the types of archive_read_data and
archive_read_data_into_buffer in archive_read.c versus
archive.h, the *.c versions are

ssize_t
archive_read_data(struct archive *_a, void *buff, size_t s)

int
archive_read_data_into_buffer(struct archive *a, void *d, ssize_t len)

while the *.h versions are

__LA_DECL __LA_SSIZE_T archive_read_data(struct archive *,
   void *, size_t);

__LA_DECL int archive_read_data_into_buffer(struct archive *,
   void *buffer, __LA_SSIZE_T len);

So it appears on the MinGW/MSYS/wine platform at least that

something is screwed up with the __LA_DECL and/or __LA_SSIZE_T macros.


Hi Bill:

As promised, I am now following up with -E -dD information (for
the case of binary cmake-2.8.3 building cmake-2.8.3, but I
assume the results would be identical for 2.8.4 and 2.8.5 since
I got the same build errors for them).  This combination
of options really does the job, and I wish I had thought of
them sooner.

From the above __LA_DECL must have an empty #define, and 

__LA_SSIZE_T must be #defined to ssize_t to avoid
the build error.  Also, the above declarations of the functions
occur on lines 308 and 407 of
/home/software/cmake/cmake-2.8.3/Utilities/cmlibarchive/libarchive/archive.h

-dD output says the following concerning __LA_DECL prior to lines 308
and 409 (it was changed later on, but that is not relevant)

# 98
z:/home/software/cmake/cmake-2.8.3/Utilities/cmlibarchive/libarchive/archive.h
#define __LA_DECL

So that shows the desired empty result which avoids any build error
from this cause.  However, I was surprised the whole thicket of
preprocessing directives just above line 98 in that file (which #define
__LA_DECL to different values) was somehow avoided.

-dD output say the following concerning __LA_SSIZE_T

The second #define after

# 54
z:/home/software/cmake/cmake-2.8.3/Utilities/cmlibarchive/libarchive/archive.h

is

#define __LA_SSIZE_T long

which is inconsistent with the ssize_t function type for
archive_read_data in archive.c which causes the build error.

The relevant preprocessing code after line 54 is

#define __LA_INT64_T__int64
# if defined(_SSIZE_T_DEFINED)
#  define __LA_SSIZE_T ssize_t
# elif defined(_WIN64)
#  define   __LA_SSIZE_T__int64
# else
#  define   __LA_SSIZE_Tlong
# endif

The -dD results show that _SSIZE_T_DEFINED is not #defined, allthough
they do show the following:

#define _SSIZE_T_
typedef int _ssize_t;
typedef _ssize_t ssize_t;

Furthermore, they show that _WIN64 is not #defined (which makes sense
since my platform is 32-bit wine on a 64-bit hardware platform
(amd64)).

But the point is both the __int64 and long result would cause a broken
build because ssize_t is typedef'ed to int on (32-bit) wine. So in
sum, it looks like the CMake code avoids a broken build on wine (and
other platforms with ssize_t typedef'ed to int) only if
_SSIZE_T_DEFINED is always #defined.

I then tried

export CFLAGS='-O3 -D_SSIZE_T_DEFINED'

for a build from scratch of cmake-2.8.5 using cmake binary 2.8.5, and
it worked with no errors or warnings!  It is good to know that
workaround is available for the cmake build on wine (presumably
regardless of the x in cmake-2.8.x).  I doubt very much though
that I will have to be concerned with that workaround for builds
of other software that is not as complicated as the CMake build.

Of course, Wine _might_ be at fault here for not #defining
_SSIZE_T_DEFINED when ssize_t is typedefed.  But is that a standard
that you expect to be followed on all platforms or a Microsoft Windows
idiosyncrasy that more robust CMake code would not have to worry
about?

What I mean by that comment is the following.  The current situation is the
function and argument types in
cmake-2.8.x/Utilities/cmlibarchive/libarchive/*.c files do not use the
same macro-based approach as that used in
cmake-2.8.x/Utilities/cmlibarchive/libarchive/archive.h for defining
the types and arguments of functions.  That seems like an accident
waiting to happen (and, in fact, that accident has already happened on
wine.) Perhaps there is some reason for this fundamental inconsistency
in the definitions of the function types and arguments in the
libarchive code, but I don't understand what that reason might be.

I know virtually nothing about Windows platforms.  So if you think it
should be an expected standard, could you advise me where
_SSIZE_T_DEFINED is #defined for Microsoft Windows so I could advise
Wine to do the same in their equivalent header?  I could find nothing
official from Microsoft about _SSIZE_T_DEFINED in a google search.
Instead, there appeared to be mostly google hits for projects #defining
_SSIZE_T_DEFINED themselves.

If you advise me to go ahead with the wine bug report, I assume they
would eventually act on it as a low priority since they claim to want
to follow every Microsoft Windows idiosyncrasy that makes a practical
difference.  Of course

Re: [cmake-developers] cmake-2.8.5 build error on the MinGW/MSYS/wine platform

2011-09-14 Thread Alan W. Irwin

On 2011-09-01 05:45-0700 Alan W. Irwin wrote:


On 2011-08-28 14:34-0400 Bill Hoffman wrote:


Can you try and build CMake 2.8.4, then 2.8.3 and see what happens?


Given many hours of computer time (remember the severe latency issue), yes.
I will get to this eventually, but other projects and computer issues are 
currently

delaying it.


I needed cmake to build and test ephcom-2.0.2 (see
http://timeephem.sourceforge.net/ephcom2.php) on MinGW/MSYS/wine so I
just stuck with the distributed cmake binary rather than rebuilding 2.8.5.
However, it turned out that wine-1.3.27 had a severe bug that finally
expressed itself (everything wine-related ground to a halt) a week
later so I switched to wine-1.3.26.  That has been rock solid for me
ever since which allowed me to finish my Windows testing of
ephcom-2.0.2, release it, and finally get back to this topic.

I thought wine-1.3.27 might have been to culprit, but it turns out I
was just now able to generate the same cmake-2.8.5 build error with
MinGW/MSYS/wine-1.3.26.  On that same platform, and with the binary
version of cmake-2.8.5 (which worked very well for me with ephcom2) I
will now attempt builds of cmake-2.8.4 and earlier to see whether the
cmake-2.8.5 build error I am getting is a cmake-source code regression
for this fixed platform.

Meanwhile, could you please consider these further questions just in
case the same build error shows up for cmake-2.8.4 and 2.8.3?

Does anybody have a clue about where the __LA_DECL and/or __LA_SSIZE_T
macros are actually defined?

Has anybody here actually attempted to build cmake 2.8.5 using the
latest MinGW/MSYS on Microsoft Windows with the MSYS Makefiles
generator or is that a completely untested combination up to now?

Alan



Meanwhile, it would be good to obtain some response to
the following questions:


If you compare the types of archive_read_data and
archive_read_data_into_buffer in archive_read.c versus
archive.h, the *.c versions are

ssize_t
archive_read_data(struct archive *_a, void *buff, size_t s)

int
archive_read_data_into_buffer(struct archive *a, void *d, ssize_t len)

while the *.h versions are

__LA_DECL __LA_SSIZE_T archive_read_data(struct archive *,
void *, size_t);

__LA_DECL int archive_read_data_into_buffer(struct archive *,
void *buffer, __LA_SSIZE_T len);

So it appears on the MinGW/MSYS/wine platform at least that

something is screwed up with the __LA_DECL and/or __LA_SSIZE_T macros.

[...]but we should know more about that if somebody can tell
me where the above macros are #defined.


???

Also,


Has anybody tried that version [latest MinGW/MSYS installer,

version 20110802] of MinGW/MSYS on Microsoft Windows to

build cmake-2.8.5? It is possible the same build-time error will show
up under those conditions.


(which would immediately remove wine from the question, and my part
in this thread would be done since I have no access to Microsoft
Windows.)

That automatic installer (available
at http://sourceforge.net/projects/mingw/files/Automated MinGW
Installer/mingw-get-inst/)

literally takes about 5 minutes to download and install all of
MinGW/MSYS on wine, and I am sure that it would even be faster
on Windows.  Is there anybody game to try the build
of cmake on Windows using the latest MinGW/MSYS stack you
install with the automatic installer

???

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
__
___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers



__
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
__
___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] cmake-2.8.5 build error on the MinGW/MSYS/wine platform

2011-09-01 Thread Alan W. Irwin

On 2011-08-28 14:34-0400 Bill Hoffman wrote:


Can you try and build CMake 2.8.4, then 2.8.3 and see what happens?


Given many hours of computer time (remember the severe latency issue), yes.
I will get to this eventually, but other projects and computer issues are 
currently
delaying it.

Meanwhile, it would be good to obtain some response to
the following questions:


If you compare the types of archive_read_data and
archive_read_data_into_buffer in archive_read.c versus
archive.h, the *.c versions are

ssize_t
archive_read_data(struct archive *_a, void *buff, size_t s)

int
archive_read_data_into_buffer(struct archive *a, void *d, ssize_t len)

while the *.h versions are

__LA_DECL __LA_SSIZE_T archive_read_data(struct archive *,
void *, size_t);

__LA_DECL int archive_read_data_into_buffer(struct archive *,
void *buffer, __LA_SSIZE_T len);

So it appears on the MinGW/MSYS/wine platform at least that

something is screwed up with the __LA_DECL and/or __LA_SSIZE_T macros.

[...]but we should know more about that if somebody can tell
me where the above macros are #defined.


???

Also,


Has anybody tried that version [latest MinGW/MSYS installer,

version 20110802] of MinGW/MSYS on Microsoft Windows to

build cmake-2.8.5? It is possible the same build-time error will show
up under those conditions.


(which would immediately remove wine from the question, and my part
in this thread would be done since I have no access to Microsoft
Windows.)

That automatic installer (available
at http://sourceforge.net/projects/mingw/files/Automated MinGW
Installer/mingw-get-inst/)

literally takes about 5 minutes to download and install all of
MinGW/MSYS on wine, and I am sure that it would even be faster
on Windows.  Is there anybody game to try the build
of cmake on Windows using the latest MinGW/MSYS stack you
install with the automatic installer

???

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
__
___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


[cmake-developers] cmake-2.8.5 build error on the MinGW/MSYS/wine platform

2011-08-27 Thread Alan W. Irwin

As an experiment on the MinGW/MSYS/wine platform I tried to
build cmake from the bash.exe command line as follows:

cmake -G MSYS Makefiles \
-DCMAKE_INSTALL_PREFIX=/z/home/wine/newstart1/cmake/install \
/z/home/software/cmake/cmake-$CMAKE_VERSION  cmake.out

make  make.out

where CMAKE_VERSION=2.8.5,
the above cmake command is executed with the windows binary version of
cmake-2.8.5 you
can download from kitware, make is the MSYS version, and I
am using the 20110802 version of MinGW/MSYS.

That make command errored out part way through with the following messages:

[ 35%] Building C object 
Utilities/cmlibarchive/libarchive/CMakeFiles/cmlibarchive.dir/archive_read.c.obj
z:/home/software/cmake/cmake-2.8.5/Utilities/cmlibarchive/libarchive/archive_read.c:572:1:
 error: conflicting types for 'archive_read_data'
z:/home/software/cmake/cmake-2.8.5/Utilities/cmlibarchive/libarchive/archive.h:386:30:
 note: previous declaration of 'archive_read_data' was here
z:/home/software/cmake/cmake-2.8.5/Utilities/cmlibarchive/libarchive/archive_read.c:651:1:
 error: conflicting types for 'archive_read_data_into_buffer'
z:/home/software/cmake/cmake-2.8.5/Utilities/cmlibarchive/libarchive/archive.h:411:22:
 note: previous declaration of 'archive_read_data_into_buffer' was here
make[2]: *** 
[Utilities/cmlibarchive/libarchive/CMakeFiles/cmlibarchive.dir/archive_read.c.obj]
 Error 1
make[1]: *** 
[Utilities/cmlibarchive/libarchive/CMakeFiles/cmlibarchive.dir/all] Error 2
make: *** [all] Error 2

If you compare the types of archive_read_data and
archive_read_data_into_buffer in archive_read.c versus
archive.h, the *.c versions are

ssize_t
archive_read_data(struct archive *_a, void *buff, size_t s)

int
archive_read_data_into_buffer(struct archive *a, void *d, ssize_t len)

while the *.h versions are

__LA_DECL __LA_SSIZE_T archive_read_data(struct archive *,
void *, size_t);

__LA_DECL int archive_read_data_into_buffer(struct archive *,
void *buffer, __LA_SSIZE_T len);

So it appears on the MinGW/MSYS/wine platform at least that

something is screwed up with the __LA_DECL and/or __LA_SSIZE_T macros.

This is a regression on successful cmake builds on MinGW/MSYS/wine that I have
done before.  However, I am not sure whether it is the new MinGW/MSYS
(the new 20110802 version versus 20101030), the new wine (1.3.27
versus 1.3.9), or the new CMake version (2.8.5 versus 2.8.3) that is the
culprit here, but we should know more about that if somebody can tell
me where the above macros are #defined.

Note, I can do some experimentation with MinGW/MSYS/wine, but it
should be intelligently focussed rather than brute force because the
whole platform has a huge latency (literally a second) for every time
cmake, make, or g++ are executed (and probably most other commands as
well, although I have found at least one command in that environment
[echo done from bash] that is just as fast as on Linux).  As we know,
cmake itself and well as the Makefile approach it configures tends to
split stuff up into many little commands so when you multiply 1 second
latency time the number of those commands, all cmake runs and make
runs slow down dramatically when compared to the Linux platform. So,
for example, I had to wait an hour or so for the above cmake command
to finish that configured the cmake build.  I have complained in the
past about 0.1 second latencies for wine-1.3.9, but the current
wine-1.3.27 seems to be ten (!) times worse in this regard.

Despite this current latency drawback, the cmake/MinGW/MSYS/wine platform is
quite useful for testing for Windows build issues if you don't want to
spend a lot of time/effort/money on installing Microsoft Windows on
your computer.

For example, the above could be a MinGW/MSYS build issue that also
occurs for Microsoft Windows for cmake-2.8.5 and the 20110802 version
of MinGW/MSYS (the version that is automatically downloaded now
by the automated MinGW/MSYS installer you can download using

wget http://sourceforge.net/projects/mingw/files/Automated MinGW
Installer/mingw-get-inst/mingw-get-inst-20110802/mingw-get-inst-20110802.exe

Has anybody tried that version of MinGW/MSYS on Microsoft Windows to
build cmake-2.8.5?  It is possible the same build-time error will show
up under those conditions.

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
__
___
cmake-developers mailing

Re: [cmake-developers] [CMake 0012374]: DESTDIR is not documented

2011-08-01 Thread Alan W. Irwin

On 2011-08-01 00:57-0400 Mantis Bug Tracker wrote:


==
Summary:DESTDIR is not documented


http://www.cmake.org/Wiki/CMake_FAQ does document this so
would advise immediate closure with that reference
to help unclutter bugtracker.

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); PLplot scientific plotting software
package (plplot.org); 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
__
___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] [wishlist BUG?] limit on the length of the CFLAGS environment variable too small?

2011-07-31 Thread Alan W. Irwin

On 2011-07-31 09:11-0400 Brad King wrote:


On 7/30/2011 3:52 AM, Alan W. Irwin wrote:

   CMakeFiles/cmTryCompileExec.dir/flags.make:6: *** missing separator.  Stop.

[snip]

That missing separator issue makes me think I may be running into
some length limit with cmake.


The error is coming from the Make tool, not CMake.  Try running
CMake with --debug-trycompile so it leaves behind the offending
flags.make file.  Look at the file to see if there is anything
funny looking on that line.


It looks okay to me, but I am not familiar with the format of that
file so I have attached it so you can see for yourself.  Also, to help
you replicate exactly what I did using the minimal CMakeLists.txt file
I posted, here is how I created that CFLAGS:

export CFLAGS=$(gcc -c -Q -O0 --help=optimizers \
|grep enabled |sed -e s?\\[enabled\\]? ?g -e s? -f? -fno-?g)
CFLAGS=-g $CFLAGS

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); PLplot scientific plotting software
package (plplot.org); 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
__# CMAKE generated file: DO NOT EDIT!
# Generated by Unix Makefiles Generator, CMake Version 2.8

# compile C with /usr/bin/gcc
C_FLAGS =-fno-align-loops
  -fno-argument-alias
  -fno-asynchronous-unwind-tables
  -fno-branch-count-reg  
  -fno-common
  -fno-dce   
  -fno-dse   
  -fno-early-inlining
  -fno-gcse-lm   
  -fno-inline-functions-called-once  
  -fno-ivopts
  -fno-jump-tables   
  -fno-math-errno
  -fno-move-loop-invariants  
  -fno-peephole  
  -fno-rename-registers  
  -fno-sched-interblock  
  -fno-sched-spec
  -fno-sched-stalled-insns-dep   
  -fno-signed-zeros  
  -fno-split-ivs-in-unroller 
  -fno-toplevel-reorder  
  -fno-trapping-math 
  -fno-tree-cselim   
  -fno-tree-loop-im  
  -fno-tree-loop-ivcanon 
  -fno-tree-loop-optimize
  -fno-tree-reassoc  
  -fno-tree-scev-cprop   
  -fno-tree-switch-conversion
  -fno-tree-vect-loop-version
  -fno-unit-at-a-time
  -fno-var-tracking  
  -fno-vect-cost-model   
  -fno-web

C_DEFINES = 

___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] [CMake 0012301]: CMAKE_BUILD_TYPE not set on MinGW

2011-06-23 Thread Alan W. Irwin

On 2011-06-23 10:22-0600 Clinton Stimpson wrote:


FYI, I realized a patch to UseQt4.cmake could fix this qt-plugin/no-build-type
problem.
See here:
http://cmake.org/gitweb?p=cmake.git;a=commit;h=5a2b20

Maybe it'll make it in 2.8.5?


Hi Clint:

I am replying to your above off-list comment on the list for obvious reasons.

I woke up this morning with a very similar idea which I posted to the
list before looking at the above off-list note from you.  I notice
your patch puts BOOLEAN logic protection around the statement I suggested, e.g.,

+IF(NOT CMAKE_CONFIGURATION_TYPES AND NOT CMAKE_BUILD_TYPE)
+  SET_PROPERTY(DIRECTORY APPEND PROPERTY COMPILE_DEFINITIONS QT_NO_DEBUG)
+ENDIF()

I don't understand why that protection is necessary, but you
understand CMake better than I do so I assume you are right.

I have high hopes your minimal patch will get into 2.8.5 since
it appears to solve many Qt4/MinGW problems.

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); PLplot scientific plotting software
package (plplot.org); 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
__
___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] [CMake 0012301]: CMAKE_BUILD_TYPE not set on MinGW

2011-06-22 Thread Alan W. Irwin

On 2011-06-22 17:36-0400 Mantis Bug Tracker wrote:



The following issue has been SUBMITTED.
==
http://public.kitware.com/Bug/view.php?id=12301
==
Reported By:Stephen Kelly
Assigned To:
==
Project:CMake
Issue ID:   12301
Category:   CMake
Reproducibility:always
Severity:   minor
Priority:   normal
Status: new
==
Date Submitted: 2011-06-22 17:36 EDT
Last Modified:  2011-06-22 17:36 EDT
==
Summary:CMAKE_BUILD_TYPE not set on MinGW
Description:

CMAKE_BUILD_TYPE is not set when using MinGW, which causes problems with loading
Qt plugins unless the user manually sets the CMAKE_BUILD_TYPE.

CMAKE_BUILD_TYPE should be preset to debug or release, as it is on most other
platforms.

Context here:

http://thread.gmane.org/gmane.comp.programming.tools.cmake.user/36994/focus=37032


I have an interest is this bug report and the above thread because of
my MinGW/wine tests and experiments with the Qt4 components of PLplot.
Also, we currently have a user who is having a devil of a time getting
the Qt4 components of PLplot to work reliably on Windows.

I have read that thread, but would some MinGW/Windows expert here
(such as, ahem, Clint) explain what the real issue is?

On Linux, CMAKE_BUILD_TYPE is also not set, but the Qt4 aspects of our
PLplot build work fine there.  In other words, the Unix Makefiles
generator and associated CMake Linux gcc compiler support know exactly
what to do if the CMAKE_BUILD_TYPE is not set.  (I assume from the
documentation that means that the release version of Qt4 is chosen
rather than the debug version, but I haven't verified that.) So is the
issue really that either/both of MinGW Makefiles or MSYS Makefiles
combined with the CMake Windows MinGW compiler support don't know how
to correctly handle the case where CMAKE_BUILD_TYPE is not set?

Currently, I must say I have sometimes had success with the Qt4
components of PLplot on wine and sometimes not, and I haven't yet
pinned down the reason.  And we have a PLplot user with very similar
Qt4/PLplot reliability issues using MinGW on the Microsoft version of
Windows.  Because of the information in the above bug report I will
try manually setting CMAKE_BUILD_TYPE (I haven't done that before) the
next time I build and test PLplot on wine, and I have suggested our
user do the same on Microsoft Windows, in the hope it will make the
Qt4 components of PLplot more reliable on those platforms.

Clint, I had planned to restart MinGW/MSYS/Wine and MinGW/Wine testing
of PLplot builds in the next several weeks, but I could start those
tests earlier if it would clarify some of the issues you discovered for the
case when CMAKE_BUILD_TYPE was not set manually.

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); PLplot scientific plotting software
package (plplot.org); 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
__
___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] [CMake 0012280]: FindSWIG won't find swig 1.3

2011-06-16 Thread Alan W. Irwin

On 2011-06-15 16:19-0400 Mantis Bug Tracker wrote:



The following issue has been SUBMITTED.
==
http://public.kitware.com/Bug/view.php?id=12280
==
Reported By:Julien Malik
Assigned To:
==
Project:CMake
Issue ID:   12280
Category:   CMake
Reproducibility:always
Severity:   minor
Priority:   normal
Status: new
==
Date Submitted: 2011-06-15 16:19 EDT
Last Modified:  2011-06-15 16:19 EDT
==
Summary:FindSWIG won't find swig 1.3
Description:
I have swig 1.3 installed, but not 2.0
CMake won't find swig automatically.

If I install 2.0, swig is found correctly.

The attached patch fixes it.
Seems like find_program is not called with conventions from the documentation.


Steps to Reproduce:
project(TestFindSWIG)
cmake_minimum_required(VERSION 2.8)
find_package(SWIG)


Brad has accepted this patch and closed the bug.  However, I am
interested because PLplot uses swig-1.3 with no user reports of
problems (has done for years).  I personally have never seen swig
finding problems for Linux and also a MinGW/MSYS/wine platform.
Furthermore, I cannot reproduce the bug even with the simple test
example above for my platform (Debian stable with CMake-2.8.4 that I
built myself, and swig version 1.3.40-3).

On the other hand, the patch does look correct to me.  So, Brad, how
in the world does find_package(SWIG) work at all for both my Linux and
wine platforms?  Or to put it another way, for what platforms (with
swig-1.3) will this bug be triggered (until the fix goes into a
release)?

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); PLplot scientific plotting software
package (plplot.org); 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
__
___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] I want to use CMake in Solaris10 x86

2011-06-13 Thread Alan W. Irwin

On 2011-06-14 10:37+0800 feng.zhou wrote:


Hi
I cannot find insall packet in download list,only Solaris spack packet can be 
found.How to solve this question ,thanks


Try building cmake from the source code using the bootstrap method
(i.e. running the bootstrap script in the top-level source tree
directory following the directions in Readme.txt in that directory).

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); PLplot scientific plotting software
package (plplot.org); 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
__
___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] CMake 2.8.5-rc1 ready for testing!

2011-05-25 Thread Alan W. Irwin

On 2011-05-25 14:25-0400 David Cole wrote:


I am happy to announce that CMake 2.8.5 has entered the release
candidate stage! You can find the source and binaries here:
http://www.cmake.org/files/v2.8/?C=M;O=D


Hi Dave:

Has bug 9220 been fixed for this release candidate?
http://public.kitware.com/Bug/view.php?id=9220 says it is targeted for
2.8.5, but there doesn't seem to be any mention of it in the 2.8.5-rc1
Changelog you posted.

I would really like to see this bug properly fixed for 2.8.5 since the
workaround you suggested long ago of invoking a cmake session from
within your principal cmake session to independently test language
support has limitations.  For example, it is difficult to propagate
user-specified compilers or compiler flags from the principal cmake
session to the test cmake session because there are so many different
ways for the user to specify compiler or compiler flags.

Once there is a proper fix for 9220, I would be happy to help test it.

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); PLplot scientific plotting software
package (plplot.org); 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
__
___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] CMake to GMake issues

2011-01-24 Thread Alan W. Irwin

On 2011-01-24 17:02- Chris Lawrence wrote:


Hi,

I've recently been looking into using CMake with one of my projects at work. 
I've recently run into a problem where the Makefile, CMake
generates will not run on my build system unless I install the cmake libraries.

Just to clarify, my development machine (where CMake is installed) and my build 
machine are separate. My project requires the use of the
generated makefile, without the dependence of having cmake installed on that 
machine.

Is there any flags available for CMake, to generate a gmake file that can be 
run independently from the cmake libraries?


To the CMake developers here: should the answer be in the FAQ?
My quick check could not find it there.

To Chris:

This subject is probably more appropriate for the cm...@cmake.org list
where the question has been answered a number of times already, but
I will attempt to answer it here.

In short, the answer is no.  If you run make VERBOSE=1 you will see
cmake is invoked for at least progress reports and dependency
analysis.  Also, if you want your build to be cross-platform at all,
as a build system designer you will be using the cmake -E commands to
do cross-platform commands such as the following:

Usage: cmake -E [command] [arguments ...]
Available commands:
  chdir dir cmd [args]...   - run command in a given directory
  rename oldname newname- rename a file or directory (on one volume)
  copy file destination - copy file to destination (either file or 
directory)
  copy_if_different in-file out-file  - copy file if input has changed
  copy_directory source destination   - copy directory 'source' content to 
directory 'destination'
  compare_files file1 file2 - check if file1 is same as file2
  echo [string]...  - displays arguments as text
  echo_append [string]...   - displays arguments as text but no new line
  environment   - display the current environment
  make_directory dir- create a directory
  md5sum file1 [...]- compute md5sum of files
  remove_directory dir  - remove a directory and its contents
  remove [-f] file1 file2 ... - remove the file(s), use -f to force it
  tar [cxt][vfz][cvfj] file.tar file/dir1 file/dir2 ... - create a tar archive
  time command [args] ...   - run command and return elapsed time
  touch file- touch a file.
  touch_nocreate file   - touch a file but do not create it.
  build build_dir   - build the project in build_dir.
  create_symlink old new- create a symbolic link new - old

So even if you could get rid of the progress reports and dependency
analysis, then you severely limit the cross-platform usefulness of
your package by not being able to use these commands at make time.

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); PLplot scientific plotting software
package (plplot.org); 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
__
___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] Using cmake pkg-config-like in non-cmake builds

2010-11-22 Thread Alan W. Irwin

On 2010-11-22 21:55+0100 Alexander Neundorf wrote:


Hi,

there can be the case that a package which has been built with cmake, should
be used in a project which doesn't use cmake.
There is a feature request that cmake should help with generating pkg-config
pc-files: http://public.kitware.com/Bug/view.php?id=11446

I don't like that idea, because a) this means duplicating information, and b)
doing that in a less powerful format.

I have a slightly different idea: instead of having cmake generate pc-files,
modify/extend cmake so that it can be used similar to pkg-config by projects
which don't use cmake as their buildsystem.
I attached a first very quick try to that bug report.
It's a small cmake script which can be executed by cmake with -P, and which
basically contains one find_package() call and prints the results, so they
can be fed into a compiler invocation in a makefile.

It already somewhat works:
$ cmake -DMODE=COMPILE -DCOMPILER_ID=GNU -DPACKAGE=PNG -P cmake-config.cmake
-I/usr/include -I/usr/include

$ cmake -DMODE=LINK -DCOMPILER_ID=GNU -DPACKAGE=PNG -P cmake-config.cmake
/usr/lib/libpng.so /usr/lib/libz.so


Do you think this makes sense ?


Hi Alex:

How did you collect that compiler flag information?  As far as I know
the command install(EXPORT ) only writes out information about
the link flags but not the compile flags associated with a given
library target. If your method of obtaining compile flag information
is general enough, then it should be straightforward to modifiy that
install signature to write out the compile flags as well, and that
would be a huge win.

For example, PLplot currently uses install(EXPORT ) to collect
link flag information for all its libraries for the use of external
projects.  And we use that information for an external CMake-based
build system we have implemented to build and exhaustively test our
installed examples. That build system would be a lot less cumbersome
if we had access to compile flags for each of our libraries through
the EXPORTed cmake file.

Thus, in answer to your primary question, I think the cmake file
written out by install(EXPORT ...) is the right format to use for
compile flag and linker flag information if the above suggested
enhancement to install(EXPORT...) was made.  Once compile and link
flag data were collected in a format like that, it should be a simple
matter to parse those data into any other form that developers might
like including dumping those data directly to the command line as in
your proof of concept above.

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); PLplot scientific plotting software
package (plplot.org); 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
__
___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] Add support for IAR compilers

2010-10-17 Thread Alan W. Irwin

On 2010-10-17 16:17+0200 Alexander Neundorf wrote:


Hi,

basically since January this year I am busy with adding support for the IAR
compilers to cmake:
http://public.kitware.com/Bug/view.php?id=10176

Main problem is that they run only under Windows, I don't have Windows, and I
also already tried to get them installed on a ReactOS QEmu image, but didn't
succeed, in the end some things didn't work.


Hi Alex:

I also don't have access to Windows but need to test software (PLplot
and FreeEOS in my case) for that platform.  I have used Wine (the free
Windows workalike accessible under Linux) for this testing purpose,
and you might want to consider this platform for your Windows testing
needs as well.  Of course, Wine is not a perfect Windows workalike,
but those developers try very hard to implement that goal, and keep
getting better and better at realizing that goal.  Thus, if your Wine
testing succeeds, there is a good chance the software you are testing
will work on proprietary Windows as well.

According to http://en.wikipedia.org/wiki/ReactOS, ReactOS does use
some parts of Wine but cannot use it all.  It is also unclear to me
how well ReactOS keeps up with the latest Wine (Wine puts out a new
development release every two weeks) or whether some of the issues you
encountered were due to some non-Wine ReactOS issue. (ReactOS is a
standalone OS while the OS part is taken care of by Linux for Wine so
should be completely reliable in that case.)

Under Wine, and using a downloaded Windows binary version of the MinGW
set of compilers, I have used a downloaded Windows binary of CMake to
build CMake itself, and then used that Wine-built version of CMake to
build and (successfully) test PLplot.  These preliminary
Wine/CMake/MinGW results look quite promising so you might find that
Wine/CMake/IAR also works well.  Anyhow, it is worth a try since it is
a good feeling to have Windows-workalike platform testing under your
own hands to complement proprietary Windows platform testing done by
others.

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); PLplot scientific plotting software
package (plplot.org); 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
__
___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


[cmake-developers] CMake code style

2010-09-20 Thread Alan W. Irwin

On 2010-09-20 16:20-0400 Bill Hoffman wrote:


BTW, this type of code is not allowed in CMake:

  if (fi!=files.begin()) os  ;;

Needs to be:

if((fi!=files.begin())
{
os  ;;
}


If you want a consistent coding style in CMake, I suggest you give
uncrustify a look.  It is extremely powerful and configurable, and we
are quite pleased with the results it gives in the PLplot case.

Let's face it, with a variety of humans involved with a code base some
inconsistent coding style is constantly creeping in.  To stop that you
need (1) some sort of style czar or (2) some semi-automatic script
that does the job which one core developer runs by hand aperiodically
to bring all code into conformance with a uniform style.  I feel that
(2) is the better choice since it gives consistent results and better
feelings amongst developers since it is easier to come to consensus on
uncrustify options you are going to use then argue over styling of
individual files.

I have put together a shell script that is based on uncrustify and
which has options for listing all files that don't conform to the
ideal standard, showing differences between the ideal style and
actuality for those files (both in diff -auw format and diff -au
format), and a final option that fixes all those differences once you
are satisfied you like the changes that the diff options show.  You
are welcome to modify the script any way you like for your needs.  See
http://plplot.svn.sourceforge.net/viewvc/plplot/trunk/uncrustify.cfg?view=log
and
http://plplot.svn.sourceforge.net/viewvc/plplot/trunk/scripts/style_source.sh?view=log.

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); PLplot scientific plotting software
package (plplot.org); 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
__
___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


Re: [cmake-developers] fphsa capitalization

2010-08-14 Thread Alan W. Irwin

On 2010-08-14 16:25+0200 Eric Noulard wrote:


I know this may seems overkill, because we are only speaking about
ExactCase vs UPPERCASE, but if we take the backward compatibilty
seriously and want to progress towards to ExactCMake, may be it's
a possible idea.

Now I think I just unveil myself a CMake pandora box, the
whatever case getter I propose is not too far away from the
MACRO(WhatEvERcase) or FUNCTION(WHATeverCase) behavior.
I let you run the attached cmake script and tell me if you knew
this flexible CMake command naming was true for MACRO and
FUNCTION too ? This is genuine consistent but why doing this
on macro and not on vars?


As a CMake-based build-system implementer for various software
packages, I was well aware of and do like the convenience of
case-insensitive use of commands, macros, and functions.  However,
variables are a different story and _in general_ there you want to
maximize the possibilities for the largest possible namespace so case
insensitivity would be a bad idea for variables _in general_. 
However, for the specific case of the variables set by find modules,

the present mess is unacceptable, and CMake should move to an enforced
consistent naming convention as soon as possible.

I will let others more competent than me in CMake internals comment on
the technical merits of Eric's proposals, but I think the idea of
removing a lot of the pain of converting to a consistent naming
convention for the variables set by find modules using technical means
is a good one. Assuming Eric's or similar proposals are implemented to
remove that conversion pain, I agree with Brad that since we already
must use exact case for referring to the find module name with the
find_package command, it makes a lot of sense to use that same
exact-case name as a prefix for the variables set by that find module.
My hope is that with the conversion pain removed, Alex would be
willing to go along with the exact case naming convention so that
solving the current naming convention mess is not delayed too much
longer.

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); PLplot scientific plotting software
package (plplot.org); 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
__
___
cmake-developers mailing list
cmake-developers@cmake.org
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


<    1   2   3