[opensource-dev] Is 'STANDALONE' confusing?

Philippe (Merov) Bossut merov at lindenlab.com
Wed Mar 2 22:45:10 PST 2011


Hi,

We passed the time limit set by Oz on OPEN-11, but, as I'm working on
STORM-1023 (née OPEN-4) which is a case of NOT STANDALONE that actually
requires some "do it yourself libs", I put some thoughts in this.

The build basically covers 2 very general case wrt 3rd party libs:
- use LL prebuilt binaries: this is the "normal" case, the one that was
initially coded and used by everyone in LL. In that case, 3rd party libs and
headers  packaged by LL (possibly using some patches or some special compile
options) are fetched and now installed in
build-<plat>/packages/{include,lib}.
- do not use LL prebuilt binaries: this is the case where a dev wants to use
its own set of built libs or system available libs. In that case (named
"STANDALONE" which I always interpreted as "I'm on my own"), some special
logic in Find<package>.cmake will try to locate the libs and includes in
some well known probable folders.

In case where you cannot (or don't want to) use the LL prebuilt binary (e.g.
fmod) and/or do not have them in some system folder (Find<package>.cmake
won't find them), you can (or should) specify a path using:
-D<package>_INCLUDE_DIR=<path> -D<package>_LIBRARY=<path>

I really think this covers all reasonable cases.

Dropping privately built 3rd party libs though was always a bit of a black
art. Now that most 3rd party libs have a public repo available at
lindenlab/3p-<package> though, you have another possibility which is to
build the package yourself and point autobuild.xml to it using a
"file:///<path>" url (don't forget to also change the md5 hash...). That
will extract libs and includes and drop them in build-<plat>/packages. I
experimented with that in OPEN-6 and it works fine.

That last trick though will not work if STANDALONE is specified which makes
me think now that STANDALONE really means "USE_SYSTEM_LIBS".

Cheers,
- Merov
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.secondlife.com/pipermail/opensource-dev/attachments/20110302/62d6bfd9/attachment.htm 


More information about the opensource-dev mailing list