* Implement support for properties in Emscripten generator.
* CLI: Fix option validation to check for valid Emscripten platform.
* Ignore functions returning tag types for now in JS generation.
* Use a Lua bindings spec file for Emscripten tests.
* Improve JS testing scripts.
* Only run packing step for release CI builds.
* Allow static class conversion for classes with implicitly defined constructor
* Fix static being applied to classes without static methods/fields
* Fix static class edge cases
* Add additional debug configuration
I've added the DebugOpt config for a better debugging experience.
This version enables some optimizations and uses `_ITERATOR_DEBUG_LEVEL=0` to remove many of the slowdowns of traditional debugging while still keeping the debuggability of the app intact.
It uses the release versions of llvm and crt.
* Enable native debugging when running *.Gen test projects from vs2022
* Move msvc specific define to msc toolset filter
* Update CI to build all configurations
* Ignore crashing unit test in debug builds
* Attempt to fix upload-artifact CI step
* Use msclr string marshallers
* Fix two bugs in Driver.cs
* Update parser bindings
* Add debug mode parser bindings
* Disable CI test step in windows debug
I do not know I'm first to encounter this, however, loop that removes module without translation units, could not have worked.
In C# Enumerator prohibs editing the collection so you cannot remove modules from `options.Module` while iterating `options.Mobule`.
Chose `RemoveAll` for its simplicity. Not necessary optimal solution although it might be.
Co-authored-by: HenrikVDestia <henrik.valve@destia.fi>
* Major refactoring: refactor GeneratorKind enum into a class
* Minor fix: add readonly
* Add Type property for GenerationKind + cleanup
* GeneratorKind: add Name property + refactor hardcoded names
* GeneratorKind: add CLIOptions property + refactor hardcoded options
* CppSharp.CLI: minor fix: use generator.ToLower()
* GeneratorKind: fix warning
* support clang 15.0.7
* Fix Premake archive logic to work with official releases.
* Try and upgrade CI to latest OS versions.
* Try and fix LLD link call in parser.
* CI fixes.
* Enable VS 2019 and VS 2022 for LLVM windows workflow.
* Update to a more recent LLVM revision.
* More build fixes.
* Use the system linker for linking symbols libraries outside Windows.
Builtin lld is giving some weird linking errors when linking with the
new LLVM version. We probably need to set some custom options. Using the
system linker should be a better idea anyway, more robust and future
proof.
---------
Co-authored-by: you74674 <you74674@gmail.com>
* Fix missing Attribute dtor in GCC 11.
Parser bindings are expecting this, yet this was optimized out under GCC
11.
* Improve error handling for failed library parsing.
* Make the converted declaration cache more robust.
We were getting a failure due to duplicated original pointers. Make it
take the declaration kind into account as a key to the cache.
* Change ConsoleDriver.Run to return a failure bool.
CodeDom doesn't work in .NET Core (https://github.com/dotnet/runtime/issues/18768) and Roslyn turns out to be too low level (just a compiler and not a building framework) so the best approach is to invoke msbuild as a process.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
Functions of template specializations can have their symbols compiled by having their addresses taken just like regular functions. This way we take just the necessary symbols compared to exporting entire templates which both compile useless symbols and skip actually needed ones.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>