premake / premake/premake-core

PR 829 broke the ability to edit generated vcxproj files in Visual Studio

Open
#1,209 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C
Stars
3.6k
Forks
654
Avg merge
1d 1h
Merged PRs (30d)
13

Description

Brought this issue over from the forums since that is apparently dead.

I'm trying to understand why this change was made?

Old premake prior to this change:
<AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">/ZW /EHsc %(AdditionalOptions)</AdditionalOptions> <AdditionalOptions Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">/ZW /EHsc %(AdditionalOptions)</AdditionalOptions>

New premake
<AdditionalOptions>/ZW /EHsc %(AdditionalOptions)</AdditionalOptions>

(Assuming that there are only Debug and Release configurations)

Although visual studio can certainly build with settings made this way (with reduced Conditional configurations), the IDE does not know how to actually EDIT these settings.

I know, your question would be - "you're using a project generation took like premake, so why would you need to edit the settings in Visual Studio"? Well, one off changes to experiment before going into premake to hard bake something are a normal part of operation. We always aim for full compatibility with Visual Studio.

In the forums, Tom mentioned that this was done for using premake "at scale". Is this a filesize optimization? Can someone explain the logic behind this change? The PR mentions nothing about any of this.

I would like to see an option added to "maintain read/write compatibility". Specifically, it should be possible to have premake generate a project file that will not get modified by the target environment on load (and immediately require a save), and will allow full compatibility with that target environment.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing PR 829 and comparing the old and new generated vcxproj snippets in Visual Studio. Determine how an option could preserve read/write compatibility without the target environment modifying the project on load. Done means generated projects remain editable in Visual Studio and support the requested compatibility behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
xml
Domain
build-system, developer-experience
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.