Opened 7 years ago

Last modified 5 years ago

#7080 closed enhancement

Migrate build system to CMake — at Initial Version

Reported by: miurahr Owned by: warmerdam
Priority: normal Milestone: closed_because_of_github_migration
Component: ConfigBuild Version: svn-trunk
Severity: major Keywords: cmake
Cc:

Description

There were initiatives to migrate build system to CMake in 2012-2013, CMAKE4GDAL project. I have now been developing a build configuration on CMake that continues CMake4Gdal project https://github.com/miurahr/gdal/commits/compile_with_cmake

I do it because it seems to be a good chance to challenge again. There are a couple of reasons.

  • CMake support gcc, clang, mingw and VC++
  • CMake support GNU Make(Linux), Ninja(VS/Windows), nmake(VC++), XCode(mac)

Other merits we will get after successfully migrating to CMake on all platforms

  • Incremental compile and test that improve productivity
  • Out-of-source compile that help Appvoyer / Travis CI tests speedy, developers can test it in multiple options.
  • Single build configuration for all platforms.

Demerit

  • There are not enough documentation for CMake.
  • We are not fluent for CMake now.

So migrating to CMake should be considered carefully. I'd like to propose a step-by-step migration strategy.

  1. Develop CMake configuration on topic branch or github project.
  1. Merge CMake build configuration co-existence with GNU Make and VC configurations. (2.3 or 2.4) and add CI test on Travis / Appvoyer for cmake. Now it is a state of a technical preview. Still team will release binaries building with legacy build system. At this time, all contributor should aware that he/she should update both cmake and legacy one.
  1. Drop legacy build system when every core developers satisfy CMake/IDE experiences. (3.0 or 4.0)

Change History (0)

Note: See TracTickets for help on using tickets.