alandefreitas / clang-unformat

A simple tool to infer a .clang-format file from existing code
Boost Software License 1.0
58 stars 13 forks source link

Have at least one release of the code with a pre-compiled binary #5

Open Pirulax opened 2 years ago

Pirulax commented 2 years ago

Since this project has some dependencies (Like boost), I'd be nice to have a pre-compiled binary of it. Thank you!

ShamrockLee commented 1 year ago

I'm planning to package it for the Nixpkgs package collection, which would allow it to be used on supported platforms such as Linux and Mac OS. However, it's encouraged to reference a tagged revision instead of chasing behind the master branch. AFAIK, many packaging projects also expect / require an official version tag from the upstream.

It would be great for this excellent project to have git tags representing the version. A release can be added onto a git version tag.

2.6 Git Basics - Tagging | Git Book https://git-scm.com/book/en/v2/Git-Basics-Tagging

About releases | GitHub Doc https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases

alandefreitas commented 1 year ago

Definitely.

I usually maintain these semver version tags properly in other projects (such as [1] and [2]).

The only reason I didn't do that here is I didn't have high hopes for this project. I just shared it to get some feedback at first.

Maintaining proper version tags is easy. Providing pre-compiled binaries is a little more complex. Vcpkg can easily take care of boost and fmt without changing anything in CMakeLists.txt though.

alandefreitas commented 1 year ago

Since only boost doesn't have a FetchContent alternative in CMakeLists.txt, we could use https://github.com/alandefreitas/FetchBoostContent to provide that alternative. In this case, the user wouldn't need any of the dependencies available to compile the application.

ShamrockLee commented 1 year ago

@alandefreitas On the other hand, how do I manually specify the libraries (such as futures) to use instead of fetching them?

Nixpkgs, and RPM doesn't allow arbitrary internet access during build, and it would be very helpful to have the fetch-free build instruction included in the README.

alandefreitas commented 1 year ago

You can also find_package(futures QUIET). The library can be installed and has a CMake config script. It doesn't exist in any package manager though. The packages are only available in the original repo. It's not in version 1.0.0 yet.