Sean McBride wrote:
On 2006-09-08 14:40, Brandon J. Van Every said:

  
Benjamin Reed wrote:
    
On 9/6/06, Brandon J. Van Every <[EMAIL PROTECTED]> wrote:

      
Actually it's not invalid to compile it.  That's what a cross-compiler
does.  It's invalid to run it.  CMake already has this distinction
between TRY_COMPILE and TRY_RUN, so if TRY_RUN is used inappropriately,
that's user error.  If CMake knows it's in some kind of
cross-compilation mode, it can disallow TRY_RUN and deliver an error.
        
I don't know if this is what he meant, but at least as far as
universal binaries are concerned, TRY_COMPILE *can* cause issues.

For example, there are a number of autotool'd things that I have built
as universal binaries which fail to build out of the box because they
do:

* checking endianness... big endian
      
But that is a form of TRY_RUN.
    

CMake's CMakeLists.txt has no TRY_RUN's and only one TRY_COMPILE.  Yet,
when I build cmake with cmake I see the "checking endianness" message.
  

You'd have to trace through everything to see what's ultimately used.  I didn't mean, "Endianness checks in CMake are implemented directly with TRY_RUN."  Nor indirectly; I have no idea.  I meant, "Conceptually, an Endinanness check must be implemented by compiling and running code."  Either that or the compiler correctly defines the Endinanness for you somehow, and you query it somehow.

  
You can't check endianness just by 
compiling something, you have to get a result back from running the 
program.  At least, I'm not thinking of any snippet of code that's 
portable, can be compiled on a little endian architecture, and not a big 
endian one.
    

  

Cheers,
Brandon Van Every

_______________________________________________
CMake mailing list
CMake@cmake.org
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to