-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Stable API for wrapper generators #17
Comments
Need to add support for interfacing with C++ package managers, at least with conan. Tried using it in CI builds - absolutely awesome, amounts to several very simple commands and one (not really obvious though) flag passed to the gcc - pip install conan
conan install . --build=missing
nimble -y develop
nim c -r \
--passL:"@$(pwd)/conanbuildinfo.gcc" \
--passC:"@$(pwd)/conanbuildinfo.gcc" \
-d:libgit2LinkMode=dlink \
-d:libssh2LinkMode=dlink \
tests/test1.nim |
In addition to the API wrapper generation, it is also necessary to properly reuse all the type import maps from the dependencies. For example, libssh2 contains a file with all the types encountered when wrapping this library. When libgit wrapper is generated, it must know a list of dependencies to be able to properly read import maps. In an ideal world, this could've been solved by asking package manager to list the locations of all the dependencies, and then simply searching for the |
- ADDED :: - Find absolute paths to type import maps using list of paths (expected to be derived from the `nim dump` command, but any source would work) - RELATED :: - #17
Stable documented API for automatically writing wrapper generators scripts using multiple parsing frontends and code expansion logic. Ideally it should not be necessary in large number of cases (for simpler libraries), but something like this libgit wrappers
or this libssh2 wrappers
is necessary. This API can further be expanded on, to automate handling of the conan packages, git and github repositories, automatic tracking of changes (#9) and so on.
The text was updated successfully, but these errors were encountered: