[CDRIVER-2474] Build release archive with CMake Created: 27/Jan/18  Updated: 28/Oct/23  Resolved: 05/Apr/18

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

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

Issue Links:
Depends
depends on CDRIVER-2523 Implement 'man' and 'html' targets in... Closed
Epic Link: Remove Autotools
Backwards Compatibility: Fully Compatible

 Description   

We've been building release tarballs with the Autotools for both libmongoc and libbson. Port this feature to CMake. Let's only build a release tarball for libmongoc from now on: we had already included a bundled libbson in libmongoc's release tarball, so we can stop publishing a tarball for libbson now.

The contents of the libmongoc release tarball built by CMake should be nearly the same as the one we used to build with the Autotools. Some files will disappear:

  • libbson had its own copies of LoadVersion.cmake and MaintainerFlags.cmake in src/libbson/build/cmake, those are now deleted because they're copies of libmongoc's files
  • all the Autotools scripts will be deleted

The check-release-archive.sh script in the repository is run on Evergreen to build the release archive with the Autotools. It runs "make distcheck" and also runs additional checks. This script should build a CMake target instead of running "make distcheck", and it should apply the same set of checks to files included from libbson as it already does to files included from libmongoc.



 Comments   
Comment by Githook User [ 06/Apr/18 ]

Author:

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

Message: CDRIVER-2474 update "make dist" for older cmake, 2

Older CMake's file-copy command can't handle symlinks, so replace the
symlink from 7750279a.0 to ca.pem with an actual file.
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/b1d4ddeacbe8ed4dd3affed45d1182aa9c4f7351

Comment by Githook User [ 06/Apr/18 ]

Author:

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

Message: CDRIVER-2474 git ignore dist_manifests.txt
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/ac59ec8a24f0185b4a3169e7cb0d0e6759efff15

Comment by Githook User [ 06/Apr/18 ]

Author:

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

Message: CDRIVER-2474 update "make dist" for older cmake
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/0030e538ef9c5656f939d80f4ee3c70f61fe8a1b

Comment by Githook User [ 30/Mar/18 ]

Author:

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

Message: CDRIVER-2474 implement distcheck target for cmake build
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/731d1ed8a2b4905cbaf2de36c436587eb3ad623c

Comment by Githook User [ 30/Mar/18 ]

Author:

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

Message: CDRIVER-2474 add new CMake scripts to autotools dist
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/dce89044a33ee6b017b481a94b613cd8c862ddf1

Comment by Githook User [ 27/Mar/18 ]

Author:

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

Message: CDRIVER-2474 support source release with cmake
Branch: master
https://github.com/mongodb/mongo-c-driver/commit/2afdf86cc924f092b7abf6d0905c4ec9ef567a7d

Comment by Roberto Sanchez [ 24/Feb/18 ]

Agreed.

Comment by A. Jesse Jiryu Davis [ 24/Feb/18 ]

Thanks very much Roberto. I agree with your conclusion: it sounds like we need to build custom targets using CMake script, modeled on GnuCash. I skimmed GnuCash's CMake files and it looks like a substantial amount of code but straightforward. We want to continue naming which files to include, rather than which files to exclude, and option number 3 is the only way to do that.

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