[CDRIVER-1349] Delete Autotools build system, use CMake only Created: 30/Jun/16  Updated: 28/May/18  Resolved: 14/May/18

Status: Closed
Project: C Driver
Component/s: Build
Affects Version/s: None
Fix Version/s: 1.10.0

Type: Improvement Priority: Major - P3
Reporter: A. Jesse Jiryu Davis Assignee: Roberto Sanchez
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Depends
is depended on by CDRIVER-2505 Make libmongoc a sub-project in mongo... Closed
is depended on by CDRIVER-2607 brew packaging should honor --HEAD Closed
Duplicate
duplicates CDRIVER-2496 Completely remove autotools in favor ... Closed
Problem/Incident
causes CDRIVER-2668 mongoc-stat built but not installed Closed
Related
related to CDRIVER-2363 Vendor the bundled zlib with the Auto... Closed
related to PHPC-1075 Import libbson and libmongoc Autotool... Closed
related to CDRIVER-1120 Distribute Visual Studio solution files Closed
related to PHPC-1174 Upgrade bundled libbson and libmongoc... Closed
Epic Link: Remove Autotools
Backwards Compatibility: Major Change

 Description   

libbson and libmongoc both have CMake build systems (intended for MS Visual C++ builds on Windows) and Autotools build systems. There's no need for two systems, let's standardize on CMake.

Find all features supported only by the Autotools build. Any that are worthwhile, implement CMake support for them. Ensure any examples that are built with the Autotools are also built with CMake. Make sure that all the important options in ReadCommandLineArguments.m4 are also supported in CMake. There may be some that are already supported with builtin CMake features, e.g. --enable-debug is already supported using CMAKE_BUILD_TYPE.

Update documentation to describe building the driver with CMake. Advise users to disable automatic init and cleanup and to disable extra alignment.



 Comments   
Comment by Githook User [ 15/May/18 ]

Author:

{'email': 'roberto@connexer.com', 'username': 'rcsanchez97', 'name': 'Roberto C. Sánchez'}

Message: CDRIVER-1349 let CMake calculate package config directories
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/2a18b4cc739ca3f8eae8bb6162b8f3968451734b

Comment by Githook User [ 05/May/18 ]

Author:

{'email': 'jesse@mongodb.com', 'name': 'A. Jesse Jiryu Davis', 'username': 'ajdavis'}

Message: CDRIVER-1349 remove stray mentions of ./configure
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/f089e2d90f03fa71a7ba77e6e4b826f383b849c6

Comment by Githook User [ 04/May/18 ]

Author:

{'email': 'roberto@connexer.com', 'name': 'Roberto C. Sánchez', 'username': 'rcsanchez97'}

Message: CDRIVER-1349 drop autotools build infrastructure
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/dd52f420ac53f03d4c06b96c08fa264a0af9e9d4

Comment by Githook User [ 14/Apr/18 ]

Author:

{'email': 'jesse@mongodb.com', 'name': 'A. Jesse Jiryu Davis', 'username': 'ajdavis'}

Message: CDRIVER-1349 always set rpath on mac
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/213cf4b1e30eadd9faac8d91a99275faacef8373

Comment by Githook User [ 10/Apr/18 ]

Author:

{'email': 'jesse@mongodb.com', 'name': 'A. Jesse Jiryu Davis', 'username': 'ajdavis'}

Message: CDRIVER-1349 cmake option disables extra align, 2
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/d4ff5ba31e0d87d275151a406dee6137c3e5e0fd

Comment by Githook User [ 10/Apr/18 ]

Author:

{'email': 'jesse@mongodb.com', 'name': 'A. Jesse Jiryu Davis', 'username': 'ajdavis'}

Message: CDRIVER-1349 needless validation of option
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/9bd4c258e35f5076d81d3659e20eb92e2d11edfd

Comment by Githook User [ 10/Apr/18 ]

Author:

{'email': 'jesse@mongodb.com', 'name': 'A. Jesse Jiryu Davis', 'username': 'ajdavis'}

Message: CDRIVER-1349 cmake option to disable extra align
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/2f61d9286c8f4e137d263d6d22bd37ef406a1310

Comment by Githook User [ 07/Apr/18 ]

Author:

{'email': 'jesse@mongodb.com', 'name': 'A. Jesse Jiryu Davis', 'username': 'ajdavis'}

Message: CDRIVER-1349 use ZLIB_LIBRARIES, not ZLIB_LIBS
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/ad513e244ecd9103dc6158813edef64f7cc2664d

Comment by Githook User [ 07/Apr/18 ]

Author:

{'email': 'jesse@mongodb.com', 'name': 'A. Jesse Jiryu Davis', 'username': 'ajdavis'}

Message: CDRIVER-1349 use "make check" on travis
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/4ffd2ac0d5e2ce2055f35390323c9547e85b327f

Comment by Githook User [ 06/Apr/18 ]

Author:

{'email': 'jesse@mongodb.com', 'name': 'A. Jesse Jiryu Davis', 'username': 'ajdavis'}

Message: CDRIVER-1349 update scan-build tests for cmake
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/2208d5ec2de526d6889820a408bb407b5d3bc8bd

Comment by Githook User [ 06/Apr/18 ]

Author:

{'email': 'jesse@mongodb.com', 'name': 'A. Jesse Jiryu Davis', 'username': 'ajdavis'}

Message: CDRIVER-1349 build only with cmake in Evergreen
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/732b3ca7a7f6bc75757299445bd4c1f8b544c84d

Comment by Githook User [ 06/Apr/18 ]

Author:

{'email': 'jesse@mongodb.com', 'name': 'A. Jesse Jiryu Davis', 'username': 'ajdavis'}

Message: CDRIVER-1349 improve cmake config checks, 2
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/ad5168640443a915095785121efe70cbac6cdb5d

Comment by Githook User [ 06/Apr/18 ]

Author:

{'email': 'jesse@mongodb.com', 'name': 'A. Jesse Jiryu Davis', 'username': 'ajdavis'}

Message: CDRIVER-1349 build with cmake in Travis
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/01f5851749b764a7b3b2e990e4afb9c697c6d730

Comment by Githook User [ 06/Apr/18 ]

Author:

{'email': 'jesse@mongodb.com', 'name': 'A. Jesse Jiryu Davis', 'username': 'ajdavis'}

Message: CDRIVER-1349 show Unix paths in CMake help

Don't show Windows-style paths now that CMake is used everywhere.
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/29842581714001425a74e36fa75e25017d17bc1a

Comment by Githook User [ 06/Apr/18 ]

Author:

{'email': 'jesse@mongodb.com', 'name': 'A. Jesse Jiryu Davis', 'username': 'ajdavis'}

Message: CDRIVER-1349 enable code coverage with cmake
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/ddf7419d44e59ac2e5607a5570bca2c9cc28580e

Comment by Githook User [ 06/Apr/18 ]

Author:

{'email': 'jesse@mongodb.com', 'name': 'A. Jesse Jiryu Davis', 'username': 'ajdavis'}

Message: CDRIVER-1349 improve cmake config checks

clock_gettime, strnlen, and syscall aren't in standard C, but CMake's
check_function_exists thinks they are allowed in C99/C11 because they
link successfully. Use check_symbol_exists for a more rigorous test.

Avoid errors if Snappy or SASL is set to AUTO and no lib is found.
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/d10fb7363120f9bcd7a24b9469285f2f669311b2

Comment by Githook User [ 06/Apr/18 ]

Author:

{'email': 'jesse@mongodb.com', 'name': 'A. Jesse Jiryu Davis', 'username': 'ajdavis'}

Message: CDRIVER-1349 rename symbol to BSON_HAVE_STRINGS_H
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/7948c6cbd13ad824e63cb00c5df2e01959b8ca3d

Comment by Githook User [ 26/Feb/18 ]

Author:

{'email': 'roberto@connexer.com', 'name': 'Roberto C. Sánchez', 'username': 'rcsanchez97'}

Message: CDRIVER-1349 style cleanup of cmake scripts
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/87a10ea86762d57934c5a1617996a69bb6fe80e3

Comment by Githook User [ 20/Feb/18 ]

Author:

{'email': 'roberto@connexer.com', 'name': 'Roberto C. Sánchez', 'username': 'rcsanchez97'}

Message: CDRIVER-1349 style cleanup of cmake scripts
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/99a9a8c242443546f1342ae9a36ef6c13547f55a

Comment by Githook User [ 31/Jan/18 ]

Author:

{'email': 'jesse@mongodb.com', 'name': 'A. Jesse Jiryu Davis', 'username': 'ajdavis'}

Message: support memory counters on UNIX, but not Mac

Also, build mongoc-stat with CMake (CDRIVER-1349).
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/df89787dc5d6c5761a6043383c89d44b7699d783

Comment by Githook User [ 25/Jan/18 ]

Author:

{'name': 'A. Jesse Jiryu Davis', 'email': 'jesse@mongodb.com', 'username': 'ajdavis'}

Message: CDRIVER-1349 don't warn that cmake is unsupported
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/ec8a2062e33877bb9c35eafa794b2fc218365512

Comment by A. Jesse Jiryu Davis [ 10/Nov/17 ]

Reopening. In the year that has passed we've discovered that, in fact, we continue to develop the build system. That motivates me to make the build system easier to develop. Additionally we've seen additional popular projects like Snappy abruptly transition to CMake-only. Let's drop the Autotools build system after all. Downstreams like the PHP Driver can be adapted to handle this change. We don't need to rev to 2.0 to accomplish this.

Comment by A. Jesse Jiryu Davis [ 30/Jun/16 ]

This will require we port any remaining Autotools config options that aren't in the CMakeLists.txt for libbson or libmongoc.

Generated at Wed Feb 07 21:12:15 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.