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

Feature Request - Upgrade to VS2015(VC++ 2015) #1983

Closed
amaitland opened this issue Mar 10, 2017 · 20 comments
Closed

Feature Request - Upgrade to VS2015(VC++ 2015) #1983

amaitland opened this issue Mar 10, 2017 · 20 comments
Milestone

Comments

@amaitland
Copy link
Member

amaitland commented Mar 10, 2017

Historically we've only supported two version of Visual Studio at any one time, it's currently VS2013 and VS2015 with default builds generated using VS2013, which ties us to VC++ 2013. With the release of VS2017 just recently it's time to consider our roadmap and when we move from VS2013 as our default to VS2015.

The only complication with this is the VC++ version being tired to the VS version. So VS2015 means the new requirement for VC++2015.

I'm not in a quite rush to make this change as VC2017 is very new, would prefer that it stabilise for a bit, so this is something to consider over the next 3-6mths.

The cef.sdk packages would be updated so by default it would only be possible to build using VS2015/17 as they get too large including three debug and release builds of the libcefwrapper

Feedback welcome.

@mountgellert
Copy link

+1

@peters
Copy link
Contributor

peters commented Mar 13, 2017

@amaitland I agree with your reasoning. Would you mind postponing the transition to VS2015 post CefSharp 57 release? A couple of weeks ago we had to manually update the .NET framework and c++ runtime for all our payment kiosks. Even with TeamViewer that was large effort 😊

@amaitland
Copy link
Member Author

Would you mind postponing the transition to VS2015 post CefSharp 57 release?

@peters I was thinking more like version 59 or 61. No plans to update before 57 😄

@peters
Copy link
Contributor

peters commented Mar 13, 2017

@amaitland Awesome 🍻

@amaitland amaitland added this to the 61.0.0 milestone Mar 17, 2017
@amaitland
Copy link
Member Author

Just for clarity, at this stage we'll look at upgrading to VS2015 after 59 has been branched, so the first release will be 61.

@amaitland
Copy link
Member Author

Just as a note, when adding support for VS2017 editbin is in a different location, See https://gitter.im/cefsharp/CefSharp?at=592af5b00a783b6c0ae28259 for details.

@amaitland
Copy link
Member Author

amaitland commented May 29, 2017

@DickvdBrink
Copy link

https://groups.google.com/a/chromium.org/d/msg/chromium-dev/Y3OEIKkdlu0/TCcT1SvwAwAJ
Maybe slightly oftopic but this might make the effort to switch to VS2015/17 a bit harder as chrome is moving to Clang

@ray007
Copy link

ray007 commented Sep 25, 2017

Can anybody tell me what's needed to make a compile with VS2015 work?
I tried to compile current CefSharp 57 with Visual Studio 2015 and couldn't make it work.

@japj
Copy link
Contributor

japj commented Oct 26, 2017

@DickvdBrink I just noticed that VS2017 has (experimental) Clang support, so that might be an option?

@japj
Copy link
Contributor

japj commented Oct 26, 2017

On a side note, VS2017 is also able to use the VS2015 compiler toolchain (it is an installation option in the VS2017 installer).

@amaitland amaitland removed this from the 61.0.0 milestone Oct 26, 2017
@amaitland
Copy link
Member Author

Maybe slightly oftopic but this might make the effort to switch to VS2015/17 a bit harder as chrome is moving to Clang

Far as I know CEF won't be changing build tools for libcef_dll_wrapper, so there's no requirement for clang, at least for now. See http://magpcss.org/ceforum/viewtopic.php?f=10&t=15322&p=35693

On a side note, VS2017 is also able to use the VS2015 compiler toolchain (it is an installation option in the VS2017 installer).

That is a big step forward in VC++ development, anyone interested in this should read the link I posted above.

Removing this from the 61.0.0 milestone as I no longer have plans to implement these changes.

@japj
Copy link
Contributor

japj commented Oct 27, 2017

Good to know about the binary compatibility with clang.

I'm currently on a clean system with VS2017 and 2015 toolset, so am unable to build and contribute at the moment. Is there a way to get the VS2013 compilers from a Windows/Platform SDK instead of installing VS2013?

On a side I was also wondering if the Managed C++ code could be split off in a seperate nuget like the binary cef distribution is currently (if that makes sense). I still need to digg further into Cefsharp, but I am looking for ways to get started with the current toolset that I have installed.

@amaitland
Copy link
Member Author

I'm currently on a clean system with VS2017 and 2015 toolset, so am unable to build and contribute at the moment.

Building with VS2015 is supported, you can likely add support for VS2017 to build using the VC++ 2015 compiler. Look at the CefSharp.props file, the history should have some clues on how this was done previously. You'll also need to resolve the editbin issue as described above.

On a side I was also wondering if the Managed C++ code could be split off in a seperate nuget like the binary cef distribution is currently (if that makes sense). I still need to digg further into Cefsharp, but I am looking for ways to get started with the current toolset that I have installed.

If the code was generated via a tool then maybe this would be practical, as it's hand written debugging would be unnecessarily difficult, development in general would be made more complex. If you cannot get it building in VS2017 then just install VS2015 Community......

@japj
Copy link
Contributor

japj commented Oct 30, 2017

With #2179 I am able to use VS2017 in combination with the VS2015 toolset.
That might be an alternative solution? Since with VS2017 you can switch between VS2015 and 2017 toolset. Then you don't need to install the whole of VS2015.

@perlun
Copy link
Member

perlun commented Dec 2, 2017

Since #2179 has landed, we are now buildable on:

  • VS2013
  • VS2015
  • VS2017

I therefore believe this issue could be closed. Official builds are still done using VS2013, that's fine with me (we can make this change at some point also, but it means the VC++ redist will need to be changed also so there is a bit of work in updating docs etc.)

Unless anyone objects, I will close this issue shortly. Ping @cefsharp/team-cefsharp

@amaitland
Copy link
Member Author

The purpose of this issue was to actually upgrade to VS2015 and subsequently changing the dependency to VC++2015. Adding support for VS2017 was an action item, wasn't the primary task. In my opinion this issue should be sanitized to remove unnecessary noise, refocusing on the core, which is upgrading to VS2015. (No need to create a new issue, the history here really isn't that important)

With the ability to bin deploy VC++, it's really a trivial technical issue, the hassle here is that people simply don't read the release notes or pay any attention to the Readme.txt that's opened when they install the Nuget packages.

Building with VS2015 is supported, you can likely add support for VS2017 to build using the VC++ 2015 compiler. Look at the CefSharp.props file, the history should have some clues on how this was done previously. You'll also need to resolve the editbin issue as described above.

When I proposed the changes that were merged in #2179 I hadn't really though about the problem in any detail, it's likely totally unnecessary to build with the v140 tool set in VS2017, the bin comparability should allow for compilation with v141. A trivial change should yield a much cleaner solution.

@amaitland amaitland added this to the 64.0.0 milestone Feb 5, 2018
@amaitland
Copy link
Member Author

amaitland commented Feb 5, 2018

master has been upgraded, the default is to now build with VS2015, support for VS2013 has been removed.

This has been attached to the 64.0.0 milestone.

TODO:

  • Upgrade documentation, VC++ 2015 is now required. (VC++ 2017 should also work)

@amaitland
Copy link
Member Author

amaitland commented Mar 6, 2018

@perlun
Copy link
Member

perlun commented Mar 6, 2018

Wonderful @amaitland, thanks a lot! 👍

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

7 participants