Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Windows installer #1754

Closed
9il opened this issue Sep 12, 2016 · 12 comments
Closed

Windows installer #1754

9il opened this issue Sep 12, 2016 · 12 comments

Comments

@9il
Copy link

9il commented Sep 12, 2016

LDC Windows installer is a key problem for Mir. LDC will be recommended compiler starting with the next release. I don't use Windows, but many scientist and students use it, and visual installer is what windows users expect. Please add it!

@9il
Copy link
Author

9il commented Sep 12, 2016

Maybe it can be based on DMD installer

@kinke
Copy link
Member

kinke commented Sep 17, 2016

I don't see a real need for an installer, and it surely is no key issue. Windows users in general may expect a fancy installer, but our target are developers, let's not forget about that.

So since you Mir devs don't use Windows, I'd say let actual Windows users formulate what they want. The current package is a portable archive which auto-detects a required Visual Studio/Visual C++ Build Tools installation.

The only nice-to-haves for an installer I can think of would be

  • the prerequisites check (Visual C++ 2015),
  • the ability to uninstall LDC directly via the control panel and
  • storing the LDC location somewhere inside the registry, so that VisualD etc. can autodetect it.

@9il
Copy link
Author

9il commented Sep 17, 2016

our target are developers, let's not forget about that

In ideal world, yes. But most of R, numpy and ML users don't know what is object file. Mir's target are scientist, data researchers. They are engineers but not developers.

The current package is a portable archive which auto-detects a required Visual Studio/Visual C++ Build Tools installation.

Could you please describe in details. This may be fine for now, but I don't see step-by-step instruction for Windows users (they really need it).

@kinke
Copy link
Member

kinke commented Sep 17, 2016

I've updated the Windows README.txt a short while ago, so I hope it's sufficient for all needs, although I clearly had regular developers in mind. ;)

So your target group probably doesn't have Visual Studio 2015 installed. In that case, I'd recommend the stand-alone Visual C++ Build Tools 2015. LDC needs the MS linker and libraries on Windows (and probably the Visual C++ 2015 runtime for LDC itself, I don't think we link against the static libs).
After installing this single prerequisite, the LDC archive just needs to be extracted somewhere (it's portable, so the location doesn't matter). It just works out-of-the-box by auto-detecting the Visual C++ installation; just use the ldc2.exe/ldmd2.exe executables in the bin subdirectory.
Afaik, there's no regular multilib (32/64-bit) release for Windows yet, so currently there are 2 separate packages. I hope @redstar will merge them for 1.1 as already done for the CI builds.

@dnadlinger
Copy link
Member

I do think there is considerable value in a "hands-free" Windows installer. It should auto-detect – and otherwise automatically pull down – the MSVC Build Tools, and add LDC, RDMD and Dub to the path.

@p0nce
Copy link
Contributor

p0nce commented Nov 3, 2016

To do this maybe merge the Win32 and Win64 release first? This will make the installation even easier. Consumer Windows programs benefit from having both 32-bit and 64-bit builds.

@kinke
Copy link
Member

kinke commented Nov 3, 2016

The 1.1 beta3 Win64 package is a multilib one. I.e., -m32 and -m64 works out of the box, but the LDC binaries themselves are x64 only.

@9il
Copy link
Author

9il commented Nov 13, 2016

Can we add a chocolatey package for LDC? This would be awesome because it will allow to create a chocolatey mir-runtime package. GLAS should be precompiled. The dub package provides headers only.

@JohanEngelen
Copy link
Member

Chocolatey package looks like low hanging fruit. Here is the installation script from the dmd package: https://chocolatey.org/packages/dmd (click the "show" link behind "tools\chocolateyInstall.ps1" in the "files" section):

$packageName = 'dmd'
$version = '2.071.0'
$url = 'http://downloads.dlang.org/releases/2.x/{0}/dmd.{0}.windows.zip' -f $version
$installDir = Split-Path -parent $MyInvocation.MyCommand.Definition
 
Install-ChocolateyZipPackage "$packageName" "$url" "$installDir"

@kinke
Copy link
Member

kinke commented Dec 12, 2016

It'll have to be maintained though. I quickly looked at the Chocolatey stuff, and I must say I'm not impressed. So it's basically a repository of versioned install scripts with some meta infos and a basic dependency management system. So basic, that one cannot define a dependency to one of 2 mutually exclusive packages (VS 2015 or VC++ Build Tools). And I'm pretty sure an existing VS/Build Tools installation NOT performed via Chocolatey won't be detected.
So if someone else wants to create and maintain a package there, fine, but I'd rather not.

@JohanEngelen
Copy link
Member

Further ideas for a Windows Installer: offer to install VisualD if it detects VisualStudio installed
on the system like DMD does. https://forum.dlang.org/post/mailman.3584.1498191429.31550.digitalmars-d@puremagic.com

@kinke
Copy link
Member

kinke commented Jun 25, 2021

Resolved with #3601.

@kinke kinke closed this as completed Jun 25, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants