|
Boost-Build : |
From: Peter Foley (pjfoley_at_[hidden])
Date: 2005-07-05 05:32:33
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