On 28/6/09 01:43, Vladimir Panteleev wrote:
As recently posted by WB, we should get a Windows installer project
going. I think we should first discuss what this installer would
contain, which installer framework to use, etc.
In my opinion, the Windows installer's goal is somewhat different than a
Linux installer. I've heard many people say that they'd love a simple
installer that installs them everything including a build tool, IDE,
debugger, etc., so perhaps it should allow installing more than just the
barebones DMD. However, we don't want to include things that many people
won't use either. Therefore, I was thinking that the installer could
download and install components (libraries, text editors/IDEs or plugins
for them, build tools) from the web if the user ticks some corresponding
checkboxes.
Further ideas:
* support Windows' "change" option in Add/Remove Programs to allow
removing, reinstalling and updating components
* when installing an editor, associate .d files with it
* adjust PATH to include DMD and any selected build tools
* adjust DMD search paths to point to any additional libraries (Tango,
DSSS etc.)
* DSSS "net install" integration? (show a checkbox list of libraries)
Going further with this idea, we could remove DMD itself from the
installer and allow the user to install DMD1/DMD2 as a component, thus
creating a "meta-installer" to manage the D toolchain.
As for the installer system: I'm familiar with NSIS and InnoSetup, both
are open-source. NSIS is extensible and can thus download files from the
Internet, but AFAIK InnoSetup can't (even though it has a more flexible
scripting language). Windows Installer is also used by some open-source
software like TortoiseSVN.
I guess if we want to do this properly, a full install wizard should be
there, allowing you to simply click 'Next' to get a full working
toolchain: Compiler (probably dmd), Build tool (one of bu[il]d, rebuild,
xfbuild), and a base set of libraries. There should also be an advanced
option to pick between D1/2, pick compiler, build tool, libraries,
phobos/tango etc. There could also be an option to install an
ide/debugger which a lot of people will find useful.