CMake status and questions

View: New views
4 Messages — Rating Filter:   Alert me  

CMake status and questions

by Jussi Pakkanen-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi all

3.1 was released so I started really looking into compliling the URE
portion with CMake. I can compile some exes such as xml2cmp nicely. I
am having some problems with dynamic library creation and could use
some clarification.

Let's take the sal library as an example. It has some subdirectories like this

some_thing
other_stuff
util

Each makefile.mk in these subdirectories (except util) builds a
"convenience library" of sorts consisting of source files listed in
SLOFILES. Then in util, these collections are merged together into one
with SH1LIB[something] directives. The way this happens is not at all
clear. The only composition operation I could find was something like
this:

SH1FILES (or LIBS or something) = ${SLB}/sal.sol

What are SLB and sal.sol? They are not documented anywhere. Neither
are some of the SH1FOO directives. More specifically:

- Is it safe to assume that the main shared library always contains
all files from all subdir SLO definitions?
- Is there a case where some target takes only SLOFILES from a single
subdir, such as only from some_thing?
_______________________________________________
Dev mailing list
Dev@...
http://lists.go-oo.org/listinfo.cgi/dev-go-oo.org

Re: CMake status and questions

by Jan Holesovsky :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Jussi,

On Friday 22 May 2009, Jussi Pakkanen wrote:

> Each makefile.mk in these subdirectories (except util) builds a
> "convenience library" of sorts consisting of source files listed in
> SLOFILES. Then in util, these collections are merged together into one
> with SH1LIB[something] directives. The way this happens is not at all
> clear. The only composition operation I could find was something like
> this:
>
> SH1FILES (or LIBS or something) = ${SLB}/sal.sol
>
> What are SLB

Generally ${SOMETHING} means 'expand the environment or dmake variable
SOMETHING'.  SLB in this case means unxlng*.pro/slb subdirectory in each
project, which is supposed to collect the .lib files.

SHL<number>LIBS is supposed to collect the .lib files so that that
SHL<number>TARGET is created.

> and sal.sol?

The line SHL11FILE=$(MISC)$/sal.slo looks like rubbish to me, the <number> in
SHL<number>FILE is not supposed to be 11, when there are no other references
to 11 in that makefile.mk.  So to answer your question - no idea :-(

> They are not documented anywhere. Neither
> are some of the SH1FOO directives. More specifically:
>
> - Is it safe to assume that the main shared library always contains
> all files from all subdir SLO definitions?

No, there might be several librararies created from the SLO's, like you can
have:

SHL1TARGET=xyz
SHL1LIBS=${SLB}$/lib1.lib ${SLB}$/lib2.lib

SHL2TARGET=abc
SHL2LIBS=${SLB}$/lib3.lib ${SLB}$/lib4.lib

The .lib's are usually so that one source subdirectory == one .lib, but even
that is not set in stone, there might be more .lib's created in one subdir
using LIBTARGET=NO, see eg. sal/textenc/makefile.mk; then the .lib's created
are controlled by LIB<number>TARGET and LIB<number>OBJFILES.

> - Is there a case where some target takes only SLOFILES from a single
> subdir, such as only from some_thing?

Like sal/typesconfig/makefile.mk?  Or?

HTH,
Kendy
_______________________________________________
Dev mailing list
Dev@...
http://lists.go-oo.org/listinfo.cgi/dev-go-oo.org

Re: CMake status and questions

by Jussi Pakkanen-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Fri, May 29, 2009 at 3:56 PM, Jan Holesovsky <kendy@...> wrote:

>> - Is there a case where some target takes only SLOFILES from a single
>> subdir, such as only from some_thing?
>
> Like sal/typesconfig/makefile.mk?  Or?

What I meant to say was "SLOFILES from some other directory than
itself".That is, does some util/makefile.mk use only one
subdirectory's result for a target.

I can now compile xml2cmp, sal, salhelper, store, registry and idlc. I
have trouble with udkapi. It consists only of idl files. I assume I
have to process them with idlc somehow. What are the actual steps that
should be done? Grepping the .mk files does not give any easy answers,
just some notes on registry entries and db files whose filenames start
with css. Any help would be great.

I have attached my work so far to this mail. Here's how you get it running:

- extract upstream OOo_3.1.0_src_core.tar.bz2 somewhere
- unpack the attached tarball on top of it
- go to source root, type 'mkdir builddir; cd builddir; cmake
-DCMAKE_BUILD_TYPE=debug ..'
- add missing dependencies, if any
- run make

Now you should have a bunch of binaries, including idlc. The files in
udkapi are stubs.

Only x86 Linux supported. If it breaks, you get to keep both pieces.

If you run 'idlc <somefile.idl>' (which I'm not really sure if you
should do, but anyway) it always errors out with 'idlc/source/idlc:
starting preprocessor failed'. Maybe it miscompiles, mislinks,
misreads data files or missomething else.


_______________________________________________
Dev mailing list
Dev@...
http://lists.go-oo.org/listinfo.cgi/dev-go-oo.org

ooo31_cmake.tar.bz2 (21K) Download Attachment

Re: CMake status and questions

by Jan Holesovsky :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Jussi,

On Saturday 30 of May 2009, Jussi Pakkanen wrote:

> What I meant to say was "SLOFILES from some other directory than
> itself".That is, does some util/makefile.mk use only one
> subdirectory's result for a target.

I believe I've seen something like that in svx, but not really sure :-(  
Please check the util/makefile.mk there, maybe it has what you are searching
for.

> I can now compile xml2cmp, sal, salhelper, store, registry and idlc. I
> have trouble with udkapi. It consists only of idl files. I assume I
> have to process them with idlc somehow. What are the actual steps that
> should be done? Grepping the .mk files does not give any easy answers,
> just some notes on registry entries and db files whose filenames start
> with css. Any help would be great.

They are defined in IDLFILES, and what to do with them is defined in
solenv/inc/target.mk

> I have attached my work so far to this mail. Here's how you get it running:
>
> - extract upstream OOo_3.1.0_src_core.tar.bz2 somewhere
> - unpack the attached tarball on top of it
> - go to source root, type 'mkdir builddir; cd builddir; cmake
> -DCMAKE_BUILD_TYPE=debug ..'
> - add missing dependencies, if any
> - run make

Thank you, will try :-)

Regards,
Kendy
_______________________________________________
Dev mailing list
Dev@...
http://lists.go-oo.org/listinfo.cgi/dev-go-oo.org