It would just need to be in the cross-compiler's directory. The test needs to do TRY_COMPILE on the cross-compiler, and as long as it compiles, the library is in the right place. TRY_RUN should be able to run tests remotely, or have a manual answer put in place just incase the target hardware is unavailable. TRY_RUN will have to be modified so the test should first try it in shared mode. If that fails, try it again statically, and if that works, print a warning that target device is lacking library x, and CMake will default to static building. Now I haven't poked through the FindFoo.cmake packages, but if it works by testing via compiling, then it won't be a problem.

In regards to BIG_ENDIAN/LITTLE_ENDIAN, I've never met a compiler that hasn't defined the right one, but we shouldn't be dependent on that. We could provide a list of common arch types and their default endian settlings, but that wouldn't do anything for MIPS, ARM, or PowerPC 7405 and earlier, since all three of those processors are bi- endian, although the PowerPC chip can run both big and little endian programs on the same platform, although that can have issues.

Ideally, assuming a properly written CMakeLists.txt (TRY_RUN/ TRY_COMPILE is right, or remote hardware is available), cross- compiling should be as trivial as compiling locally. With any luck, once this is true, it will help grow CMake's userbase, because I can think quite a few situations I want to run a program on my old desktop, but don't want to spend a month compiling it (I do know of distcc, but that has its own set of problems, including it does the compiling on the target hardware which means it needs a harddrive). I'm starting to get a good picture on how this is going to work out, and perpahs we could extend this that you can cross-compile to multiple platforms at once, which would be great for systems like Debian which cross-compile quite a few packages AFAIK.
Michael

On Sep 8, 2006, at 4:33 PM, Alexander Neundorf wrote:


 From: [EMAIL PROTECTED]
 To: [EMAIL PROTECTED]
 Sent: Fri, 8 Sep 2006 4:06 PM
 Subject: Re: [CMake] Adding cross-compiler support to CMake ...

lol, I actually intended to try cross-compiling KDE as a demostration
of CMake's cross-compiling abilities once it was perfected.

Once it is possible to do this, the cross-compiling abilities are really perfect. In KDE we do about one million configure checks, checking the availability of various functions, types and headers. And we use many extra libraries, which are found using FIND_PACKAGE().

How should all that work when cross-compiling ?
The FindFoo.cmake files as far as I can see cannot and are not written to find libraries in strange directories for cross-compiling. All the values could be set manually by hand, but this is not really doable for a project with so many checks.

Bye
Alex

--


Der GMX SmartSurfer hilft bis zu 70% Ihrer Onlinekosten zu sparen!
Ideal für Modem und ISDN: http://www.gmx.net/de/go/smartsurfer
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake
_______________________________________________
CMake mailing list
[email protected]
http://www.cmake.org/mailman/listinfo/cmake

Reply via email to