www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 15617] New: New project wizard creates broken projects

https://issues.dlang.org/show_bug.cgi?id=15617

          Issue ID: 15617
           Summary: New project wizard creates broken projects
           Product: D
           Version: D2
          Hardware: x86_64
                OS: Windows
            Status: NEW
          Severity: enhancement
          Priority: P1
         Component: visuald
          Assignee: nobody puremagic.com
          Reporter: turkeyman gmail.com

Here's a very simple project I made using the wizard. There are some problems
that will cause hassle for new users.

Steps to reproduce:
1. Create new C++ Win32 Console Propject -> empty project
     this creates an sln and a vcxproj
2. Add a .cpp file
3. Right click the solution -> add -> new project...
4. Add a D static lib project
5. Right click solution -> project dependencies... -> set the cpp project to
depend on the d project

At this point you see the structure in my attachment (just without any code)
You need some code to test the issues I report, so load the project I supplied
for these tests.

There are 2 problems:
---------------------

Set platform to x64, try and build.
Notice that the D project was created without an x64 platform, so it doesn't
build for x64 build configurations.
VS2015 created the C++ project with x86 and x64 platforms, but the D project
wizard only created a project with x86.

* The D project wizard should probably create configurations for either or both
platforms depending which are present in the solution.

--------------------------------------------------------------

Set the platform to x86, try and build.
Both the C++ and D projects build in this configuration, but you'll see a link
error about corrupt object.
Problem is, the x86 config is not building MSCOFF even though it's being
inserted into a solution where a C++ project is dependent on it.

* Suggest, either MSCOFF is default x86 setting. Or detect presence of other
C++ projects and set it in that case. If creating a project in a solution with
other D projects, it should probably check the state of the flag for the other
projects and follow accordingly.

--
Jan 28