1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
How I built the Windows installer (Steve Huston, May 2009)
This will mostly/all change when CMake is driving the packaging, so this
is checked into the 0.5-release branch but won't be migrated back to trunk,
at least not now.
Tools:
- WiX 3.0.4805 (http://wix.sourceforge.net/)
WiX builds the MSI install from an XML description.
- Paraffin 3.0 (http://www.wintellect.com/CS/blogs/jrobbins/archive/2008/12/22/paraffin-3-0-now-with-full-wix-3-0-support.aspx)
Paraffin generates inputs to WiX from a directory.
Plan:
The plan is to build an installer with optional components:
- Broker (includes broker, lib, common; release; Boost)
- Client (includes client, common; debug and release; .lib, .dll, .pdb; Boost
client headers: qpid/[client sys], gen/qpid/[client sys])
- Client API docs (HTML via doxygen - can I do CHM for VS2008?)
- Examples (source, Makefiles, VC projects)
- Management framework (console; agent won't build on Windows yet)
- Full source
How To Do It:
1. Build qpid.sln (broker, client, common, qmfconsole, qpidbroker) debug,
clean qpidbroker, then build release to ensure the broker exe (same name
debug and release) is available in Release.
2. Use Wordpad to make a RTF form of LICENSE; save as LICENSE.rtf
3. Used paraffin to generate the source components:
cd src
paraffin -dir .\qpid -custom CLIENT -alias src\qpid -x .svn -x agent
-x broker -x cluster -x replication -x xml -x management -x posix
-x rmda -x apr -x cyrus -ext .cpp -dirref QpidInclude -g client.wxi
paraffin -dir .\gen\qpid -custom CLIENT_GEN -alias src\gen\qpid -x .svn
-ext .cpp -dirref QpidInclude -g client_gen.wxi
4. Edit the client.wxi and client_gen.wxi files:
- Replace <Wix> with <Include> and </Wix> with </Include>
- Remove the <Fragment> and </Fragment> tags
5. Used paraffin to bootstrap the examples component, then removed undesired
files manually:
cd ../examples (over to qpid\cpp\examples)
paraffin -dir . -custom EXAMPLES -alias examples -x .svn -x .libs
-x Debug -x Release -ext .am -ext .in -ext .mk -ext .cache -ext .ncb
-ext .suo -ext .exe -ext .ilk -ext .pdb -ext .user -ext .vcproj~
-dirref APPLICATIONFOLDER -g ..\examples.wxi
6. Edit the examples.wxi file:
- Replace <Wix> with <Include> and </Wix> with </Include>
- Remove the <Fragment> and </Fragment> tags
- Take out undesired files: example/README.verify and the verify* scripts.
Don't forget to remove the group's ComponentRef entries for removed files.
7. In each vcproj file under examples/* the lib and include paths need to
be changed to match the install locations:
- Change AdditionalIncludeDirectories ..\..\src, ..\src\gen to ..\..\include
- Change AdditionalLibraryDirectories ..\..\src to ..\..\bin
8. Used paraffin to bootstrap the docs component:
cd .. (back up to qpid\cpp)
paraffin -dir docs\api\html -alias docs\api\html -custom DOC_HTML
-x .svn -ext .am -ext .in -ext .mk -ext .cache -ext .timestamp
-dirref QpidDocAPI -g docs.wxi
9. Edit the docs.wxi file:
- Replace <Wix> with <Include> and </Wix> with </Include>
- Remove the <Fragment> and </Fragment> tags
10. Make sure the actual source distro .zip (preferably) or tar.gz file
is in .. (qpid).
11. qpidc.wxs is the main WiX source. Open qpidc-installer.sln in VS2008 to
load and allow it to be built.
|