[cmake-developers] [CMake 0013910]: Ninja generator initialization fails if /usr/bin/ninja is not world-readable

Mantis Bug Tracker mantis at public.kitware.com
Wed Feb 13 08:19:15 EST 2013


The following issue has been SUBMITTED. 
====================================================================== 
http://public.kitware.com/Bug/view.php?id=13910 
====================================================================== 
Reported By:                Evgeniy Stepanov
Assigned To:                
====================================================================== 
Project:                    CMake
Issue ID:                   13910
Category:                   CMake
Reproducibility:            always
Severity:                   minor
Priority:                   normal
Status:                     new
====================================================================== 
Date Submitted:             2013-02-13 08:19 EST
Last Modified:              2013-02-13 08:19 EST
====================================================================== 
Summary:                    Ninja generator initialization fails if
/usr/bin/ninja is not world-readable
Description: 
CMake tests availability or Ninja by access(, R_OK). This does not make any
sense - it's not going to read /usr/bin/ninja, it's going to execute it!

"--x" ninja binary results in a cryptic failure message, as shown below.


Steps to Reproduce: 
$ ls -la /usr/bin/ninja
-rwxr-x--x 1 root root 2746829 Feb 13 16:36 /usr/bin/ninja

$ cmake -GNinja ..
CMake Error: CMake was unable to find a build program corresponding to "Ninja". 
CMAKE_MAKE_PROGRAM is not set.  You probably need to select a different build
tool.


strace shows:
access("ninja", R_OK)                   = -1 ENOENT (No such file or directory)
access("/usr/local/bin/ninja", R_OK)    = -1 ENOENT (No such file or directory)
access("/usr/sbin/ninja", R_OK)         = -1 ENOENT (No such file or directory)
access("/usr/bin/ninja", R_OK)          = -1 EACCES (Permission denied)
access("/sbin/ninja", R_OK)             = -1 ENOENT (No such file or directory)
access("/bin/ninja", R_OK)              = -1 ENOENT (No such file or directory)

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

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2013-02-13 08:19 Evgeniy StepanovNew Issue                                    
======================================================================




More information about the cmake-developers mailing list