[nem-en] Building msi
Kamil Skalski
kamil.skalski at gmail.com
Sun Jun 3 17:47:35 CEST 2007
Hello!
I thought that since no big features are being implemented on the
horizon currently, we could do the release. So I wanted to check if we
can build the MSI installer using the new Wix framework, which Pavel
Bludov provided to us. However I lost my way in all build
dependencies, paths to set up, etc... It is quite unfortunate that we
cannot all use one way of creating build infrastructure, like
configure shell script + Makefile + build shell script or maybe a
group of MSBuild files :/ I think that after we solve all the issues
I will add the necessary logic to have a single 'go.sh' script and use
only the paths configured by 'configure' script.
But let's get to the point, after looking at misc/packages/wix/ and
running buildSetup.cmd here I stuck with the lack of required VS
integration files - mainly project templates and the .xml
documentation files for all dlls.
I can see that project template files are zipped from some directories
in vsplugin repository... so they should be possible to generate.
However I had problems with documentation xmls - it seems that
building them by MSBuild task is impossible, after adding
<DocumentationFile>$(OutputPath)$(AssemblyName).xml</DocumentationFile>
to Nemerle.Compiler.Utils.csproj
the compiler option generated is:
/doc:"bin\Release\Nemerle.Compiler.Utils.xml;bin\Release\Nemerle.Compiler.Utils.xml"
which is not accepted by MSBuild later:
c:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Microsoft.Common.targets(2652,39):
error MSB4115: The "exists" function only accepts a scalar value, but
its argument "@(DocFileItem)" evaluates to
"bin\Release\Nemerle.Compiler.Utils.xml;bin\Release\Nemerle.Compiler.Utils.xml"
which is not a scalar value.
Done building target "_CheckForCompileOutputs" in project
"Nemerle.Compiler.Utils.csproj" -- FAILED.
My vision for building msi is:
- compile whole nemerle tree (currently it is 'make' command in root
dir, but we also need to generate documentation xml, so 'make doc'
will be needed also)
- compile whole vsplugin subtree with following parameters:
- Nemerle variable set to ncc/out.stage3/
- Configuration = Release
- the build should also prepare xml documentation files
- somehow force the build process to also prepare all VS integration
files, like project templates
- fire a script (something like misc/packages/msi/makedist.sh, which
would copy all necessary binaries and resources to dist/* directory
- fire a script to prepare a final msi
One more thought - maybe separating Nemerle msi from Nemerle VS
Integration msi would be a good idea? Probably it would be much easier
to build.
--
Kamil Skalski
http://nazgul.omega.pl
More information about the devel-en
mailing list