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

Auto-detect Visual Studio 2019 platform #201

Merged
merged 3 commits into from Feb 26, 2020

Conversation

gjasny
Copy link
Contributor

@gjasny gjasny commented Dec 13, 2019

The CMake Visual Studio 2019 Generator does not support the Win64 or ARM suffix on the generator name. Instead the generator platform must be set explicitly via the platform parameter.

Before this patch the platform was not set at all which results in CMake picking the host architecture. This obviously leads to mismatches if a 32bit NodeJS is used on a 64bit Windows.

Right now the platform parameter is only applied for Visual Studio 16 because cmake-js does not specify a minimum CMake version. If at least CMake 3.1 (released December 2014) would be required the platform selection code could be made unconditional and thus forward-compatible with newer CMake Visual Studio generators.

Thanks to @WopsS for #177 which added platform parameter support.

WopsS and others added 2 commits December 13, 2019 22:25
VS 2019 doesn't have the platform name in its name anymore, to generate the files for a specific platform you need to use "-A" option when invoking CMake.
The CMake Visual Studio 2019 Generator does not support the Win64
or ARM suffix on the generator name. Instead the generator platform
must be set explicitly via the platform parameter.

Before this patch the platform was not set at all which results
in CMake picking the host architecture. This obviously leads
to mismatches if a 32bit NodeJS is used on a 64bit Windows.

Right now the platform parameter is only applied for Visual
Studio 16 because cmake-js does not specify a minimum CMake
version. If at least CMake 3.1 (released December 2014)
would be required the platform selection code could be made
unconditional and thus forward-compatible with newer CMake
Visual Studio generators.

Thanks to @WopsS for cmake-js#177 which added platform parameter support.
@gjasny
Copy link
Contributor Author

gjasny commented Feb 24, 2020

I published a cmake-js version containing this patch as @gjasny/cmake-js. We successfully use it with Visual Studio 2017 and 2019 generators as well as Win32 and x64 target platforms.

@unbornchikken
Copy link
Member

If you could make a readme section in this PR, I will make it into a release.

@unbornchikken unbornchikken merged commit 34170dc into cmake-js:master Feb 26, 2020
@unbornchikken
Copy link
Member

I try to make a release tonight (UTC).

@unbornchikken
Copy link
Member

Released as of 6.1

@gjasny
Copy link
Contributor Author

gjasny commented Feb 27, 2020

Thank you for working on that!

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.

None yet

3 participants