Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Ports: request for feedback on several single-file header-only libraries #1489

Closed
15 tasks done
martinmoene opened this issue Jul 19, 2017 · 6 comments
Closed
15 tasks done
Labels
category:new-port The issue is requesting a new library to be added; consider making a PR!

Comments

@martinmoene
Copy link
Contributor

martinmoene commented Jul 19, 2017

Hi,

I've a couple of single file header-only libraries that may or may not be of interest to vcpkg. Before I'd plunge in, I'd like to hear if there's interest in one or more of the following. Please specify.

  • any-lite - PR 26-May-2019
    A single-file header-only C++17-like any, a type-safe container for single values of any type for C++98, C++11 and later.

  • byte-lite - PR 26-May-2019
    A single-file header-only C++17-like byte type for C++98, C++11 and later .

  • clue
    A tiny single-file header-only C++ logging framework.

  • expected-lite - PR 27-May-2019
    Expected objects for C++11 and later (and later perhaps C++98 ).

  • observer-ptr-lite - PR 28-May-2019
    A single-file header-only C++98, C++03, C++11, C++14 version of ISO C++17 std::observer_ptr.

  • optional-bare - PR 28-May-2019
    A simple version of a C++17-like optional for default-constructible, copyable types, for C++98 and later in a single-file header-only library.

  • optional-lite - PR 28-May-2019
    A single-file header-only version of a C++17-like optional, a nullable object for C++98, C++11 and later.

  • ring-span-lite - PR 30-May-2019
    A C++yy-like ring_span type for C++98, C++11 and later in a single-file header-only library.

  • span-lite - PR 31-May-2019
    A C++20-like span for C++98, C++11 and later in a single-file header-only library.

  • status-value-lite
    A class for status and optional value for C++11 and later, C++98 variant provided.

  • string-view-lite - PR 04-Jun-2019
    A C++17-like string_view for C++98, C++11 and later in a single-file header-only library .

  • type-lite
    Strong types for C++98, C++11 and later in a single-file header-only library .

  • value-ptr-lite
    A C++ smart-pointer with value semantics for C++98, C++11 and later in a single-file header-only library.

  • variant-lite - PR 01-Jun-2019
    A single-file header-only version of a C++17-like variant, a type-safe union for C++98, C++11 and later.

  • lest - 19-Feb-2019
    A modern, C++11-native, single-file header-only, tiny framework for unit-tests, TDD and BDD (includes C++98 variant). Note this is a light C++11 Catch variant, at 1/9 LOC (and less functionality).

@MVoz
Copy link
Contributor

MVoz commented Jul 19, 2017

если они участвуют в каких либо проектах, почему бы и нет. тем более если существует у какой либо библиотеки зависимость. кому надо, тот установит, были бы портированы заголовки ))

If they participate in any projects, why not. even more so if you have any library dependency.

@Fleischner
Copy link

Is there a reason that all are separate ports?
I see the intention that if you put the headers directly into an project you only add the required ones, but within vcpkg there is little advantage to have one port per header.
Wouldn't it make sense to combine all of them in a single library that offers c++17/20 backward comparability constructs for c++11/98?

@ras0219-msft
Copy link
Contributor

Separate ports is fine here (and somewhat preferable) because it helps to keep changes small and isolated. When expected-lite updates, there's no need to rebuild things that use optional-lite (as an example).

However, I could see value in a metapackage that installs all of them, for someone who knows they want all of @martinmoene's great stuff in a single easy command line :)

@martinmoene
Copy link
Contributor Author

@ras0219-msft Thanks :) Do you have a suggestion/example how such a metapackage may look like?

@grdowns
Copy link
Contributor

grdowns commented May 31, 2019

@martinmoene check out the port boost! Simply list the build dependencies in the CONTROL file and call set(VCPKG_POLICY_EMPTY_PACKAGE enabled) in portfile.cmake. Note within the boost example that some of the build dependencies are disabled for certain triplets e.g. occurrences of (!arm) based on which triplets that particular port builds for, which allows the metapackage to succeed in building for a triplet even though one of the dependencies may not. Let us know if you run into any problems and we will be more than happy to lend a hand.

@NancyLi1013
Copy link
Contributor

Hi @martinmoene thanks for posting this request and your contribution. Currently all the ports you put forward have been added to vcpkg. Please try to update vcpkg and use them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
category:new-port The issue is requesting a new library to be added; consider making a PR!
Projects
None yet
Development

No branches or pull requests

6 participants