I don't really have a horse in the race here, but I've fought a lot with CMake 
and the old school Makefile/configure setup and CMake is infinitely better. To 
address your rant:

0. We've used it on every HPC system the DOD, DOE and NASA have to offer with 
no problems. Cray, IBM, SGI, our own in-house Linux clusters, no issues. 
1. ccmake is no more magic than ./configure
2. I suppose it could start configuring itself, never really thought about it. 
But it's nice that it doesn't sometimes when I accidentally go into cmake in a 
folder I didn't mean to.
3. Ever build a linux kernel? Paraview has nothing on that list of options. If 
you know what options you want turned on ahead of time, you can put 
-DOPTION=VALUE on the cmake command line, just as you would with ./configure 
--enable-OPTION
4. You know you're done configuring when new options that are *'d stop showing 
up at the top of the list. The "you're ready" message is when the g for 
generate pops up. 
5, 6. CMake is open source -- if there are basic sanity checks that are so 
trivial, contribute them and people will be glad to have them. 
7. You don't have to go back into ccmake to turn on verbose building. Just do 
make VERBOSE=1 and it will be plenty verbose. And it will pick up right where 
it left off. 

I'll admit there is a learning curve to using and writing CMake systems. But 
it's infintely less tedious for developers compared to autotools or writing 
your own Makefiles. It's also much nicer for users when there are tons of 
options than trying to specify them all on a command line to a configure script 
(and easier for us developers when users ask for a GUI to set options -- it's 
one less thing to write and debug). 

Maybe some of the above will make things easier for you, or maybe it won't, but 
that's what we've learned through this process.

Tim

----- Original Message -----
From: "Rich Cook" <coo...@llnl.gov>
To: "John A. Biddiscombe" <biddi...@cscs.ch>
Cc: paraview@paraview.org
Sent: Wednesday, October 26, 2011 12:24:46 PM
Subject: Re: [Paraview] Paraview will not build

These are all good suggestions.  Thanks so much for the help everybody! 

Our mvapich MPI could easily be 1x instead of 2x.  
However, the good news is that by switching to OpenMPI and diddling with the 
CMakeCache.txt, I was able to get it to build including the MILI reader. 

As for not hacking the CMakeCache.txt, I much prefer that to endlessly 
iterating through the  obnoxious ccmake GUI.  Please forgive me, but I must 
vent:  
<rant>  CMake has to be one of the worst user experiences ever devised and 
brings very little to the table that I can see.  It's not even cross platform 
as its intended, AFAICT.  Here's my experience with it: 
1)  type a magic command line
2)  hit "configure".  Why doesn't cmake initialize itself?  Because. 
3)  Scan through the list of options, tediously enabling and disabling.   
4)  hit "configure" again to see more options.  If you're done configuring, go 
to 5, else go to 3. How do you know when you're done?  Experience.  No hint 
from the GUI.  No sanity checks. No "you're ready" message.  No summary.  No 
help at all!  Basically, ask a human.  
5)  Hit "generate."
6)  Kick off a build and wait for an error to show up that a decent sanity 
check would have caught.  
7)  Attempt to debug the error without any compile lines being shown.  Go back 
to the ccmake GUI and turn on VERBOSE build.  Since you changed something, 
every .o file is rebuilt from scratch.  Wait forever for the same error.  Go to 
#1

This process takes literally hours.  I have done it so many times I can do it 
in my sleep, but I still hate it.  Job security, I guess.  :-)
</rant>

I will pore through them and probably grab some help from Alan Scott if my 
latest efforts fail.  


On Oct 25, 2011, at 11:33 PM, Biddiscombe, John A. wrote:

> Richard
> 
> In an emergency, you can simply paste
> 
> #define MPI_IN_PLACE ((void *) 1)    
> 
> into files where you're getting a build error to shut the compiler up and 
> produce a test build to work with.
> 
> If you're not actually using the functions, you won't get any run time 
> errors. (of course, if you are using parallel compositing - in this case, you 
> might indeed get problems).
> 
> JB
> 
> -----Original Message-----
> From: paraview-boun...@paraview.org [mailto:paraview-boun...@paraview.org] On 
> Behalf Of Takuya OSHIMA
> Sent: 26 October 2011 07:26
> To: david.part...@kitware.com; coo...@llnl.gov
> Cc: paraview@paraview.org
> Subject: Re: [Paraview] Paraview will not build
> 
> The problem I think is that MPI_IN_PLACE is supported only by MPI-2
> whereas your MPI library probably implements MPI 1.x.
> 
> MPI_IN_PLACE was not in IceT until PV 3.10.1. I had given up trying to
> install PV 3.12 series on a supercluster that only has MPI 1.2 support
> so would really appreciate if the MPI-2 dependence is removed by any
> chance...
> 
> Takuya
> 
> Takuya OSHIMA, Ph.D.
> Faculty of Engineering, Niigata University
> 8050 Ikarashi-Ninocho, Nishi-ku, Niigata, 950-2181, JAPAN
> 
> From: David Partyka <david.part...@kitware.com>
> Subject: Re: [Paraview] Paraview will not build
> Date: Tue, 25 Oct 2011 21:44:13 -0400
> 
>> You shouldn't be tweaking the Cache! :-P It should work with openmpi,
>> mpich2, msmpi intel mpi etc.
>> 
>> On Tue, Oct 25, 2011 at 9:04 PM, Cook, Rich <coo...@llnl.gov> wrote:
>> 
>>> Ah, thanks,
>>> perhaps this only works with OpenMPI... I'll investigate whether I can use
>>> that.
>>> Paraview is hard as hell to build.
>>> -- Rich
>>> 
>>> On Oct 25, 2011, at 5:59 PM, Scott, W Alan wrote:
>>> 
>>>> Works for me!  Here is a snippet from our python script.
>>>> 
>>>> Alan
>>>> 
>>>>       mpiDir =
>>> '/apps/x86_64/mpi/openmpi/intel-11.1-f064-c064/openmpi-1.4.2_oobpr
>>>> 
>>>>     cMakeVars = cMakeVars +\
>>>>       '-DMPI_LIBRARY:FILEPATH="'+mpiDir+'/lib/libmpi.so;'+\
>>>>          mpiDir+'/lib/libopen-rte.so;'+\
>>>>          mpiDir+'/lib/libopen-pal.so;'+\
>>>>          mpiDir+'/lib/libmpi_cxx.so" '+\
>>>>       '-DCMAKE_EXE_LINKER_FLAGS:STRING=-Bdynamic '
>>>> 
>>>>   cMakeVars = cMakeVars +\
>>>>       '-DVTK_USE_MPI:BOOL=ON '+\
>>>>       '-DPARAVIEW_USE_MPI:BOOL=ON '+\
>>>>       '-DMPI_INCLUDE_PATH:PATH='+mpiDir+'/include/ '+\
>>>>       '-DCMAKE_C_FLAGS:STRING="-w -fPIC -I'+mpiDir+'/include/openmpi"
>>> '+\
>>>>       '-DCMAKE_CXX_FLAGS:STRING="-w -fPIC -I'+mpiDir+'/include/openmpi"
>>> '+\
>>>>       '-DCMAKE_CXX_FLAGS_RELEASE:STRING="-O2 -fPIC" '+\
>>>>       '-DCMAKE_C_FLAGS_RELEASE:STRING="-O2 -fPIC" '+\
>>>>       '-DPARAVIEW_PLUS_BUILD:BOOL=OFF '
>>>> 
>>>> cMakeVars = cMakeVars +\
>>>>           '-DPARAVIEW_USE_MPI_SSEND:BOOL=ON '
>>>> 
>>>> 
>>>> 
>>>> -----Original Message-----
>>>> From: paraview-boun...@paraview.org [mailto:
>>> paraview-boun...@paraview.org] On Behalf Of Cook, Rich
>>>> Sent: Tuesday, October 25, 2011 6:44 PM
>>>> To: paraview@paraview.org
>>>> Subject: [Paraview] Paraview will not build
>>>> 
>>>> Help?
>>>> 
>>>> [ 44%] Building C object
>>> Utilities/IceT/src/communication/CMakeFiles/IceTMPI.dir/mpi.c.o
>>>> cd
>>> /nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2-build/Utilities/IceT/src/communication
>>> && /usr/local/bin/mpicc  -DIceTMPI_EXPORTS -DVTK_PYTHON_BUILD
>>> -I/usr/global/tools/Kitware/Paraview/3.11/chaos_4_x86_64_ib/include
>>> -I/usr/gapps/visit/mili/1.10.0/linux-x86_64_gcc-4.1/include
>>> -I/usr/gapps/visit/hdf5/1.8.4/linux-x86_64_gcc-4.1/include -g -fPIC
>>> -I/nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2-build
>>> -I/nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2-build/VTK/Utilities
>>> -I/usr/local/include/python2.6 -I/usr/local/tools/mvapich-gnu/include
>>> -I/nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2/Utilities/IceT/src/include
>>> -I/nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2-build/Utilities/IceT/src/include
>>>  -ansi -Wall -Wno-long-long -Wcast-align -Wextra -Wformat-security -Wshadow
>>> -Wunused -Wreturn-type -Wpointer-arith -Wdeclaration-after-statement -o
>>> CMakeFiles/IceTMPI.dir/mpi.c.o   -c
>>> /nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2/Utilities/IceT/src/communication/mpi.c
>>>> 
>>> /nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2/Utilities/IceT/src/communication/mpi.c:
>>> In function 'Gather':
>>>> 
>>> /nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2/Utilities/IceT/src/communication/mpi.c:327:
>>> error: 'MPI_IN_PLACE' undeclared (first use in this function)
>>>> 
>>> /nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2/Utilities/IceT/src/communication/mpi.c:327:
>>> error: (Each undeclared identifier is reported only once
>>>> 
>>> /nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2/Utilities/IceT/src/communication/mpi.c:327:
>>> error: for each function it appears in.)
>>>> 
>>> /nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2/Utilities/IceT/src/communication/mpi.c:
>>> In function 'Gatherv':
>>>> 
>>> /nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2/Utilities/IceT/src/communication/mpi.c:348:
>>> error: 'MPI_IN_PLACE' undeclared (first use in this function)
>>>> 
>>> /nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2/Utilities/IceT/src/communication/mpi.c:
>>> In function 'Allgather':
>>>> 
>>> /nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2/Utilities/IceT/src/communication/mpi.c:366:
>>> error: 'MPI_IN_PLACE' undeclared (first use in this function)
>>>> make[2]: ***
>>> [Utilities/IceT/src/communication/CMakeFiles/IceTMPI.dir/mpi.c.o] Error 1
>>>> make[2]: Leaving directory
>>> `/nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2-build'
>>>> make[1]: ***
>>> [Utilities/IceT/src/communication/CMakeFiles/IceTMPI.dir/all] Error 2
>>>> make[1]: Leaving directory
>>> `/nfs/tmp2/rcook/ParaView/3.12/ParaView-3.12.0-RC2-build'
>>>> make: *** [all] Error 2
>>>> 
>>>> --
>>>> ✐Richard Cook
>>>> ✇ Lawrence Livermore National Laboratory
>>>> Bldg-453 Rm-4024, Mail Stop L-557
>>>> 7000 East Avenue,  Livermore, CA, 94550, USA
>>>> ☎ (office) (925) 423-9605
>>>> ☎ (fax) (925) 423-6961
>>>> ---
>>>> Information Management & Graphics Grp., Services & Development Div.,
>>> Integrated Computing & Communications Dept.
>>>> (opinions expressed herein are mine and not those of LLNL)
>>>> 
>>>> 
>>>> 
>>>> _______________________________________________
>>>> 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 ParaView Wiki at:
>>> http://paraview.org/Wiki/ParaView
>>>> 
>>>> Follow this link to subscribe/unsubscribe:
>>>> http://www.paraview.org/mailman/listinfo/paraview
>>> 
>>> --
>>> ✐Richard Cook
>>> ✇ Lawrence Livermore National Laboratory
>>> Bldg-453 Rm-4024, Mail Stop L-557
>>> 7000 East Avenue,  Livermore, CA, 94550, USA
>>> ☎ (office) (925) 423-9605
>>> ☎ (fax) (925) 423-6961
>>> ---
>>> Information Management & Graphics Grp., Services & Development Div.,
>>> Integrated Computing & Communications Dept.
>>> (opinions expressed herein are mine and not those of LLNL)
>>> 
>>> 
>>> 
>>> _______________________________________________
>>> 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 ParaView Wiki at:
>>> http://paraview.org/Wiki/ParaView
>>> 
>>> Follow this link to subscribe/unsubscribe:
>>> http://www.paraview.org/mailman/listinfo/paraview
>>> 
> _______________________________________________
> 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 ParaView Wiki at: 
> http://paraview.org/Wiki/ParaView
> 
> Follow this link to subscribe/unsubscribe:
> http://www.paraview.org/mailman/listinfo/paraview

Rich Cook
---------------------------------------------
Be impeccable with your word, don't take anything personally, don't make 
assumptions, and always do your best. 
        -- The Four Agreements



_______________________________________________
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 ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview
_______________________________________________
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 ParaView Wiki at: 
http://paraview.org/Wiki/ParaView

Follow this link to subscribe/unsubscribe:
http://www.paraview.org/mailman/listinfo/paraview

Reply via email to