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
[email protected]
http://www.cmake.org/mailman/listinfo/cmake