{"id":16889371,"url":"https://github.com/dcbaker/meson-plus-plus","last_synced_at":"2025-03-15T14:30:31.172Z","repository":{"id":43385203,"uuid":"337530254","full_name":"dcbaker/meson-plus-plus","owner":"dcbaker","description":"An experimental and incomplete implementation of Meson in C++, for solving Meson's bootstrapping issue.","archived":false,"fork":false,"pushed_at":"2024-12-21T00:55:40.000Z","size":858,"stargazers_count":53,"open_issues_count":38,"forks_count":9,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-02-27T02:42:33.712Z","etag":null,"topics":["build-system","meson"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dcbaker.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-09T20:38:54.000Z","updated_at":"2025-02-26T03:06:41.000Z","dependencies_parsed_at":"2024-10-27T00:58:00.792Z","dependency_job_id":null,"html_url":"https://github.com/dcbaker/meson-plus-plus","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcbaker%2Fmeson-plus-plus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcbaker%2Fmeson-plus-plus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcbaker%2Fmeson-plus-plus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dcbaker%2Fmeson-plus-plus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dcbaker","download_url":"https://codeload.github.com/dcbaker/meson-plus-plus/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243742520,"owners_count":20340662,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["build-system","meson"],"created_at":"2024-10-13T16:56:57.894Z","updated_at":"2025-03-15T14:30:30.660Z","avatar_url":"https://github.com/dcbaker.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Meson++\n\nAn experiment to implement Meson in C++\n\nThe project is advancing rapidly, but there's still a *lot* of work to do\nbefore it can be considered production ready.\n\n## What is the status of Meson++? Can I use it for my project?\n\nCurrently, Meson++ is capable of compiling simple C++ executables \nand static archives, as well as some custom_targets. There is a lot of\nfunctionality still missing, including dependencies.\n\nCurrently, I'm pushing toward getting meson++ to be self hosting, to that\nend some features may not be implemented completely, only enough to self host.\nOnce self hosting is achieved, I'll begin to flesh out support and fix bugs.\n\n## FAQ\n\n### Why another Meson implementation?\n\nI had two reasons for doing this. First, it was an interesting challenge and\na learning experience. I've never written something this big from scratch,\nand certainly not in a language that isn't Python.\n\nSecond, I wanted to solve Meson's bootstrap problem. Python is a fantastic\nlanguage in a lot of ways, but, as a high level language it's easy to end up\nin a bootstrap loop, you need Python to build X which you need to build\nPython. Meson++ can avoid that be being written in a common low level\nlanguage, and use conditional compilation to minimize dependencies.\n\n### Why C++‽ C++ is ...!\n\nC++ is many things, some of them good, some of them bad. I personally feel\nthat some of its bad reputation comes from those who've only experienced C++\nbefore C++11, modern C++ is much nicer.\n\nI did consider two other languages before I started writing, Rust and\nHaskell. Both of these languages have their strengths, and would have made\nsome things easier. However, in both cases they would complicate my primary\nmotivation, solving the boostrapping issue.\n\nGiven that goal, I really only had two choices: C and C++. I will choose C++\nevery time given those choices. It provides better cross platform interfaces,\nresource management (RAII), and programming features: generics, overloading,\nnamespaces, strings that aren't char arrays, etc.\n\n## Differences between Meson and Meson++\n\n### Feature not bug compatibility\n\nMeson++ strives for feature parity (currently aiming for Meson 0.58), but not\nbug parity. So Meson++ may advertise support for Meson \u003e= 0.58.0, but\nmay not have all of the bugs of 0.58.0.\n\n### Modules\n\nMeson's modules represent a huge amount of time and energy to produce and\nmaintain. I simply do not have the time and energy to re-implement every one\nof them to feature parity. I will make an effort to keep a few of the very\ncommon and important ones working, but help is very much welcome for the rest.\n\n### Command line and env variables\n\nThough not yet implemented, Meson++ will likely not provide a drop-in\nreplacement for Meson's cli interface. If there is need for that a wrapper\nscript could be provided.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdcbaker%2Fmeson-plus-plus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdcbaker%2Fmeson-plus-plus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdcbaker%2Fmeson-plus-plus/lists"}