[MOAB-dev] Problems with MOABConfig.cmake

Vijay S. Mahadevan vijay.m at gmail.com
Mon Dec 8 16:26:46 CST 2014


John,

I think I misunderstood you before but now can finally replicate it. I
was checking MOABConfig.cmake right after configuration but from this
email, this is clear that the errors are after the installation, which
I do see now.

We should be able to split include/link directories and library names
separately so that CMake picks them up cleanly. I'll also work on this
to make things consistent. I'll let you know once I have a branch
ready to test, before I merge to master.

Vijay

On Mon, Dec 8, 2014 at 9:10 AM, JR Cary <cary at txcorp.com> wrote:
> Hi Vijay,
>
> The problem with the -n appearing everywhere
> is that sed on OSX is not gnu sed.  So, on linux:
>
> $ echo foo | sed 's/f/f\n/'
> f
> oo
>
> But on Darwin
>
> $ echo foo | sed 's/f/f\n/'
> fnoo
>
> Thus the code under
>
> install-data-hook:
>
> is invalid on OSX.
>
> I see what you are trying to do.  One way would be
> to get all replacements done except PREFIX in MOABConfig.cmake
> at configure time, then replace PREFIX at installation time.
>
> With regard to the libaries, keeping that long string of -L's
> and -l's may work for now, but cmake does not guarantee that
> syntax.  With something like
>
> link_directories(/volatile/moab-master.r5242-ser/lib
> /contrib/netcdf-4.3.2-ser/lib /contrib/hdf5-1.8.13-ser/lib)
> set(MOAB_LIBRARY_NAMES MOAB netcdf hdf5_hl hdf5 pthread z dl m)
> set(DAGMC_LIBRARY_NAMES dagmc ${MOAB_LIBRARY_NAMES})
>
> CMake will not fail down the road someday.
>
> Best......John
>
>
>
>
>
> On 11/29/14, 8:04 AM, Vijay S. Mahadevan wrote:
>
> Thanks for the bug report John. We will push a fix to the MOABConfig
> generation.
>
> We can split the directory and library as separate variables but this
> follows the autoconf based moab.make that uses the mixed convention. Is
> there a specific reason why you want them separately? Apps using MOAB should
> directly use that line to link anyway.
>
> Vijay
>
> On Nov 28, 2014 11:05 PM, "JR Cary" <cary at txcorp.com> wrote:
>>
>> Dear moab folks,
>>
>> I just configure moab with
>>
>> '/Users/cary/projects/dagmcall/moab/configure'
>> --prefix=/volatile/moab-master.r5237-sersh --disable-static --enable-shared
>> CC='/usr/bin/clang' CXX='/usr/bin/clang++' FC='/usr/local/bin/gfortran'
>> F77='/usr/local/bin/gfortran' CXXFLAGS='-stdlib=libstdc++' FFLAGS='-pipe
>> -fPIC' FCFLAGS='-pipe -fPIC' --enable-dagmc --without-vtk
>> --with-hdf5='/contrib/hdf5-1.8.13-sersh'
>>
>> on Darwin.  It built and installed, but at the end of the cmake
>> configuration file (lib/MOABConfig.cmake) I see many lines beginning
>> with '-n' and then 'n' at line endings:
>>
>> # Library and include defs
>> SET(MOAB_INCLUDE_DIRS "/volatile/moab-master.r5237-sersh/include")
>> -n SET(MOAB_LIBRARIES "
>> -n          -L/contrib/hdf5-1.8.13-sersh/lib
>> -L/volatile/moab-master.r5237-sersh/lib -lMOAB  -lc++ -lpthread -lz -ldl -lm
>> -lhdf5")n
>> -n SET(DAGMC_LIBRARIES "
>> -n          -L/contrib/hdf5-1.8.13-sersh/lib
>> -L/volatile/moab-master.r5237-sersh/lib -ldagmc -lMOAB  -lc++ -lpthread -lz
>> -ldl -lm    -lhdf5")n
>>
>> This causes any cmake project depending on moab to fail.
>>
>> It is also a bit strange, in that in cmake-land, libraries are what
>> is after the -l, and LIBRARY_DIRS are what is after the -L.
>>
>> ......John
>
>


More information about the moab-dev mailing list