premake / premake/premake-core
Add support for CopyToOutputDirectory for VS C++ projects
Nobody has claimed this yet.
- Dominant language
- C
- Stars
- 3.6k
- Forks
- 654
- Avg merge
- 1d 1h
- Merged PRs (30d)
- 13
Description
What problem will this solve?
Projects using DLL not present in the system will not load them if not copied alongside the executable
What might be a solution?
Add a flag to enable "CopyToOutputDirectory" or add it always
What other alternatives have you already considered?
Currently, we SED the vcxproj after generation
Anything else we should know?
This:
<ItemGroup>
<None Include="..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264com_AVX.dll" />
<None Include="..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264com_SSE2.dll" />
<None Include="..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264com_SSE4_2.dll" />
<None Include="..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264com_SSSE3.dll" />
<None Include="..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264dec_AVX.dll" />
<None Include="..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264dec_SSE2.dll" />
<None Include="..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264dec_SSE4_2.dll" />
<None Include="..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264dec_SSSE3.dll" />
<None Include="..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264enc_AVX.dll" />
<None Include="..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264enc_SSE2.dll" />
<None Include="..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264enc_SSE4_2.dll" />
<None Include="..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264enc_SSSE3.dll" />
</ItemGroup>
vs
<ItemGroup>
<None Include=".\..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264com_AVX.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include=".\..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264com_SSE2.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include=".\..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264com_SSE4_2.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include=".\..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264com_SSSE3.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include=".\..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264dec_AVX.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include=".\..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264dec_SSE2.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include=".\..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264dec_SSE4_2.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include=".\..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264dec_SSSE3.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include=".\..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264enc_AVX.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include=".\..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264enc_SSE2.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include=".\..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264enc_SSE4_2.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include=".\..\SourcesMeiWebRtc\ExternalCodecs\h264_lib\lib_win\h264enc_SSSE3.dll">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by locating the Visual Studio C++ project generation entry point that emits the shown .vcxproj ItemGroup and None entries. Compare the current generated XML with the requested CopyToOutputDirectory elements, then identify how the behavior should be enabled or applied consistently. Done means generated projects copy the referenced DLLs to the output directory without post-generation edits.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- build-system
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100