On 05.05.2011 14:55, Kornel wrote:
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


It was too annoying to always having build all the .po stuff when you wanna only
work on on C++ code. For installing it is needed, sure. But as default?



- 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


OK, first idea would be something like this

    cmake ../trunk/development/cmake -Dhelp=1

But maybe there are better solutions have to search a bit.


- does not work in place by default (actually build_support_dir stuff
should be removed now, but I have no time)

Yes, I also find it annoying to always export LYX_DIR_20x.



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?)



All the variable naming and documentation could be reviewed and changed.
It would be great if the variable naming would be more autotool-like.


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 automake, 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



ATM cmake enables for all files bit we could introduce more variables, e.g.
   -DLYX_MERGE_FILES=1 -DLYX_MERGE_MATHED=0
would merge all but mathed


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


I thought nobody uses it any more, so I haven't tested it for months(years).


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.


I assume it is not possible to make the output as short as automake's.



- 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


Do you talk about object files, or others?


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

As already mentioned at the beginning, in the repsitory I would prefer
developer defaults, which could be changed for releases.



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?


I don't know if this is possible, but we should list all variables when running 
"cmake ."

Peter

Reply via email to