marmaladevisual-studio-2015

Marmalade with Visual Studio 2015


I'm starting to learn how to use Marmalade with Visual Studio (and am very much a newbie at this). Earlier I had VS 2013 installed and I could click on a mkb file to make VS 2013 launch containing the project defined in the mkb file. Now, foolishly perhaps, I have installed VS 2015 preview. Now this launch no longer works - no surprise I suppose - and of course the Marmalade Hub reports that there is no Visual Studio 2013.

Does anyone happen to know how to get Marmalade to work with VS 2015?


Solution

  • Playing around with procmon a little, I have found that Marmalade's build system just checks for devenv.exe in the usual location and uses it.

    Since the release notes for the VS2015 CTP specifically recommend not to install it side-by-side with VS2013, I assume you do not have VS2013 installed. You have VS2015, Marmalade works with VS2013.

    Conclusion: Fool Marmalade into thinking you have VS2013 installed, but make it use VS2015 instead.

    Steps:

    1. Create the registry entry HKLM\Software\Wow6432Node\Microsoft\VisualStudio\12.0\Setup\dbghelp_path and set it to C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\
    2. Create the file C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE\devenv.exe
    3. In the hub, set your IDE to VS2013 (or in your mkb add option buildenv="VC12")
    4. Run the mkb, then open the resulting solution (found in build_xxx_vc12\xxx_vs12.sln) in VS2015

    BONUS actually make that fake devenv.exe a launcher which runs VS2015's devenv.exe

    It's ugly and I haven't tried all the steps together, but it should work. Until Marmalade supports VS2015, that's all I've got. It's a shame their build system is so closed and restrictive, but good their checks are so simple.

    Alternatively you can make C:\Program Files (x86)\Microsoft Visual Studio 12.0\ an NTFS link to C:\Program Files (x86)\Microsoft Visual Studio 14.0\, but that may create more problems in the long-run than it solves.