Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions mcpp.toml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,12 @@ members = [
"tests/examples/archive",
"tests/examples/asio-module",
"tests/examples/asio-ssl",
"tests/examples/boost-assert",
"tests/examples/boost-config",
"tests/examples/boost-ext.ut",
"tests/examples/boost-throw-exception",
"tests/examples/boost-type-traits",
"tests/examples/boost-uuid",
"tests/examples/build-mcpp",
"tests/examples/c-ares",
"tests/examples/catch2",
Expand Down Expand Up @@ -46,6 +51,7 @@ members = [
"tests/examples/imgui",
"tests/examples/imgui-module",
"tests/examples/imgui-window",
"tests/examples/jwt-cpp",
"tests/examples/marzer.tomlplusplus",
"tests/examples/libmysqlclient",
"tests/examples/mysql-connector-cpp",
Expand Down
56 changes: 56 additions & 0 deletions pkgs/c/compat.boost-assert.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
-- Form B inline descriptor for Boost.Assert 1.92.0 — BOOST_ASSERT /
-- BOOST_VERIFY / BOOST_CURRENT_LOCATION / boost::source_location.
-- Part of the modular-boost header family; see compat.boost-config for the
-- family wiring and version-train policy (all five packages move together).
--
-- Header references: assert's own tree includes boost/config.hpp and
-- boost/cstdint.hpp, both shipped by compat.boost-config — hence the single
-- dep. Nothing else crosses the family boundary (verified by grep, matching
-- upstream CMakeLists' INTERFACE line: Boost::config only).
--
-- Header-only, traditional `#include` consumption; no CN mirror yet (plain
-- upstream URL, like boost-ext.ut); BSL-1.0.
package = {
spec = "1",
namespace = "compat",
name = "boost-assert",
description = "Boost.Assert 1.92.0 — configurable assert macros with source-location support",
licenses = {"BSL-1.0"},
repo = "https://github.com/boostorg/assert",
type = "package",

xpm = {
linux = {
["1.92.0"] = {
url = "https://github.com/boostorg/assert/archive/refs/tags/boost-1.92.0.tar.gz",
sha256 = "8d49fc69df12e8fbc0e7fe3c4ede45044747199ccdeaf66c2aebb146becc54aa",
},
},
macosx = {
["1.92.0"] = {
url = "https://github.com/boostorg/assert/archive/refs/tags/boost-1.92.0.tar.gz",
sha256 = "8d49fc69df12e8fbc0e7fe3c4ede45044747199ccdeaf66c2aebb146becc54aa",
},
},
windows = {
["1.92.0"] = {
url = "https://github.com/boostorg/assert/archive/refs/tags/boost-1.92.0.tar.gz",
sha256 = "8d49fc69df12e8fbc0e7fe3c4ede45044747199ccdeaf66c2aebb146becc54aa",
},
},
},

mcpp = {
language = "c++20",
import_std = false,
include_dirs = { "*/include" }, -- exposes boost/assert.hpp + friends
generated_files = {
["mcpp_generated/boost_assert_anchor.cpp"] = [==[
int mcpp_compat_boost_assert_anchor(void) { return 0; }
]==],
},
sources = { "mcpp_generated/boost_assert_anchor.cpp" },
targets = { ["boost_assert"] = { kind = "lib" } },
deps = { ["compat.boost-config"] = "1.92.0" },
},
}
78 changes: 78 additions & 0 deletions pkgs/c/compat.boost-config.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
-- Form B inline descriptor for Boost.Config 1.92.0 — the root of this index's
-- modular-boost header family. Each boostorg/<lib> repository is packaged from
-- its OWN release-train tag (`boost-1.92.0`) instead of the ~224 MiB monolith,
-- mirroring how vcpkg splits Boost into per-library ports: consumers download
-- exactly the closure they use (Config alone is ~300 KiB of archives).
--
-- Family wiring (verified by grepping every `<boost/...>` include across each
-- package's include tree AND cross-checked against each repo's CMakeLists
-- INTERFACE link line):
-- config -> (nothing)
-- assert -> config
-- type-traits -> config
-- throw-exception -> assert, config
-- uuid -> all four above
-- The five shipped header sets are pairwise disjoint, so five `*/include`
-- include roots union into one coherent `boost/` tree with no collisions.
-- Upgrades move the WHOLE train together (every boostorg repo tags the same
-- release); partial trains are untested territory.
--
-- Header-only, traditional `#include` consumption only — no module unit here.
-- Upstream ships none for Config, and this family deliberately stays on the
-- textual path (see compat.jwt-cpp / tests/examples/boost-*).
--
-- No CN mirror yet: plain-string upstream URL, like boost-ext.ut. Consumers in
-- CN fall back to the GLOBAL source until a maintainer backfills gitcode.
--
-- License: Boost Software License 1.0 (BSL-1.0), file LICENSE_1_0.txt.
package = {
spec = "1",
namespace = "compat",
name = "boost-config",
description = "Boost.Config 1.92.0 — platform/compiler/stdlib detection macros; root of the modular-boost header family",
licenses = {"BSL-1.0"},
repo = "https://github.com/boostorg/config",
type = "package",

xpm = {
linux = {
["1.92.0"] = {
url = "https://github.com/boostorg/config/archive/refs/tags/boost-1.92.0.tar.gz",
sha256 = "b4171037f13373203ba79cbc141d612982052283e696a315185ab5bea46102a0",
},
},
macosx = {
["1.92.0"] = {
url = "https://github.com/boostorg/config/archive/refs/tags/boost-1.92.0.tar.gz",
sha256 = "b4171037f13373203ba79cbc141d612982052283e696a315185ab5bea46102a0",
},
},
windows = {
["1.92.0"] = {
url = "https://github.com/boostorg/config/archive/refs/tags/boost-1.92.0.tar.gz",
sha256 = "b4171037f13373203ba79cbc141d612982052283e696a315185ab5bea46102a0",
},
},
},

mcpp = {
language = "c++20",
import_std = false,
-- Exposes `boost/` (config.hpp, version.hpp, detail/, no_tr1/, ...) so
-- consumers write `#include <boost/config.hpp>`. This package also owns
-- the family's shared oddments that live outside boost/config/: the
-- historical boost/cstdint.hpp, boost/limits.hpp, boost/static_assert.hpp,
-- boost/detail/workaround.hpp — and boost/version.hpp, which downstream
-- members assert against.
include_dirs = { "*/include" },
-- Header-only: a trivial anchor TU gives mcpp a buildable lib target.
generated_files = {
["mcpp_generated/boost_config_anchor.cpp"] = [==[
int mcpp_compat_boost_config_anchor(void) { return 0; }
]==],
},
sources = { "mcpp_generated/boost_config_anchor.cpp" },
targets = { ["boost_config"] = { kind = "lib" } },
deps = { },
},
}
58 changes: 58 additions & 0 deletions pkgs/c/compat.boost-throw-exception.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
-- Form B inline descriptor for Boost.ThrowException 1.92.0 —
-- BOOST_THROW_EXCEPTION and boost::throw_exception, the family's uniform
-- "raise a std::exception-derived error" path.
-- Part of the modular-boost header family; see compat.boost-config for the
-- family wiring and version-train policy.
--
-- Header references: throw_exception includes boost/assert/ (compat.boost-assert)
-- and boost/config/ (compat.boost-config); boost/exception/exception.hpp is its
-- own. Matches upstream CMakeLists' INTERFACE line: Boost::assert + Boost::config.
--
-- Header-only, traditional `#include` consumption; no CN mirror yet; BSL-1.0.
package = {
spec = "1",
namespace = "compat",
name = "boost-throw-exception",
description = "Boost.ThrowException 1.92.0 — common exception-raising infrastructure for Boost libraries",
licenses = {"BSL-1.0"},
repo = "https://github.com/boostorg/throw_exception",
type = "package",

xpm = {
linux = {
["1.92.0"] = {
url = "https://github.com/boostorg/throw_exception/archive/refs/tags/boost-1.92.0.tar.gz",
sha256 = "1ddbb967a43504e28bbe2a35a010df9f7ff5d1a49d3678c9fdfc035fd32ce005",
},
},
macosx = {
["1.92.0"] = {
url = "https://github.com/boostorg/throw_exception/archive/refs/tags/boost-1.92.0.tar.gz",
sha256 = "1ddbb967a43504e28bbe2a35a010df9f7ff5d1a49d3678c9fdfc035fd32ce005",
},
},
windows = {
["1.92.0"] = {
url = "https://github.com/boostorg/throw_exception/archive/refs/tags/boost-1.92.0.tar.gz",
sha256 = "1ddbb967a43504e28bbe2a35a010df9f7ff5d1a49d3678c9fdfc035fd32ce005",
},
},
},

mcpp = {
language = "c++20",
import_std = false,
include_dirs = { "*/include" }, -- exposes boost/throw_exception.hpp
generated_files = {
["mcpp_generated/boost_throw_exception_anchor.cpp"] = [==[
int mcpp_compat_boost_throw_exception_anchor(void) { return 0; }
]==],
},
sources = { "mcpp_generated/boost_throw_exception_anchor.cpp" },
targets = { ["boost_throw_exception"] = { kind = "lib" } },
deps = {
["compat.boost-assert"] = "1.92.0",
["compat.boost-config"] = "1.92.0",
},
},
}
57 changes: 57 additions & 0 deletions pkgs/c/compat.boost-type-traits.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
-- Form B inline descriptor for Boost.TypeTraits 1.92.0 — the is_same /
-- add_pointer / remove_cv / integral_constant family (the C++03-era trait
-- toolkit; modern code usually reaches for std:: traits, but Boost headers
-- still lean on these).
-- Part of the modular-boost header family; see compat.boost-config for the
-- family wiring and version-train policy.
--
-- Header references: type_traits includes boost/config/, boost/detail/
-- workarounds, boost/static_assert.hpp and boost/version.hpp — all shipped by
-- compat.boost-config. Matches upstream CMakeLists' INTERFACE line:
-- Boost::config + Boost::type_traits's own tree.
--
-- Header-only, traditional `#include` consumption; no CN mirror yet; BSL-1.0.
package = {
spec = "1",
namespace = "compat",
name = "boost-type-traits",
description = "Boost.TypeTraits 1.92.0 — compile-time type introspection traits",
licenses = {"BSL-1.0"},
repo = "https://github.com/boostorg/type_traits",
type = "package",

xpm = {
linux = {
["1.92.0"] = {
url = "https://github.com/boostorg/type_traits/archive/refs/tags/boost-1.92.0.tar.gz",
sha256 = "ee6c4d3d993f9138d9a77c57c3d91111aafed79add4f09f4e0a7effcfcdc0cae",
},
},
macosx = {
["1.92.0"] = {
url = "https://github.com/boostorg/type_traits/archive/refs/tags/boost-1.92.0.tar.gz",
sha256 = "ee6c4d3d993f9138d9a77c57c3d91111aafed79add4f09f4e0a7effcfcdc0cae",
},
},
windows = {
["1.92.0"] = {
url = "https://github.com/boostorg/type_traits/archive/refs/tags/boost-1.92.0.tar.gz",
sha256 = "ee6c4d3d993f9138d9a77c57c3d91111aafed79add4f09f4e0a7effcfcdc0cae",
},
},
},

mcpp = {
language = "c++20",
import_std = false,
include_dirs = { "*/include" }, -- exposes boost/type_traits/*
generated_files = {
["mcpp_generated/boost_type_traits_anchor.cpp"] = [==[
int mcpp_compat_boost_type_traits_anchor(void) { return 0; }
]==],
},
sources = { "mcpp_generated/boost_type_traits_anchor.cpp" },
targets = { ["boost_type_traits"] = { kind = "lib" } },
deps = { ["compat.boost-config"] = "1.92.0" },
},
}
73 changes: 73 additions & 0 deletions pkgs/c/compat.boost-uuid.lua
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
-- Form B inline descriptor for Boost.UUID 1.92.0 — RFC 4122/9562 UUIDs:
-- random (v4), name (SHA1/MD5 v5), time (v1/v6/v7) generators, string
-- round-trip, std::hash. Header-only since forever — the historical
-- src/sha1.cpp is long gone; sha1/md5/chacha20 live inline under detail/.
-- Part of the modular-boost header family; see compat.boost-config for the
-- family wiring and version-train policy.
--
-- Header references (verified by grep across the include tree, matching
-- upstream CMakeLists' INTERFACE line): boost/assert, boost/config,
-- boost/throw_exception, boost/type_traits — all packaged in this index as
-- compat.boost-{assert,config,throw-exception,type-traits}; everything else
-- stays inside boost/uuid/. The closure is exactly these four deps.
--
-- One upstream CMake wrinkle deliberately NOT carried over:
-- BOOST_UUID_LINK_LIBATOMIC adds -latomic as an INTERFACE link requirement on
-- GCC / non-Windows non-Apple Clang for the uint128 paths. Our consumer test
-- exercises the standard v4/name/string surface without it; add a linux
-- ldflags entry here only if a future member actually links 128-bit paths.
--
-- SIMD dispatch (SSE2..AVX10 via uuid_x86/generic .ipp) is auto-detected from
-- compiler/arch macros — no flags needed; BOOST_UUID_NO_SIMD is the escape
-- hatch if a toolchain ever misreports.
--
-- Header-only, traditional `#include` consumption; no CN mirror yet; BSL-1.0.
package = {
spec = "1",
namespace = "compat",
name = "boost-uuid",
description = "Boost.UUID 1.92.0 — RFC 4122/9562 UUID generation and parsing",
licenses = {"BSL-1.0"},
repo = "https://github.com/boostorg/uuid",
type = "package",

xpm = {
linux = {
["1.92.0"] = {
url = "https://github.com/boostorg/uuid/archive/refs/tags/boost-1.92.0.tar.gz",
sha256 = "a5fca6d0499b7e47e7bbdf59afb1aaf6876d7788b27c3c6b2bbacfc795234e35",
},
},
macosx = {
["1.92.0"] = {
url = "https://github.com/boostorg/uuid/archive/refs/tags/boost-1.92.0.tar.gz",
sha256 = "a5fca6d0499b7e47e7bbdf59afb1aaf6876d7788b27c3c6b2bbacfc795234e35",
},
},
windows = {
["1.92.0"] = {
url = "https://github.com/boostorg/uuid/archive/refs/tags/boost-1.92.0.tar.gz",
sha256 = "a5fca6d0499b7e47e7bbdf59afb1aaf6876d7788b27c3c6b2bbacfc795234e35",
},
},
},

mcpp = {
language = "c++20",
import_std = false,
include_dirs = { "*/include" }, -- exposes boost/uuid/* (+ boost/uuid.hpp shim)
generated_files = {
["mcpp_generated/boost_uuid_anchor.cpp"] = [==[
int mcpp_compat_boost_uuid_anchor(void) { return 0; }
]==],
},
sources = { "mcpp_generated/boost_uuid_anchor.cpp" },
targets = { ["boost_uuid"] = { kind = "lib" } },
deps = {
["compat.boost-assert"] = "1.92.0",
["compat.boost-config"] = "1.92.0",
["compat.boost-throw-exception"] = "1.92.0",
["compat.boost-type-traits"] = "1.92.0",
},
},
}
Loading
Loading