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

FastUpdateCheck: How to add extra input/outputs groups properly? #3157

Closed
xen2 opened this Issue Jan 18, 2018 · 3 comments

Comments

Projects
None yet
4 participants
@xen2

xen2 commented Jan 18, 2018

As part of a .csproj, I add some targets to compile some native code (but it could be anything that takes one input file and generate an output file, independent from C# .cs/.dll files).

Let's say for example I have MyAssembly.csproj with a.c and it will generate a.exe.
I can add <ItemGroup><UpToDateCheckInput Include="a.c" /><UpToDateCheckOutput="a.exe" /></ItemGroup> in the project, and write a target generating it (i.e. just before CoreCompile).

However, FastUpdateCheck will start mixing .cs=>.dll/.pdb with a.c=>a.exe in terms of timestamp, and will always fail the fast update.
For example, if I update a.c, MyAssembly.dll won't be recompiled and the check will fail.

Ideally the dependency a.c => a.exe should be kept separate from the C# ones.

  • Is that possible?
  • Another option is make sure after a successful build that timestamp of outputs are later than timestamp of inputs (or otherwise touch the files).

@Pilchie Pilchie added the Question label Jan 18, 2018

@Pilchie Pilchie added this to the Unknown milestone Jan 18, 2018

@panopticoncentral

This comment has been minimized.

Contributor

panopticoncentral commented Jan 22, 2018

We just added (in the 15.6 branch) a new item called UpToDateCheckBuilt that should help here. It can have a property "Original" that will cause the item to only be compared against that original file. So:

<UpToDateCheckBuild Include="a.exe" Original="a.c" />

Should do what you want. I don't think this has been published in a public preview, but will be part of the 15.6 release.

@xen2

This comment has been minimized.

xen2 commented Jan 25, 2018

@panopticoncentral Thanks! (I assume you meant UpToDateCheckBuilt)

Quick question, can it support multiple sources, such as:
<UpToDateCheckBuilt Include="a.exe" Original="a.c;b.c" /> ?

@panopticoncentral

This comment has been minimized.

Contributor

panopticoncentral commented Jan 25, 2018

I didn't add that because I didn't need it, but if you want to file an issue, we can look at it...

@panopticoncentral panopticoncentral removed their assignment Jan 26, 2018

xen2 added a commit to SiliconStudio/xenko that referenced this issue Apr 2, 2018

[Build] Fixed incremental build (still not perfect, waiting for more …
…info on dotnet/project-system#3157)


# Original commit: '8f254c8d14c0a22f85a1407242c8ed640ee31fac'

@davkean davkean modified the milestones: Unknown, 15.6 Apr 5, 2018

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment