Urm... does one need to shout all the time when talking to cmake?

Pretty much looks like a argument with a senile FORTRAN compiler.

You have to agree that the following (src/support/SConscript) at least
looks better:

# -----------------------------------------------
# SConscript
# -----------------------------------------------

Import('env')

print "Entering src/supports"

env.Append(CPPPATH = ['.'])

# build package.C from package.C.in
env.fileSubst('package.C.in', 'package.C')

supports = env.StaticLibrary(
 target = '$LIBPATH/supports',
 source = Split('''
   FileMonitor.h
   FileMonitor.C
   RandomAccessList.h
   abort.C
   chdir.C
   convert.C
   convert.h
   copy.C
   copied_ptr.h
   cow_ptr.h
   debugstream.h
   environment.h
   environment.C
   filefilterlist.C
   filefilterlist.h
   filename.C
   filename.h
   filetools.C
   filetools.h
   forkedcall.C
   forkedcall.h
   forkedcallqueue.C
   forkedcallqueue.h
   forkedcontr.C
   forkedcontr.h
   fs_extras.C
   fs_extras.h
   getcwd.C
   kill.C
   limited_stack.h
   lstrings.C
   lstrings.h
   lyxalgo.h
   lyxlib.h
   lyxmanip.h
   lyxtime.C
   lyxtime.h
   lyxsum.C
   mkdir.C
   os.C
   os.h
   os2_defines.h
   os2_errortable.h
   path.C
   path.h
   package.C
   package.h
   rename.C
   socktools.C
   socktools.h
   std_istream.h
   std_ostream.h
   systemcall.C
   systemcall.h
   tempname.C
   textutils.h
   translator.h
   types.h
   userinfo.C
   userinfo.h
   unlink.C
 ''')
)

# return the library
Return('supports')


Reporting what I have experimented/learned in the past 20 hours, I can
conclude that

1. (Plus) As a building tool, scons is easy to use. With SConscript
like above in every directory, I have (almost) been able to build lyx.
qt3 is handled nicely. You will not have to worry about autogen and
configure. Since scons check file content rather than time stamp,
rebuilding will certainly be reduced.

2. (Plus) Options and platform specific flags can be handled *easily*.

3. (Neutral) Standard autoconf like lib and header check is easy, but
things like libboost needs more code (certainly easier than writing in
m4).

3. (Minus) There are no standard ways for distribution lyx.  There are
codes lying around doing scons install; scons install-rpm etc. but I
will have to port them to lyx if I really want to have them.

So,

* if you guys want a bare build system that you can build lyx faster,
I can provide one in a few days. You will have to tweak a few
parameters for your system.

* if you want a cross-platform build system with all the current
options and autoconf-like tests, it will take a few weeks. And I will
most likely only work on one system and rely on others to tweak/test
others.

* if you want a working scons build; scons install etc, it will take
longer, and may never happen. although such things can be found and
adapted from many KDE/Gnome projects, and from NSIS.

What do you think?

Cheers,
Bo

Reply via email to