MantisBT - CMake
View Issue Details
0013445CMake(No Category)public2012-07-30 11:432016-06-10 14:31
nagger 
Kitware Robot 
normalminoralways
closedmoved 
CMake 2.8.8 
 
0013445: file glob with relative path containing '.'
At a call of file(GLOB var RELATIVE ${absdir} ...), if absdir contains "/./" parts the resulting relative path is wrong
cmake_minimum_required(VERSION 2.8)
file(GLOB var1 *.txt)
file(GLOB var2 RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.txt)
file(GLOB var3 RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/. *.txt)
file(GLOB var4 RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}/./. *.txt)
message("var1: '${var1}'")
message("var2: '${var2}'")
message("var3: '${var3}'")
message("var4: '${var4}'")

-------
output:
var1: 'D:/src/CMake_globrelative/CMakeLists.txt'
var2: 'CMakeLists.txt'
var3: '../CMakeLists.txt'
var4: '../../CMakeLists.txt'
-------
expected output:
var1: 'D:/src/CMake_globrelative/CMakeLists.txt'
var2: 'CMakeLists.txt'
var3: 'CMakeLists.txt'
var4: 'CMakeLists.txt'
No tags attached.
Issue History
2012-07-30 11:43naggerNew Issue
2012-07-30 11:48naggerNote Added: 0030154
2016-06-10 14:28Kitware RobotNote Added: 0042097
2016-06-10 14:28Kitware RobotStatusnew => resolved
2016-06-10 14:28Kitware RobotResolutionopen => moved
2016-06-10 14:28Kitware RobotAssigned To => Kitware Robot
2016-06-10 14:31Kitware RobotStatusresolved => closed

Notes
(0030154)
nagger   
2012-07-30 11:48   
Tested some more:

Calling get_filename_component(... ABSOLUTE) on the path-variable works:

get_filename_component(absdir ${CMAKE_CURRENT_SOURCE_DIR}/. ABSOLUTE)
file(GLOB var5 RELATIVE ${absdir} *.txt)
message("var5: '${var5}'")

So maybe file(GLOB ...) should call get_filename_component( ABSOLUTE) internally.
(0042097)
Kitware Robot   
2016-06-10 14:28   
Resolving issue as `moved`.

This issue tracker is no longer used. Further discussion of this issue may take place in the current CMake Issues page linked in the banner at the top of this page.