Build on windows does not discover changed source files

Bug #1334117 reported by Tino
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
widelands
Fix Released
Medium
Unassigned

Bug Description

It seems the current cmake configuration does not always grab the correct revision number and source files.
Steps to reproduce:
- bzr pull (source code rev7010 -> 7013)
- ninja (does run cmake, compiles and links)

Now in build_info.cc contains the correct entries:

  static const std::string wl_bid = "bzr7013[trunk]";
  static const std::string wl_bt = "Release";

The timestamp of this file is 8:16, widelands.exe has the timestamp 8:24.
If i run widelands it displays "Widelands bzr 7010[trunk](Release)"

Another ninja call grabs now many new files to compile.
After this, widelands.exe has the current revision.

Revision history for this message
SirVer (sirver) wrote :

I see that too. Two ideas: one, the configure_file() call does not seem to check if its output is there or its input has changed, so that could be it. two, detecting the bzr revision has no 'input files' defined, so make does not know when to rerun it.

Changed in widelands:
status: New → Confirmed
importance: Undecided → Medium
milestone: none → build19-rc1
Revision history for this message
Jens Beyer (qcumber-some) wrote :

add_custom_target (BzrRevision) is always considered OUT OF DATE and therefor ran everytime the build is ran.

If I remember correctly, this has also been the way before the cmake redesign (I could be wrong, though).

--

configure_file() should (according to docs) check if the input has changed (and runs cmake again in that case), The output can only change if the cmake is ran again (at least by configure_file - if there are other qays to modify config.h, this is probably the cause of this error)

--

What I would like to know, does this really only happen on Windows?

Revision history for this message
SirVer (sirver) wrote : Re: [Bug 1334117] Re: Build on windows does not discover changed source files

On 26.06.2014, at 21:14, Jens Beyer <email address hidden> wrote:

> add_custom_target (BzrRevision) is always considered OUT OF DATE and
> therefor ran everytime the build is ran.
>
> If I remember correctly, this has also been the way before the cmake
> redesign (I could be wrong, though).

configure_file() however is not. I’ll put my money on this being the problem.

>
> --
>
> configure_file() should (according to docs) check if the input has
> changed (and runs cmake again in that case), The output can only change
> if the cmake is ran again (at least by configure_file - if there are
> other qays to modify config.h, this is probably the cause of this error)
>
> --
>
> What I would like to know, does this really only happen on Windows?
>
> --
> You received this bug notification because you are subscribed to
> widelands.
> https://bugs.launchpad.net/bugs/1334117
>
> Title:
> Build on windows does not discover changed source files
>
> Status in Widelands:
> Confirmed
>
> Bug description:
> It seems the current cmake configuration does not always grab the correct revision number and source files.
> Steps to reproduce:
> - bzr pull (source code rev7010 -> 7013)
> - ninja (does run cmake, compiles and links)
>
> Now in build_info.cc contains the correct entries:
>
> static const std::string wl_bid = "bzr7013[trunk]";
> static const std::string wl_bt = "Release";
>
> The timestamp of this file is 8:16, widelands.exe has the timestamp 8:24.
> If i run widelands it displays "Widelands bzr 7010[trunk](Release)"
>
> Another ninja call grabs now many new files to compile.
> After this, widelands.exe has the current revision.
>
> To manage notifications about this bug go to:
> https://bugs.launchpad.net/widelands/+bug/1334117/+subscriptions

Revision history for this message
SirVer (sirver) wrote :

Setting to incomplete for bug sweeping.

Changed in widelands:
status: Confirmed → Incomplete
Revision history for this message
SirVer (sirver) wrote :

I can no longer reproduce this with a recent cmake version (3.4). Maybe this was a cmake issue that got fixed or our build system is now more reliable than 2 years ago. I cannot say for sure.

If this resurfaces, please reopen.

Changed in widelands:
status: Incomplete → Fix Committed
GunChleoc (gunchleoc)
Changed in widelands:
status: Fix Committed → Fix Released
Revision history for this message
GunChleoc (gunchleoc) wrote :

Fixed in build19-rc1.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.