Boost logo

Boost-Build :

From: Peter Foley (pjfoley_at_[hidden])
Date: 2005-07-07 05:43:25


(Apologies for resending, I realise that I forgot to change the subject from
the digest subject)

Hi Volodya,

Comments inline.

> Message: 6
> Date: Mon, 4 Jul 2005 18:35:25 +0400
> From: Vladimir Prus <ghost_at_[hidden]>
> Subject: Re: Re: Adding a new compiler and linker for use with BJAM.
>
>
> Just tell me what's the value of -out parameter should be? Is
> that name of
> target file without extension (then use '-out $(<:B)' ), or
> something else?

Sorry I should have been more clear I was just stating that I added that
(the -out parameter) to allow light to build the MSI file. When you have
multiple object files it does not know which name to give the final MSI
file, so the -out tells it the file name (and in this case it also tells it
where to put that file).

At the moment this is working (As far as I can tell) it is building
boost.msi and all the WIX object files are going into the right directory.

To do a basic test I have created a .v2 jamfile. It looks like this atm:

------

# WIX Boost installer Jamfile

project wix_boost_inst
: source-location ../src
: build-dir ./msi
;

msi boost
: installer.wxs
./gui/ui.wxs
./tools/bjam.wxs
:
;
------

Running bjam in the build directory it builds the MSI file and it is called
"boost.msi" which gets put in the msi/wix/debug directory.

>
> You only need to replace
>
> generators.register-composing wix.compile : WIX_SOURCE :
> WIX_OBJECT ;
>
> with
>
> generators.register-standard wix.compile : WIX_SOURCE :
> WIX_OBJECT ;
>
> I believe.
>

/cheer!!!! That worked!! Thanks =p. Although it appears to be compiling
the files 1 at a time ie instead of doing something like:

candle.exe ../src/installer.wxs ../src/gui/ui.wxs
../src/tools/bjam.wxs

It seems to be calling candle for each individual wxs file:

candle.exe ../src/installer.wxs
candle.exe ../src/gui/ui.wxs
candle.exe ../src/tools/bjam.wxs

Is there anyway I can pass to candle.exe all the file names at once?

>
> What's "pattern matching"? The process used to select generators. Then
>
>
> http://boost.org/boost-build2/doc/html/bbv2/reference/generators.html
>
> is the only document we have, but it has a big warning about being
> out-of-date. The comments at the top of generators.jam might be more
> relevant.
>

Its ok, I wasn't sure if I needed to write something to tell bjam how to
find wxs files. So I was going to do some reading to work out how to do it.

Next thing for me is to work out how to specify a compiler or linker option
in the jam file (user jam file) and have that passed to candle.exe and
linker.exe depending on the option.

For candle I will need to pass to candle.exe
* Define variables
* Include directories
* Output directory (for object files)

And for Light.exe I will need to pass
* Output Directory (for MSI file)
* Name of MSI file
* Path to source files (incase it needs to find any binary to be
included in the MSI file)

Below is the help output from candle.exe and light.exe.

For Candle.exe:

------

D:\Development\boost\tools\install\msi_wix\build>candle /?
Microsoft (R) Windows Installer Xml Compiler version 2.0.2912.0
Copyright (C) Microsoft Corporation 2003. All rights reserved.

usage: candle.exe [-?] [-nologo] [-out outputFile] sourceFile [sourceFile
...]

-d<name>=<value> define a parameter for the preprocessor
-p<file> preprocess to a file (or stdout if no file supplied)
-I<dir> add to include search path
-nologo skip printing candle logo information
-out specify output file (default: write to current directory)
-pedantic:<level> pedantic checks (levels: easy, heroic, legendary)
-ss suppress schema validation of documents (performance boost)
-ust use small table definitions (for backwards compatiblity)
-trace show source trace for errors, warnings, and verbose messages
-ext extension (class, assembly), should extend CompilerExtension
-zs only do validation of documents (no output)
-wx treat warnings as errors
-w<N> set the warning level (0: show all, 3: show none)
-sw suppress all warnings (same as -w3)
-sw<N> suppress warning with specific message ID
-v verbose output (same as -v2)
-v<N> sets the level of verbose output (0: most output, 3: none)
-? this help information

Common extensions:
.wxs - Windows installer Xml Source file
.wxi - Windows installer Xml Include file
.wxl - Windows installer Xml Localization file
.wixobj - Windows installer Xml Object file (in XML format)
.wixlib - Windows installer Xml Library file (in XML format)
.wixout - Windows installer Xml Output file (in XML format)

.msm - Windows installer Merge Module
.msi - Windows installer Product Database
.mst - Windows installer Transform
.pcp - Windows installer Patch Creation Package

For more information see: http://wix.sourceforge.net

------

And for Light.exe

------

D:\Development\boost\tools\install\msi_wix\build>light /?
Microsoft (R) Windows Installer Xml Linker version 2.0.2912.0
Copyright (C) Microsoft Corporation 2003. All rights reserved.

usage: light.exe [-?] [-b basePath] [-nologo] [-out outputFile] objectFile
[objectFile ...]

-ai allow identical rows, identical rows will be treated as a
warning
-au (experimental) allow unresolved references, will not create a
valid output
-b base path to locate all files (default: current directory)
-cc path to cache built cabinets (will not be deleted after
linking)
-ext extension (class, assembly), should extend SchemaExtension or
BinderExtension
-fv add a 'fileVersion' entry to the MsiAssemblyName table (rarely
needed)
-i specify the base output path for uncompressed images (default:
-out parameter)
-loc read localization string sfrom .wxl file
-nologo skip printing light logo information
-notidy do not delete temporary files (useful for debugging)
-reusecab reuse cabinets from cabinet cache
-out specify output file (default: write to current directory)
-pedantic:<level> pedantic checks (levels: easy, heroic, legendary)
-xo output xml instead of MSI format
-sadmin suppress default admin sequence actions
-sadv suppress default adv sequence actions
-sa suppress assemblys: do not get assembly name information for
assemblies
-sf suppress files: do not get any file information (equivalent to
-sa and -sh)
-sh suppress file info: do not get hash, version, language, etc
-sl suppress layout
-ss suppress schema validation of documents (performance boost)
-sui suppress default UI sequence actions
-sv suppress intermediate file version mismatch checking
-ts tag sectionId attribute on tuples (ignored if not used with
-xo)
-ust use small table definitions (for backwards compatiblity)
-wx treat warnings as errors
-w<N> set the warning level (0: show all, 3: show none)
-sw suppress all warnings (same as -w3)
-sw<N> suppress warning with specific message ID
-v verbose output (same as -v2)
-v<N> sets the level of verbose output (0: most output, 3: none)
-? this help information

Environment variables:
WIX_TEMP overrides the temporary directory used for cab creation, msm
exploding, ...

Common extensions:
.wxs - Windows installer Xml Source file
.wxi - Windows installer Xml Include file
.wxl - Windows installer Xml Localization file
.wixobj - Windows installer Xml Object file (in XML format)
.wixlib - Windows installer Xml Library file (in XML format)
.wixout - Windows installer Xml Output file (in XML format)

.msm - Windows installer Merge Module
.msi - Windows installer Product Database
.mst - Windows installer Transform
.pcp - Windows installer Patch Creation Package

For more information see: http://wix.sourceforge.net

D:\Development\boost\tools\install\msi_wix\build>

------

Thanks for the help you have already provided.

Peter.

 


Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk