Jinx
cmake-init-vcpkg-example
Jinx | cmake-init-vcpkg-example | |
---|---|---|
26 | 19 | |
291 | 9 | |
- | - | |
0.0 | 5.6 | |
over 1 year ago | about 2 months 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.
Jinx
-
DreamBerd is a perfect programming language
Check out jinx https://jamesboer.github.io/Jinx/
-
what is your CI/CD pipeline setup and how are you handling larger binaries? are smaller game dev studios just brute forcing through LFS and building for each test?
Don't get me wrong, I'm a big fan of automated tests where it makes sense. I wrote a scripting language that I use for my personal game projects, and I never would have been able to do it if it weren't for the battery of tests for every feature, error, and corner case I could think of. But games are rarely like other software, with hard rules about what is "correct" or "incorrect". And it would be a nightmare to try to keep up with designers, constantly tweaking and tuning, so what's "correct" is literally a day to day, constantly moving target.
-
any modern procedural programming languages?
A second trial for you might be Jinx. Depending on your definition of procedural, Jinx is 100% only procedural. https://jamesboer.github.io/Jinx/
-
Which phases/stages does your programming language use?
Jinx (embeddable scripting language) works as following:
- How do I create a file that will automatically compile and run my c++ program when I double click it?
-
Is I already know C and OOP, do I basically already know C++?
Feel free to look at my own interpreter, written in modern C++. You're welcome to ask me if you have any questions.
-
I'm curious what a gameplay programmer would use a scripting language for
I use my own scripting language more like content, especially for things like one-off events and behaviors. Example: scripting special behaviors for a boss fight, or a room with a unique trap in it, or any other sort of one-off behavior that would be overkill for C++, but too complex for most other types of data-driven content. These days, visual scripting also helps to fill in these gaps between content and procedure.
-
What are the best free books for learning to write interpreters in C++?
You're welcome to look at my scripting language Jinx, written in modern C++. Just let me know if you have specific questions. Data flow is JxLexer.cpp -> JxParser.cpp -> JxScript.cpp. Most everything else is implementation details. Also, note the parer is pretty complex, mostly because Jinx has a crazily flexible syntax for functions.
-
Design examples for runtime scripting
Feel free to look at Jinx if you want an example of what I consider a fairly easy-to-use and integrate scripting system. Obviously, I'm a bit biased since I wrote it.
-
Is just UTF-8 support good enough?
If you're working in UTF-8 internally, you could just write your own UTF-16 to UTF-8 conversion functions to convert strings at API boundaries. I did this in my scripting language because I didn't want to bring in dependencies.
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?
vigil - Vigil, the eternal morally vigilant programming language
CPM.cmake - 📦 CMake's missing package manager. A small CMake script for setup-free, cross-platform, reproducible dependency management.
funl - FunL programming language
steam-runtime - A runtime environment for Steam applications
RapidJSON - A fast JSON parser/generator for C++ with both SAX/DOM style API
conan-center-index - Recipes for the ConanCenter repository
utf8.h - 📚 single header utf8 string functions for C and C++
Folly - An open-source C++ library developed and used at Facebook.
langs
CMake - Mirror of CMake upstream repository
zhetapi - A C++ ML and numerical analysis API, with an accompanying scripting language.
Jenkins - Jenkins automation server