MantisBT - CMake
View Issue Details
0011034CMakeCTestpublic2010-07-23 22:412010-11-09 22:57
Stephen Aylward 
David Cole 
normalmajoralways
closedfixed 
CMake-2-8 
CMake 2.8.3CMake 2.8.3 
0011034: ExternalProject reports "keyword undefined" when the SOURCE_DIR begins with 3 UpperCase letters
In the ExternalProject.cmake:

function(_ep_parse_arguments f name ns args)
 ...
 156 # We loop through ARGN and consider the namespace starting with an
 157 # upper-case letter followed by at least two more upper-case letters
 158 # or underscores to be keywords.
 ...
 161 foreach(arg IN LISTS args)
 ...
 164 if(arg MATCHES "^[A-Z][A-Z0-9_][A-Z0-9_]+$" AND
 ...
 175 message(AUTHOR_WARNING "unknown ${f} keyword: ${arg}")
 ...

As mentioned in the comments and implemented in line 164, a typical use case of ExternalProject_Add for ITK, VTK, CTK, ... produces the error "unknown ITK keyword:" etc.

ExternalProject_Add( CTK
    SOURCE_DIR CTK
    BINARY_DIR CTK-Build

ExternalProject_Add( ITK
    SOURCE_DIR ITK


ExternalProject_Add( ITK
    SOURCE_DIR ITK

Instead you have to do

ExternalProject_Add( ITK
    SOURCE_DIR ${AN_EXTA_PATH_VAR}/ITK

Which somewhat defeats the use of a base_path.

I escalated to Major since the error message is unhelpful. You've got to look at the code to figure out what is going on.


No tags attached.
has duplicate 0011591closed David Cole ExternalProject.cmake: Interprets all-caps project name as keyword during parsing 
Issue History
2010-07-23 22:41Stephen AylwardNew Issue
2010-07-27 09:56Bill HoffmanStatusnew => assigned
2010-07-27 09:56Bill HoffmanAssigned To => David Cole
2010-07-28 11:50David ColeNote Added: 0021517
2010-07-28 11:50David ColeStatusassigned => resolved
2010-07-28 11:50David ColeResolutionopen => fixed
2010-09-10 00:10David ColeFixed in Version => CMake 2.8.3
2010-09-10 00:10David ColeTarget Version => CMake 2.8.3
2010-11-09 22:57Philip LowmanStatusresolved => closed
2010-12-09 11:33David ColeRelationship addedhas duplicate 0011591

Notes
(0021517)
David Cole   
2010-07-28 11:50   
Fixed in CMake 'next' -
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=9fa49dc3ad039ed0e1213afcd0da70a064991d27 [^]

Will appear in CMake release 2.8.3 later on...