Am Donnerstag, 5. Mai 2011 schrieb Jean-Marc Lasgouttes:
> Le 05/05/11 12:34, Kornel a écrit :
> > What do you miss in cmake? I tried to (somehow) mimic all I was aware of
> > from autotools.
> > 
> > It surely is more then 80% ...
> 
>  From the top of my head (I ask for forgiveness if some accusations are
> unfounded, this is from memory)
> 
> - NLS disabled by default

Formerly it was enabled by default, but after some discussions Peter change it

> - I do not know how to have a list of variables from the command line

There is a command "cmake-gui", which seems handy ...

> (before I actually run it). cmake --help is not useful
> - does not work in place by default (actually build_support_dir stuff
> should be removed now, but I have no time)

This is intended. And why should anybody want to mess the source tree?
Please forgive me, but I think, we should generally disable this.

And, BTW, it follows also from the location of starting CMakeLists.txt file.
Would it be on the top source tree level, then it would be possible to change 
it to work in place too.

And what do you mean with "build_support_dir"?

> - I do not know what LYX_CPACK does (what is cpack?)

This is the package creation for debian, rpm, nsis, ...
I use it regularly to create my package.
This is my workflow ...
        # cd source_path
        # svn up
        # cd build_path
        # cmake source_path/development/cmake ... -DLYX_NLS=ON -DLYX_CPACK=ON 
-DCPACK_BINARY_DEB:BOOL=ON ...
        # make package
At this point there is a debian package created and ready to install
        # sudo dpkg -i lyx-2.1.38587-Linux.deb

> - spellchecker should be automatically selected if present

Yes, but here again were discussions :(

> - I would like to see a BUILD_TYPE flag like in autotools, with
> automatic selection from lyx version

How? It is easy to do so, but I would like to know, what is the criteria ...

> - what does LYX_DEVEL_VERSION do? 

Seems, like it adds -DDEVEL_VERSION to compiler flags, never used it.

> What is the difference with
> LYX_RELEASE=OFF?

This makes a debug version (e.g. it adds "-g" to compiler flags)

> - autotools can do merging selectively (mathed, insets...). I am not
> sure it is used, though

I don't understand.

> - stdlib-debug mode should be merged with windows debug mode, since it
> is the same basically

Maybe. Since I don't have windows, I cannot comment :(

> - how do I specify whether I want debug informations (-g flag) for unix?

cmake ... -DLYX_RELEASE=OFF ...

> - building internal LIBINTL does not work. I have a unfinished patch for
> this
> - LYX_EXTERNAL_LIBINTL=OFF triggers compilation in intl even when
> LYX_NLS is OFF

This is easy to correct. The logic here is rather simple, compile internal 
libintl if wished.

> - "non verbose" make file have very long paths that are less readable
> than the automake counterpart (I do not doubt that IDEs have a nice
> display instead)

Yes.

> - generation of pyc and pyo files is verbose even in non-verbose mode

My error. I wanted to see, whats going on. Sorry.

> - I do not like the weird paths where built files go. I really cannot
> find my way there
> - when running "make -j3" and there is an error, the other processes
> continue (one process by directory??)

This is make, not cmake.
Some directories (which are independent) will be compiled in parallel. But they 
all share all processors.
That means, (I think), the compilation of parallel non-erroneous directories 
will continue until they are again
under controll of calling makefile.

> 
> I assume there are other things, but this is a good start.
> 
> Eventually, cmake without option should generate a makefile that has
> reasonable defaults for everything (nls, spellcheck, build type, ...).
> Extra options should be needed only for special needs.

I aggree. But we need consensus about what is reasonable.

> Here is my patch for included libintl. Part of it is a IMO better fix to
> the startup assertion encountered with cmake. I guess the code is not
> linked against libintl, because I get
> 
> Linking CXX executable ../bin/LyX2.1
> Undefined symbols:
>    "_libintl_textdomain", referenced from:
>        lyx::Messages::init()    in libsupport.a(Messages.cpp.o)
>    "_libintl_gettext", referenced from:
>        lyx::Messages::get(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) constin
> libsupport.a(Messages.cpp.o)
>    "_libintl_bind_textdomain_codeset", referenced from:
>        lyx::Messages::init()    in libsupport.a(Messages.cpp.o)
>        lyx::Messages::get(std::basic_string<char,
> std::char_traits<char>, std::allocator<char> > const&) constin
> libsupport.a(Messages.cpp.o)
>    "_libintl_bindtextdomain", referenced from:
>        lyx::Messages::init()    in libsupport.a(Messages.cpp.o)
> ld: symbol(s) not found
> collect2: ld returned 1 exit status
> make[2]: *** [bin/LyX2.1] Error 1
> make[1]: *** [src/CMakeFiles/LyX2.1.dir/all] Error 2
> make: *** [all] Error 2

We have to add internal libintl in support dir ...
I look into this.

> However, how can I see what the command line was. With autoconf I'd just
> do "make V=1", what shall I do with cmake?
> 

        # make -DVERBOSE=1
or to make it default:
        # cmake ... -DCMAKE_VERBOSE_MAKFILE=ON ...

> JMarc

Attachment: signature.asc
Description: This is a digitally signed message part.

Reply via email to