[cmake-developers] [CMake 0012365]: get_filename_component() can return incorrect ABSOLUTE and REALPATH values in a toolchain file

Mantis Bug Tracker mantis at public.kitware.com
Wed Jul 27 17:07:25 EDT 2011


The following issue has been SUBMITTED. 
====================================================================== 
http://public.kitware.com/Bug/view.php?id=12365 
====================================================================== 
Reported By:                Andrew Fischer
Assigned To:                
====================================================================== 
Project:                    CMake
Issue ID:                   12365
Category:                   CMake
Reproducibility:            always
Severity:                   minor
Priority:                   low
Status:                     new
====================================================================== 
Date Submitted:             2011-07-27 17:07 EDT
Last Modified:              2011-07-27 17:07 EDT
====================================================================== 
Summary:                    get_filename_component() can return incorrect
ABSOLUTE and REALPATH values in a toolchain file
Description: 
If you attempt to use get_filename_component() to return the ABSOLUTE or
REALPATH path of the toolchain file name ${CMAKE_TOOLCHAIN_FILE}, while in that
same toolchain file, the resulting path will be missing the project source
directory the first time the toolchain file is called. 

Example:

If the toolchain file is located at: /home/mydir/testproject/toolchain.cmake

The first time the toolchain file is called, both ABSOLUTE and REALPATH will
return: /home/mydir/toolchain.cmake

Steps to Reproduce: 
1. Create a minimal CMakeLists.txt file in some project directory (testproject/)

2. Create a sample toolchain file that uses get_filename_component to obtain the
absolute or realpath to the ${CMAKE_TOOLCHAIN_FILE}. The attached file is a
toolchain that demonstrates this.

3. Create a build directory (testproject/build)

4. From testproject/build, call the CMakeLists.txt with the attached toolchain
file: 

   cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain.cmake ..

5. Observe how the initially printed out ABSOLUTE and REALPATH values are
missing the testproject/ directory. Note the relative PATH entry will be
correct.


====================================================================== 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2011-07-27 17:07 Andrew Fischer New Issue                                    
2011-07-27 17:07 Andrew Fischer File Added: toolchain.cmake                    
======================================================================




More information about the cmake-developers mailing list