On 11/25/2011 03:15 PM, Michael Wild wrote:
> On 11/25/2011 02:52 PM, Daniel Dekkers wrote:
>> Hi,
>>
>>  
>>
>> I know it should be out there somewhere in the documentation, but can’t
>> find it.
>>
>> How do I check for an empty list?
>>
>> I can use LIST(LENGTH MYLIST LISTCOUNT) with an extra variable LISTCOUNT
>> but isn’t there a single command?
>>
>>  
>>
>> Thanks,
>>
>> Daniel
>>
> 
> 
> An empty list is an empty variable, and evaluates to FALSE. So you can use
> 
> if(NOT MYLIST)
>   message("Either MYLIST is empty or otherwise FALSE")
> endif()

...or otherwise FALSE: Exactly, and due to this, it's not bullet-proof:

CMAKE_MINIMUM_REQUIRED(VERSION 2.8 FATAL_ERROR)
PROJECT(EMPTY NONE)
SET(MYLIST "FALSE")
LIST(LENGTH MYLIST n)
MESSAGE("Length of MYLIST: ${n}")
IF(MYLIST)
    MESSAGE("IF() says MYLIST is not empty.")
ELSE()
    MESSAGE("IF() says MYLIST is empty.")
ENDIF()

Because of non-empty strings - constituting non-empty lists - which
evaluate to FALSE in the IF() command, the only really safe way to
check whether a list is empty is using LIST(LENGTH ...), AFAICS.

Regards,

Michael
--

Powered by www.kitware.com

Visit other Kitware open-source projects at 
http://www.kitware.com/opensource/opensource.html

Please keep messages on-topic and check the CMake FAQ at: 
http://www.cmake.org/Wiki/CMake_FAQ

Follow this link to subscribe/unsubscribe:
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to