Medo
cmake-init-vcpkg-example
Our great sponsors
Medo | cmake-init-vcpkg-example | |
---|---|---|
12 | 19 | |
142 | 8 | |
- | - | |
4.5 | 4.7 | |
8 months ago | 14 days ago | |
C++ | CMake | |
MIT License | - |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Medo
- Peredvizhnikov Engine is a fully lock-free game engine written in C++20
-
De-Bloated Windows 11 Build Runs on 2GB of RAM
To me the most impressive recent example is a video editor developed for Haiku OS [0]. It fits on a 1.44MB floppy disk.
[0] https://github.com/smallstepforman/Medo
-
LosslessCut: The Swiss Army Knife of Lossless Video/Audio Editing
> does anybody know of an editor capable of cutting between inter frames?
https://github.com/smallstepforman/Medo
- A C++17 thread pool for high-performance scientific computing
-
Ask HN: How were video games from the 90s so efficient?
I’ve created a 4k UHD video editor for Haiku OS (https://github.com/smallstepforman/Medo), it’s a C++17 native app, with over 30 OpenGL GLSL effect plugins and addons, multi threaded Actor model, over 10 user languages, and the entire package file fits on a 1.44Mb floppy disk with space to spare. If I was really concerned about space, I could probably replace all .png resources with WebP and save another 200kb.
How is it so small? No external dependancies (uses stock Haiku packages), uses the standard C++ system API, and written by a developer that learned their trade on restrained systems from the 80’s. Look at the old Amiga stuff from that era.
-
HaikuOS running on real RISC-V hardware
At its core, Linux offers variety, while Haiku strives to be a unified system. There is only one official UI, one sound API, one filesystem, one preference system, etc. making Haiku easier to administer. The system kits are designed to work together.
For instance, I created a from scratch video editor for Haiku which does 4K UHD videos with OpenGL based plugins, with over 30 effects, and 10 languages. The installer package with no dependancies is 1.3Mb (fits on a floppy disk). https://github.com/smallstepforman/Medo Under Linux, I would require many more dependancies since I have so no guarantee what libraries or API the users have installed.
-
What GUI Library do you use?
My favourite - BeOS/Haiku Interface Kit (Link to my project with screenshot https://github.com/smallstepforman/Medo).
-
How to Use CMake Without the Agonizing Pain - Part 1
You can always use both ... example from my project: https://github.com/smallstepforman/Medo
-
Linux, macOS, and Windows running simultaneously on a first gen Core i5
Wait until you try Haiku on the same hardware. I’ve got a 4K video editor with no HW acceleration yet is smoother to edit videos than both OSX and Win10.
https://github.com/smallstepforman/Medo/raw/main/Docs/Medo.j...
-
Announcement: Haiku Media Editor - R1.0.0, Beta 1
https://github.com/smallstepforman/Medo It is for a opensource Media Operating System called Haiku Os, and it is less than 1.44 Mb open source very lightweight:
cmake-init-vcpkg-example
-
Clang-tidy ignore third party
If your dep is not on any of those, then you can write your own port with vcpkg very easily like this.
-
How would you create/maintain a new c++ project using modern tools/practices?
Are they only on git(hub)? You can write a vcpkg overlay port (example) or use FetchContent if the projects are FetchContent ready in a way that doesn't force FetchContent on people trying to build the project (example).
-
CMake/Make problem when compiling C++
Take a look at cmake-init, vcpkg and this example that shows how to pull dependencies from git(hub) using vcpkg's overlay ports.
-
How to download libraries with vcpkg?
cs50 doesn't appear to be present in the MS repo. No problem, you can write your own overlay port. You can find an example for that here: https://github.com/friendlyanon/cmake-init-vcpkg-example
-
Managing Newlib as a Project Dependency
You can take a look at vcpkg or Conan. Maybe vcpkg could be simpler here, because overlay ports are simpler to write than setting up Artifactory for Conan.
-
Best way to manage dependencies with c++?
Conan and vcpkg are the only options. I use them both, depends on what kinds of dependencies I want to pull. vcpkg is easier to setup custom one-off dependencies with using overlay ports, while Conan is faster at things if your profile fits one that has a pre-built binary in CCI. Both are trivial to integrate with a CMake project, see these examples for Conan and vcpkg.
-
Libraries
Here is an example that shows you how to write your own ports for libraries that don't have one provided by vcpkg. The alternative is doing it manually, but eh.
-
CMakePresets.json and vcpkg based GitHub Action workflows for C++
As part of the cmake-init examples I also have an example showing vcpkg integration with a CMake project with exact instructions on what that takes, which also involves CI.
-
Barbarian, an open and distributed Conan package index!
Overlay ports.
-
Problem with imported library
IMPORTED targets have directory scope, they aren't global like the other target types. Depending on what your project's type is and how it's used, the correct answer can vary from just requiring a path to be passed on the CLI to proper package management usage (e.g. vcpkg)
What are some alternatives?
xhyve - xhyve, a lightweight OS X virtualization solution
CPM.cmake - 📦 CMake's missing package manager. A small CMake script for setup-free, cross-platform, reproducible dependency management.
cmake-init - The missing CMake project initializer
steam-runtime - A runtime environment for Steam applications
thread-pool - BS::thread_pool: a fast, lightweight, and easy-to-use C++17 thread pool library
conan-center-index - Recipes for the ConanCenter repository
macOS-Simple-KVM - Tools to set up a quick macOS VM in QEMU, accelerated by KVM.
Folly - An open-source C++ library developed and used at Facebook.
OSX-KVM - Run macOS on QEMU/KVM. With OpenCore + Monterey + Ventura + Sonoma support now! Only commercial (paid) support is available now to avoid spammy issues. No Mac system is required.
CMake - Mirror of CMake upstream repository
VoxelSpace - Terrain rendering algorithm in less than 20 lines of code
Jenkins - Jenkins automation server