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

BaseIntermediateOutputPath for C++ projects #2308

Open
kokole opened this issue Jul 16, 2017 · 4 comments
Open

BaseIntermediateOutputPath for C++ projects #2308

kokole opened this issue Jul 16, 2017 · 4 comments
Labels

Comments

@kokole
Copy link

kokole commented Jul 16, 2017

Seems like it's not supported for C++ projects.

@am11
Copy link
Member

am11 commented Jul 25, 2017

vcxprojs support IntDir for the same purpose, for instance:

<PropertyGroup>
  <OutDir>$(SolutionDir)bin\$(Configuration)\</OutDir>
  <IntDir>$(OutDir)obj\</IntDir>
</PropertyGroup>

In csproj, fsproj and vbproj etc., if we try to use these, they get overridden by the commons. The consumer-facing properties are OutputDir and BaseIntermediateOutputPath.

Though not a show-stopper, it would be nice to have unified syntax across the board: either OutputDir / BaseIntermediateOutputPath or the shorter ones; OutDir / IntDir.

@Nirmal4G
Copy link
Contributor

We could use IntDir and OutDir internally and use OutputPath properties as user facing ones.

I think NETFX 2.0 targets had IntDir instead of IntermediateOutputPath.

@puxu-msft
Copy link

The problem still exists on VS 2022, I debugged with this for hours, and found the definition in Microsoft/VC/v170/Microsoft.Cpp.MSVC.Toolset.Common.props

<IntDir Condition="'$(IntDir)'=='' AND '$(IntermediateOutputPath)'!=''">$(IntermediateOutputPath)</IntDir>
<IntDir Condition="'$(IntDir)'=='' AND '$(IntermediateOutputPath)'=='' and '$(Platform)' == 'Win32'">$(Configuration)\</IntDir>
<IntDir Condition="'$(IntDir)'=='' AND '$(IntermediateOutputPath)'=='' and '$(Platform)' != 'Win32'">$(Platform)\$(Configuration)\</IntDir>

Before this, there is no process from BaseIntermediateOutputPath to IntermediateOutputPath. And I found no helpful pages in MSDN..

@Nirmal4G
Copy link
Contributor

VC Team should update their targets to remove usages of IntermediateOutputPath! This property is no longer present in Common props. The BaseIntermediateOutputPath is in Common props but I'm proposing to it move it into targets and replace it with a common BuildDir since we already have a PublishDir (should be promoted to top-level folder instead!). This will be a breaking change but one that I think is beneficial in the long run.

@AR-May AR-May added the triaged label Feb 21, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

5 participants