On Jan 17, 2011, at 1:23 PM, Eric Noulard wrote:

> 2011/1/17 Michael Jackson <mike.jack...@bluequartz.net>:
>> I have the following code:
>> 
>> if ( "${CMAKE_SIZEOF_VOID_P}" EQUAL "8" )
>>        set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-Win64")
>> elseif( "${CMAKE_SIZEOF_VOID_P}" EQUAL "4" )
>>        set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-Win32")
>> else()
>>        set(CPACK_PACKAGE_FILE_NAME "${PROJECT_NAME}-Unknown")
>> endif()
>> 
>> I properly generate VS 2008 Win64 projects. Everything builds fine. When I 
>> build the "PACKAGE" project I get a zip file with "-Unknown" in the name. 
>> This will usually configure OK the first time or so, ie, I get a Zip file 
>> name with "-Win64" but after a few more configs this seems to revert back to 
>> "Unknown". Searching the "CMakeCache.txt" file for "CMAKE_SIZEOF_VOID_P" 
>> comes up empty. Is this some sort of temporary variable?
> 
> Shouldn't be "temporary" just "not in cache".
> 
>> Do I need to store it in my own cache variable somewhere?
> 
> I don't think you should.
> Looks like a bug to me, how come CMAKE_SIZEOF_VOID_P
> would it be defined "sometimes" but not **always**...
> 
> need to dive into the source of this definition, may be it is not always
> defined because it is "indirectly" defined in the chain of CMake processing 
> due
> to CMake cache.
> 
> By the way shouldn't you use
> 
> if (CMAKE_SIZEOF_VOID_P EQUAL 8)
> 
> instead of
> 
> if ( "${CMAKE_SIZEOF_VOID_P}" EQUAL "8" )
> 
> from the doc I think EQUAL is for values whereas STREQUAL is for string.
> 
> 
> -- 
> Erk
> Membre de l'April - « promouvoir et défendre le logiciel libre » -
> http://www.april.org

It seems like if I start with a clean build directory then CMAKE_SIZEOF_VOID_P 
will be the proper value for the environment I am running in. But then after a 
while (many runs of CMake) the value seems to get "lost" or otherwise is NOT in 
the cache any longer. Kind of odd really.

You are probably right about the improper use of the "if" command. I never 
really know which one to use and when something does not work when I _think_ it 
really *should* work then I start trying all sorts of stuff.

Maybe someone else has some ideas as to why CMAKE_SIZEOF_VOID_P might not be 
defined.
___________________________________________________________
Mike Jackson                      www.bluequartz.net


_______________________________________________
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