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

VS2012Express support on windows 8 #149

Closed
wants to merge 5 commits into from

Conversation

fredericosilva
Copy link
Contributor

I run across this problem while compiling node-expat xmppo/node-expat#50, now is compiling well.

The VS2012 Express installs windows 8 SDK, so no need to manual install it.

Can you add this info on the readme?

btw, I thing is also possible to add support for VC2010.

Thank you.

var cp = spawn('reg', ['query', 'HKLM\\SOFTWARE\\Wow6432Node\\Microsoft\\VCExpress\\11.0\\Setup\\VC', '/v', 'ProductDir'])
cp.on('exit', function (code) {
hasVC2012Express = (code === 0)
console.log('hasVC2012Express', hasVC2012Express);
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

change this to log.verbose() instead of console.log().

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that was just a debug print that I forgot to remove.

@TooTallNate
Copy link
Contributor

@mscdex can you take a look as well if possible?

@mscdex
Copy link
Contributor

mscdex commented Oct 19, 2012

I haven't installed VC2012 Express yet, but just from looking over the changes everything seems almost fine.

The one issue that has to be addressed yet is a check first for 32-bit VC2012 Express and then 64-bit (like how is currently done for VC2010 Express), because Windows 8 will also have 32-bit editions.

@fredericosilva
Copy link
Contributor Author

I'm going to try it here on a clean windows 8 32 bits system and add that check.
Sent from my BlackBerry

-----Original Message-----
From: Brian White notifications@github.com
Date: Thu, 18 Oct 2012 19:00:08
To: TooTallNate/node-gypnode-gyp@noreply.github.com
Reply-To: TooTallNate/node-gyp reply@reply.github.com
Cc: Frederico Silvafrederico.silva@gmail.com
Subject: Re: [node-gyp] VS2012Express support on windows 8 x64 (#149)

I haven't installed VC2012 Express yet, but just from looking over the changes everything seems almost fine.

The one issue that has to be addressed yet is a check first for 32-bit VC2012 Express and then 64-bit (like how is currently done for VC2010 Express), because Windows 8 will also have 32-bit editions.


Reply to this email directly or view it on GitHub:
#149 (comment)

@fredericosilva
Copy link
Contributor Author

Is now working on 32bit and 64bit windows 8. Is better to use the VS2012 Express for Windows Desktop because it already contains the proper windows 8 sdk. I tried first with the VS2012 Express for Windows 8 but I was forced to reinstall de windows 8 sdk in other to make it work.

@mscdex
Copy link
Contributor

mscdex commented Oct 20, 2012

Hrmm.. if they're offering it both ways, maybe we should add a check for the Windows 8 SDK just in case?

@fredericosilva
Copy link
Contributor Author

The problem is that both version install the sdk, on the "VS2012 for windows 8" there was a missing header file "WinSock2.h" after the installation. Should we check for that file to validate the sdk installation?

@mscdex
Copy link
Contributor

mscdex commented Oct 20, 2012

According to a reply about this, it seems the "for Windows 8" package is for Metro applications only. Why don't they label it as such then? :-\

Anyway, maybe there is a registry value we can check to differentiate between the Metro and Desktop versions of VS2012 Express and display a helpful error if the Metro version is installed?

@fredericosilva
Copy link
Contributor Author

I found it on registry. The problem here is that it also works in a setup with Metro version + sdk. Let me dig a bit more on the registry.

@fredericosilva
Copy link
Contributor Author

I think our best shot here is to look for the InstallationFolder on registry and then confirm if the WinSock2.h is there or not. What do you think about this approach?

On my 32bit system for example:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0]
"InstallationFolder"="C:\Program Files\Windows Kits\8.0"

\Include\um\WinSock2.h

@mscdex
Copy link
Contributor

mscdex commented Oct 20, 2012

When you install the "VS2012 Express for Windows Desktop" version, is HKLM\SOFTWARE\Microsoft\Microsoft SDKs\Windows\v8.0 (or v0.8A, etc) set?

@fredericosilva
Copy link
Contributor Author

Hello guys, finally I had some time to try those 3 configuration.

Windows Software Development Kit (SDK) for Windows 8
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Products]
"{60D5EF2A-4E0C-2C30-38F6-59C26E134F4A}"="Windows Software Development Kit x86" <------ What we need
"{D11F66FF-82B3-DDB8-1146-525370552BE1}"="Windows Software Development Kit for Metro style Apps x86"
"{512957F0-B211-C50A-C1FC-6867FC3348A1}"="Windows Software Development Kit Redistributables x86"
"{23176E97-26CB-C72A-19EB-BFB21AC1D15A}"="Windows Software Development Kit DirectX x86 Remote x86"
"{42F61556-29ED-8122-F39E-6F04EA5FF279}"="Windows Software Development Kit for Metro style Apps DirectX x86 Remote x86"
"{E14DDED2-919B-FCCB-84AC-5ABB6D182D46}"="Kits Configuration Installer x86"
"{D4F102C5-EEA1-CAE1-8E67-1A7FCE27F673}"="Windows Software Development Kit EULA x86"
Visual Studio 2012 Express for Windows Desktop
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Products]
"{D11F66FF-82B3-DDB8-1146-525370552BE1}"="Windows Software Development Kit for Metro style Apps x86"
"{42F61556-29ED-8122-F39E-6F04EA5FF279}"="Windows Software Development Kit for Metro style Apps DirectX x86 Remote x86"
"{60D5EF2A-4E0C-2C30-38F6-59C26E134F4A}"="Windows Software Development Kit x86" <------ What we need
"{23176E97-26CB-C72A-19EB-BFB21AC1D15A}"="Windows Software Development Kit DirectX x86 Remote x86"
Visual Studio Express 2012 for Windows 8
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows Kits\Installed Products]
"{D11F66FF-82B3-DDB8-1146-525370552BE1}"="Windows Software Development Kit for Metro style Apps x86"
"{42F61556-29ED-8122-F39E-6F04EA5FF279}"="Windows Software Development Kit for Metro style Apps DirectX x86 Remote x86"
"{CEE1F4AA-FAAE-6574-8AE6-93727FD6C246}"="Windows App Certification Kit x86 x86"
"{AD17194D-3829-E59E-99A4-EC47097722CA}"="Windows App Certification Kit Native Components x86"
"{C81452EB-CBCF-B8EB-3124-48C5B3D506B0}"="Windows Runtime Intellisense Content - en-us x86"

We need "Windows Software Development Kit x86". I'm going do add the check.

@TooTallNate
Copy link
Contributor

@fredericosilva @mscdex I appreciate you looking into this guys. Let me know when it's ready. I don't yet have Windows 8 to test on so I'm basically just taking your word for now.

@fredericosilva
Copy link
Contributor Author

Should we give a error msg when no SDK is detected?

@TooTallNate
Copy link
Contributor

Absolutely! But perhaps in a second pull request after this one :) The
output that msbuild gives when the SDK isn't installed is very cryptic, and
is the most common help request. I've been meaning to get an earlier and
more helpful error for that for a while now.

On Tue, Oct 23, 2012 at 9:49 AM, Frederico Silva
notifications@github.comwrote:

Should we give a error msg when no SDK is detected?


Reply to this email directly or view it on GitHubhttps://github.com//pull/149#issuecomment-9709260.

@fredericosilva
Copy link
Contributor Author

Ok, I'll make a new pull request after this one :)

@fredericosilva
Copy link
Contributor Author

@mscdex do you think is ok merge?

@mscdex
Copy link
Contributor

mscdex commented Oct 28, 2012

LGTM

@TooTallNate
Copy link
Contributor

Thanks @fredericosilva! Merged in 63a3426.

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

Successfully merging this pull request may close these issues.

3 participants