Repository navigation
fribidi-m: GNU FriBidi 1.0.16 as C++23 modules (mcpplibs.mwrap.fribidi) - #1
Merged
Merged
Conversation
…om the pinned headers; API, macro and header-mixing tests; export audit
…runners on the module; tools/run_conformance.py runs FriBidi's whole test suite on them
…ntation, CI, release and template workflows
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
GNU FriBidi 1.0.16 as C++23 modules over
compat.fribidi1.0.16, following mcpp-index's mwrap specification.import mcpplibs.mwrap.fribidi;: every type, enumerator,FRIBIDI_ENTRYfunction (the deprecated ones too) and variable of the headers upstream installs, byexport using(the upstream globals). Generated bytools/gen_exports.pyfrom the pinned release's headers, as a C++ translation unit sees them.fribidi_debug_status/fribidi_set_debugare declared byfribidi-common.houtside itsextern "C"block (C++ linkage: a call from C++ does not link); adapted under their names inmcpplibs::mwrap::fribidi, calling the C functions.import mcpplibs.mwrap.fribidi.macros;: 171 object-like macros asinline constexprof their C++ expansion's type, 55 function-like macros as constexpr function templates whose body is the macro itself (macro value, type and value category for every argument type; assigning macros take the argument by reference). Attributes,extern "C"brackets, pragmas and the X-macro protocol stay in<mwrap/fribidi/macros.hpp>.examples/fribidi(upstream'sfribidiprogram and conformance runners ported to the module): the 6 charset tests byte for byte, BidiTest.txt (770,241) and BidiCharacterTest.txt (91,707), nothing excluded.upstream/with checksums and deployed byruntime.deploy; LGPL obligations of static linking documented; the ported examples stay LGPL-2.1-or-later.bidi; bilingual README.