On Sat, 10 Nov 2007 15:02:31 +0100 Hendrik Sattler <[EMAIL PROTECTED]> wrote:
> Am Dienstag 06 November 2007 schrieb Neil Williams: > > The most common change is simply to retrieve the cross-building > > metadata from dpkg-architecture in debian/rules: > > http://wiki.debian.org/EmdebianGuide > > Does Emdebian support upcoming cmake-2.6 cross-compile support or is this > planned? > See: http://www.cmake.org/Wiki/CMake_Cross_Compiling emdebian-tools will support any build system that can be used in debian/rules. The build system should configure itself using only the data provided by dpkg-architecture but can use that information in whatever manner is needed to get the right values into the right variables. The crossbuild should require no more information than would be provided by running dpkg-buildpackage. At present, there is some wrapper code but that is destined to be removed. After all, the only difference between a normal build and a crossbuild is that the normal build uses: dpkg-buildpackage ... and the cross build uses: dpkg-buildpackage -a $arch ... That should be all that the package (or build system) needs to know - apart from architecture-specific flags like little-endian or big-endian etc. which are provided by dpkg-cross (the config files themselves are soon to migrate into dpkg-dev itself). > So when creating a cross-compiler, a corresponding cmake toolchain file > should > also be created. Providing and updating the toolchain is already sufficiently complex. There are no plans to complicate things further by adding support for any build-system-specific toolchain anything. IMHO CMake should be configured (by the package or within itself) in such a way that it uses the dpkg-architecture data to provide all the data it needs, just like all the other build systems. A file in the home directory is not likely to be relevant or useful, rather I would expect such a hack to be a source of yet more bugs. Besides, there would appear to be nothing useful to put into such a file - the toolchain binaries are all in the $PATH and I see no apparent need for a lot of the "extras" that CMake tries to add. If a package doesn't build with 'dpkg-buildpackage -a' then I will consider that a bug in the package and if the bug is reproducible in other packages using the same build system, reassign to the build system. (Hence the current crossbuilt bug against CDBS). > The right one should then noted somewhere (e.g. in an > environment variable) when cross-compiling a debian packge so that the > debian/rules file can give cmake the proper -DCMAKE_TOOLCHAIN_FILE= option. emdebian-tools is build-system agnostic. It should not and does not care about what is used. Any build system specifics need to be configured either in the build system itself or in the package debian/rules, just like every other package. Note that all build systems must also work within a chroot without any user-specific configuration (without a /home at all) and in this respect, Emdebian is no different to the autobuilders. -- Neil Williams ============= http://www.data-freedom.org/ http://www.nosoftwarepatents.com/ http://www.linux.codehelp.co.uk/
pgp5zdBqBMdVe.pgp
Description: PGP signature