kicad-developers team mailing list archive
-
kicad-developers team
-
Mailing list archive
-
Message #21417
Re: "generate version string header"
Le 24/11/2015 01:24, Wayne Stambaugh a écrit :
> On 11/23/2015 3:06 PM, jp charras wrote:
>> Le 23/11/2015 20:52, Wayne Stambaugh a écrit :
>>> On 11/23/2015 2:20 PM, jp charras wrote:
>>>> Le 21/11/2015 23:08, Wayne Stambaugh a écrit :
>>>>> On 11/21/2015 2:54 PM, jp charras wrote:
>>>>>> Le 20/11/2015 21:56, Wayne Stambaugh a écrit :
>>>>>>> On 11/20/2015 3:08 PM, Mário Luzeiro wrote:
>>>>>>>> Hello all,
>>>>>>>>
>>>>>>>> I am building kicad on windows msys/mingw32
>>>>>>>> Everytime I update (pull) my development bzr branch it will "generate version string header" and rebuild all kicad. :S
>>>>>>>
>>>>>>> It should only rebuild when there is a commit change to your branch.
>>>>>>> Even when it does change, it should only update the version string,
>>>>>>> recompile the common library, and relink all of the binaries to the
>>>>>>> updated common library.
>>>>>>
>>>>>> This is true on Linux, but unfortunately, not on Windows:
>>>>>> Each time the bzr version has changed a full compilation of all files in
>>>>>> Kicad sources is made.
>>>>>
>>>>> This sounds like an issue with make on windows. I don't know how else
>>>>> this could happen unless cmake build scripts is changing the time stamp
>>>>> on one of header files used by most of kicad such as config.h.
>>>>>
>>>>
>>>> This is more strange:
>>>>
>>>> I had a look at .cpp files dependencies like depend.internal.
>>>>
>>>> version.h and config.h appear in dependency list of each .cpp file in
>>>> Kicad (all but bitmaps).
>>>> Therefore, each time version.h is rebuilt, all files are recompiled.
>>>>
>>>> In attached patch, I just renamed version.h to kicad_build_version.h
>>>>
>>>> And the problem is gone.
>>>>
>>>> Can you have a look at my patch.
>>>>
>>>> Thanks.
>>>>
>>> This is only a problem on msys2. The old msys1/mingw32 platform using
>>> native cmake doesn't have this problem. If cmake makes all of the cpp
>>> files dependent on version.h, then it sounds like the issue is with
>>> msys2 cmake packages creating an invalid configuration. I'm not sure
>>> how your patch will make any difference. I will test it but it will
>>> take a while to build on my work computer. Did you do a clean build or
>>> a rebuild? I'll try both just to make sure.
>>>
>>
>> I tested both a clean build and a rebuild.
>>
>> Obviously, renaming version.h to kicad_build_version.h is just a
>> workaround to this strange issue, Windows specific.
>>
>>
> I finished testing this and it seems to work although I don't know why
> changing the header file name fixes the problem unless version.h has a
> special meaning for the msys2 cmake packages. Go ahead and commit it
> when you get a chance.
>
> Thanks,
>
> Wayne
>
I committed the patch.
All files in the build directory must be deleted, and a full rebuild
from scratch is needed, in order to recreate right dependency files.
Just a cleanup is not enough.
--
Jean-Pierre CHARRAS
References