* 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
* Trigger debug break on assert
* Fix crashes in debug builds causing CI to fail
Implementation is based on #1819.
* Update to actions/<upload/download>-artifact@v4
Adds two macros to the CppParser/Parser.cpp for custom assert. They print out a message regardless is release or debug enabled. Abort is only called with debug.
Macro `assertm` just prints out the message if the condition is false. Macro `assertml` also prints out the given source location to indicate where parsing fails.
Macro `assertml` is not used often but might be good to be used more.
Also, I removed an assert that seems pointless as if check before it handles it already.
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.
If a type shares a name with a system function, such as, well, "system()", declaring the type by name alone is taken as the function. So we need to prefix the type with "class" or "struct" as appropriate.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
- The Visual Studio C++ compiler does not allow to access Headers[i+1]
when i+1 points past the last element.
Doing so raises an exception when in
debug mode
Co-authored-by: Christian Kolek <Christian.Kolek@teamviewer.com>