View Issue Details Jump to Notes ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0014023CMakeCMakepublic2013-03-18 13:152013-11-04 09:33
ReporterAndreas Mohr 
Assigned ToBrad King 
PrioritynormalSeverityminorReproducibilityalways
StatusclosedResolutionfixed 
PlatformPCOSWindowsOS Version7
Product VersionCMake 2.8.10.2 
Target VersionCMake 2.8.12Fixed in VersionCMake 2.8.12 
Summary0014023: cmake -E touch / touch_nocreate of a directory fails on Windows yet succeeds on Linux
DescriptionTouching a *file* returns success on both Windows and Linux, yet touching a *directory* succeeds on Linux (ext3) and fails on Windows 7 32bit (NTFS).
Of course I wouldn't be reporting it here if it weren't for the fact that I got a bloody nose from that ;)
(while trying to use these things in a build-time mechanism)

I'm not quite sure whether this really is something that should be made consistent in CMake's implementation, since it might simply be a difference in underlying filesystem mechanisms of the platforms.

IOW, I don't know whether CMake's system-side implementation contains a stupid mistake,
or whether it's simply that touch:ing a directory on Windows is supposed to do what it currently does.

Any ideas, hints?

Thanks!
Steps To Reproducecmake_minimum_required(VERSION 2.6)

project(test_touch_nocreate NONE)

set(touch_sample_1 "${CMAKE_BINARY_DIR}/mytestdir")
file(MAKE_DIRECTORY "${touch_sample_1}")

set(touch_sample_2 "${CMAKE_CURRENT_LIST_FILE}")

set(mytouch "${touch_sample_1}")
# This works:
#set(mytouch "${touch_sample_2}")

# Does not matter whether we choose touch or touch_nocreate.
set(touch_cmd_1 "touch")
set(touch_cmd_2 "touch_nocreate")

set(touch_cmd "${touch_cmd_1}")

execute_process(
  COMMAND "${CMAKE_COMMAND}" -E ${touch_cmd} "${mytouch}"
  RESULT_VARIABLE res
)
message("res is ${res}")
TagsNo tags attached.
Attached Files

 Relationships
related to 0014020closedBrad King cmake -E touch truncates time to seconds 

  Notes
(0032667)
Brad King (manager)
2013-03-18 13:39

CMake is just using "uname" on the path to set the time:

 http://cmake.org/gitweb?p=cmake.git;a=blob;f=Source/kwsys/SystemTools.cxx;hb=v2.8.10.2#l1134 [^]

However, see 0014020 for why that is no longer sufficient.

Moving to backlog awaiting a volunteer with enough time to address both issues.
(0033206)
Brad King (manager)
2013-06-03 10:47

Fixed in upstream KWSys here:

 http://public.kitware.com/gitweb?p=KWSys.git;a=commitdiff;h=dccf7725 [^]

and integrated into CMake here:

 http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d66f6f36 [^]
(0034353)
Robert Maynard (manager)
2013-11-04 09:33

Closing resolved issues that have not been updated in more than 4 months.

 Issue History
Date Modified Username Field Change
2013-03-18 13:15 Andreas Mohr New Issue
2013-03-18 13:38 Brad King Relationship added related to 0014020
2013-03-18 13:39 Brad King Note Added: 0032667
2013-03-18 13:39 Brad King Status new => backlog
2013-05-31 16:38 Brad King Assigned To => Brad King
2013-05-31 16:38 Brad King Status backlog => assigned
2013-05-31 16:38 Brad King Target Version => CMake 2.8.12
2013-06-03 10:47 Brad King Note Added: 0033206
2013-06-03 10:47 Brad King Status assigned => resolved
2013-06-03 10:47 Brad King Resolution open => fixed
2013-06-03 10:47 Brad King Fixed in Version => CMake 2.8.12
2013-11-04 09:33 Robert Maynard Note Added: 0034353
2013-11-04 09:33 Robert Maynard Status resolved => closed


Copyright © 2000 - 2018 MantisBT Team