Re: [CMake] file(COPY) is copying even if file hasn't changed

2017-07-20 Thread Nicholas Devenish
For what it's worth, I'm not seeing this on Sierra 10.12.5, CMake
3.9.0 on a simple test case of:

cmake_minimum_required(VERSION 3.5 FATAL_ERROR)
file(COPY afile DESTINATION .)

I ran through Instruments to check the otherwise silent copy, it
copies the first time but thereafter only stat calls are ever made,
the file timestamp stays matching the source, and even the INSTALL
option also gives the "Up-to-date" message. It looks as though a chmod
might be run, but that doesn't seem to affect the output stamp.

So it must be something more complicated. Are you able to reduce the
behaviour to a simple test-case?

Completely wild guess: Are you running on something different from
HFS, like APFS? If my reading of the chmod isn't wrong, I suppose *in
theory* a different filesystem could treat a chmod attempt as a
modification

Nick

On Thu, Jul 20, 2017 at 5:00 PM, Robert Dailey  wrote:
> FYI I decided to file an issue for this here:
> https://gitlab.kitware.com/cmake/cmake/issues/17087
>
> On Wed, Jul 19, 2017 at 4:05 PM, Robert Dailey  
> wrote:
>> Oh also file(INSTALL) does the same thing; the "Installing:" message
>> gets printed each time for the same file, and never says that it is
>> "up to date".
>>
>> On Wed, Jul 19, 2017 at 4:04 PM, Robert Dailey  
>> wrote:
>>> According to the documentation for file(COPY) [1]: "Copying preserves
>>> input file timestamps, and optimizes out a file if it exists at the
>>> destination with the same timestamp"
>>>
>>> However this is not the case. My host OS is Windows 10 and I'm using
>>> CMake 3.9.0-rc5. Each time my CMakeLists.txt is run, the file(COPY) is
>>> copying over the file even if it didn't change. The "date modified"
>>> timestamp for the destination file is updated. I do not want the copy
>>> to occur if the source file has not changed (this appears to be the
>>> intended behavior based on the documentation).
>>>
>>> Am I understanding this correctly or is this a bug?
>>>
>>> [1]: https://cmake.org/cmake/help/latest/command/file.html
> --
>
> Powered by www.kitware.com
>
> Please keep messages on-topic and check the CMake FAQ at: 
> http://www.cmake.org/Wiki/CMake_FAQ
>
> Kitware offers various services to support the CMake community. For more 
> information on each offering, please visit:
>
> CMake Support: http://cmake.org/cmake/help/support.html
> CMake Consulting: http://cmake.org/cmake/help/consulting.html
> CMake Training Courses: http://cmake.org/cmake/help/training.html
>
> Visit other Kitware open-source projects at 
> http://www.kitware.com/opensource/opensource.html
>
> Follow this link to subscribe/unsubscribe:
> http://public.kitware.com/mailman/listinfo/cmake
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake


Re: [CMake] file(COPY) is copying even if file hasn't changed

2017-07-20 Thread Robert Dailey
FYI I decided to file an issue for this here:
https://gitlab.kitware.com/cmake/cmake/issues/17087

On Wed, Jul 19, 2017 at 4:05 PM, Robert Dailey  wrote:
> Oh also file(INSTALL) does the same thing; the "Installing:" message
> gets printed each time for the same file, and never says that it is
> "up to date".
>
> On Wed, Jul 19, 2017 at 4:04 PM, Robert Dailey  
> wrote:
>> According to the documentation for file(COPY) [1]: "Copying preserves
>> input file timestamps, and optimizes out a file if it exists at the
>> destination with the same timestamp"
>>
>> However this is not the case. My host OS is Windows 10 and I'm using
>> CMake 3.9.0-rc5. Each time my CMakeLists.txt is run, the file(COPY) is
>> copying over the file even if it didn't change. The "date modified"
>> timestamp for the destination file is updated. I do not want the copy
>> to occur if the source file has not changed (this appears to be the
>> intended behavior based on the documentation).
>>
>> Am I understanding this correctly or is this a bug?
>>
>> [1]: https://cmake.org/cmake/help/latest/command/file.html
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake


Re: [CMake] file(COPY) is copying even if file hasn't changed

2017-07-19 Thread Robert Dailey
Oh also file(INSTALL) does the same thing; the "Installing:" message
gets printed each time for the same file, and never says that it is
"up to date".

On Wed, Jul 19, 2017 at 4:04 PM, Robert Dailey  wrote:
> According to the documentation for file(COPY) [1]: "Copying preserves
> input file timestamps, and optimizes out a file if it exists at the
> destination with the same timestamp"
>
> However this is not the case. My host OS is Windows 10 and I'm using
> CMake 3.9.0-rc5. Each time my CMakeLists.txt is run, the file(COPY) is
> copying over the file even if it didn't change. The "date modified"
> timestamp for the destination file is updated. I do not want the copy
> to occur if the source file has not changed (this appears to be the
> intended behavior based on the documentation).
>
> Am I understanding this correctly or is this a bug?
>
> [1]: https://cmake.org/cmake/help/latest/command/file.html
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake


[CMake] file(COPY) is copying even if file hasn't changed

2017-07-19 Thread Robert Dailey
According to the documentation for file(COPY) [1]: "Copying preserves
input file timestamps, and optimizes out a file if it exists at the
destination with the same timestamp"

However this is not the case. My host OS is Windows 10 and I'm using
CMake 3.9.0-rc5. Each time my CMakeLists.txt is run, the file(COPY) is
copying over the file even if it didn't change. The "date modified"
timestamp for the destination file is updated. I do not want the copy
to occur if the source file has not changed (this appears to be the
intended behavior based on the documentation).

Am I understanding this correctly or is this a bug?

[1]: https://cmake.org/cmake/help/latest/command/file.html
-- 

Powered by www.kitware.com

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Kitware offers various services to support the CMake community. For more 
information on each offering, please visit:

CMake Support: http://cmake.org/cmake/help/support.html
CMake Consulting: http://cmake.org/cmake/help/consulting.html
CMake Training Courses: http://cmake.org/cmake/help/training.html

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/cmake