-
Notifications
You must be signed in to change notification settings - Fork 1.5k
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
Fix #13043 (Added Support for Shared Items Projects) #6286
Conversation
Thanks for a contribution. I will take a closer look in the next few days. Please add a test with an example project to Also some initial comments inline. |
That can be resolved by re-basing the branch on the latest head. |
Thank you for the feedback, I'll try to implement it this week. |
fb382dd
to
d1d4697
Compare
I had the same issue as my merge, but my oversight was that my initial changes came from the 2.11 release branch, meaning it includes the few commits made for the official release. Still working on adding tests. |
006bff3
to
49e9dba
Compare
Thanks for adding the project. This will help understanding things. It is probably sufficient to have only a single configuration in it. That should make things easier to read as well. |
Fixed in 10fb4e5 I also added a (crude) test in d34d14c. Seems to run fine on my machine, but I'm not sure I set it up correctly. I seem to have broken the "changes requested" with my rebase + force push. Sorry! |
Sorry for the late reply. Please fix the CI and I will finally have a proper look. |
My apologies, I borked the pipeline with the code removed in a00dd2a. |
It happens. As the CI seems to be happy now, I hope to finish up the review this week. |
At a glance this looks very interesting. Please make the CI happy. 👍 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nits
…SolutionDir)/libs. Without this change, the include path will be "/libs", which is not the same as "./libs" or "libs".
…items project file and making the project redirect paths accordingly
…hared items project implementation)
97d5bea
to
7f84402
Compare
@firewave any updates on this? I fixed the merge conflicts that were introduced over time. Pipeline is happy-ish (pipeline used to work fine. Now it's failing a test unrelated to my changes, so I'm not sure how to address this) |
Sorry about that. I keep running into existing (long-standing) issues to look into (which mostly block my own in-progress stuff) and forgetting looking into other peoples stuff.
It is all fine. That is a known flake. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
more nits
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
some more nits.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
lgtm
@DevFelixFaber If nobody has complaints in 2-3 days I think we can merge this. Feel free to ping me.. |
Seems like there are no complaints! @danmar pinging as requested. Thanks for the review(s) :) |
Trac ticket: https://trac.cppcheck.net/ticket/13043 |
At work (Areus Gmbh), we use Shared Items Projects in order to deduplicate code. In contrast to conventional project files (
.vcxproj
), the compilation configuration is set by the "includee", which makes the code-reuse of the project more flexible.This pull-request adds support for Shared Items Projects (
.vcxitems
) in Visual studio projects / solutions.The idea is that for each
.vcxproj
, we check for referenced shared items projects. When all the source files and include paths are build, we add the ones defined in the referenced.vcxitems
.The implementation probably isn't 100% robust, but this works for our projects and could serve as a starting point :)
I apologize for the commit history - it's a bit wonky as we currently still use 2.11. I tried to merge the changes to the main branch so other could benefit from these changes as well, but seems like the git history looks a bit weird as a result.