Opened 10 years ago

Closed 6 years ago

#1144 closed task (fixed)

Cmake for TomTom buildchain

Reported by: usul Owned by: KaZeR
Priority: blocker Milestone: version 0.5.1
Component: port/tomtom Version: git master
Severity: complex Keywords: tomtom, cmake, autotools
Cc: sebastian.leske@…


AFAIK only our TomTom? port requires autotools anymore and blocks us from finalizing the switch over to cmake. We should work on this issue to do this step (which is only on development side important) within the new hotfix release.

Change History (13)

comment:1 Changed 10 years ago by usul

  • Milestone set to version 0.5.1

comment:2 Changed 9 years ago by xenos1984

Yes, I have noticed this, and already tried to fix it - but honestly I have no idea how to do this, mainly since I hardly understand the CMake documentation. (I'm mostly familiar with autotools and learned using them from scratch, which was much easier than understanding CMake.)

The problem seems to be that some library dependencies are not correctly resolved, as explained in the beginning of this chatlog: And honestly I have no idea why...

comment:3 Changed 9 years ago by sleske

  • Cc sebastian.leske@… added

Hm, I've done some work with CMake, so I may be able to help. I have no idea how to compile for TomTom?, however. Could you maybe upload your changes to CMakeList.txt and a build log somewhere? Then I can have a look.

comment:4 Changed 9 years ago by usul

  • Severity set to complex

comment:5 Changed 9 years ago by usul

  • Component changed from core to port/tomtom

comment:6 Changed 9 years ago by usul

  • Priority changed from critical to blocker

I suggest this as blocker for 0.5.2 for the following reasons:

  • prevents us from a complete switch over to cmake and forces us to maintain autotools, too

comment:7 Changed 8 years ago by sleske

It would be really good if we could complete the changeover to CMake. I'll try to work on this. I don't have a TomTom? device, but I can cross-compile without one :-). I'll just need someone else to check if the build actually produces a working executable.

comment:8 Changed 8 years ago by sleske

To kick things off:

I noticed there is a script for Linux that downloads all the dependencies and runs a cross-compilation automatically: I tested it on my system with SVN rev.5561 (August 2013), and it seems to work (i.e. compilation completes and produces ARM binaries).

However, it does not work with current trunk. I'll try to fix this.

Once this is done, could someone with a TomTom? device test this? I'll try to update the build script, so the test should run automatically.

Last edited 8 years ago by sleske (previous) (diff)

comment:9 Changed 8 years ago by sleske

The build script now also works with current trunk (the problem was just an unsupported GCC warning option, fixed in rev.5892).

However, I cannot test the resulting binary, as I don't have a TomTom? device. All I can say is that the build finishes, and creates a navit binary for ARM:

$ file navit
navit: ELF 32-bit LSB executable, ARM, version 1, dynamically
linked (uses shared libs), for GNU/Linux 2.4.0, not stripped

I don't know if this actually runs correctly...

comment:10 Changed 8 years ago by sleske

What remains to be done:

Then TomTom? is no longer a blocker for removing the autotools stuff :-).

Finally, we might want to improve our CMakeLists.txt to automatically do some of the things the build script does.

Any takers?

Last edited 8 years ago by sleske (previous) (diff)

comment:11 Changed 8 years ago by mvglasow (2)

Note that the build script changes seem to break android-x86, see #1259.

comment:12 Changed 7 years ago by kazer

Some work has been done some time ago in order to try to address this ticket.

You can track the current status here :

Any help in finalizing this is welcome!

comment:13 Changed 6 years ago by

  • Resolution set to fixed
  • Status changed from new to closed

We have a cmake buildchain now, see ci/tomtom for a example

Note: See TracTickets for help on using tickets.