Add linux premake binary for 32 and 64 bit Linuxes. premake5-linux
script does a naive 32/64 bit test, and runs the appropriate binary.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@iki.fi>
We again have code that does not compile with gcc:
../../../src/CppParser/AST.h:770:19: error: declaration of
‘CppSharp::CppParser::AST::MacroLocation
CppSharp::CppParser::AST::PreprocessedEntity::MacroLocation’
[-fpermissive]
MacroLocation MacroLocation;
^
../../../src/CppParser/AST.h:756:12: error: changes meaning of
‘MacroLocation’ from ‘enum class
CppSharp::CppParser::AST::MacroLocation’ [-fpermissive]
enum class MacroLocation
Instead of trying to figure out a good name for the property, and to
avoid the same issues in the future, let's just add the -fpermissive
flag back.
Maybe it can be removed in the future if and when Linux support works
well and is supported by the build test bot.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@iki.fi>
At least on linux with gcc the linking order of the libraries is
important. Fix linking llvm and clang libraries by changing the link
order: clang libs first, llvm libraries second.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@iki.fi>
At least on linux with gcc the linking order of the libraries is
important. Fix linking llvm libraries by changing the link order.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@iki.fi>
At least on linux with gcc the linking order of the libraries is
important. Fix linking clang libraries by changing the link order.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@iki.fi>
Now that the warnings have been fixed, we no longer need -fpermissive to
compile CppParser with gcc.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@iki.fi>
DriverOptions.Is32Bit is used to decide whether to use 4 or 8 byte
pointer size in VTable calculations.
Instead of having a settable Is32Bit property, use
TargetInfo.PointerWidth for this. This allows us to remove the whole
Is32Bit property, and the IS_64_BIT define.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@iki.fi>
"libdirs { libdir }" in the main premake4.lua file causes Debug_x32
directory to be added for the libdirs for all builds. I think that's a
bug in premake, as at the same place setting, say, "targetdir" works
fine.
However, setting "libdir" to "libdirs" is not needed at all, so let's remove it.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@iki.fi>
Linux is case-sensitive with filenames, and as the NUnit library files
are lowercase, we need to use lowercase in the build files also.
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@iki.fi>
* Use clangIndex to identify declarations across translation units.
* Added new Find*ByUSR methods and removed unused Find*(IntPtr) methods.
* Added Depth/Index and IsParameterPack fields to TemplateParameterType.
* Fixed member initialization issues in C++ Method class.
* Added AST tests for function and class templates.
* All tests pass with new and old parser.
This library exists only in recent llvm, so adding it to link, breaks windows builds...
Premake do not allow this, so implement StaticLinksOpt in Helpers.lua
We now ignore CLI and native projects when running the VS action under non-Windows platforms (so that Xamarin Studio can load them).
Also fixed the build to actually add the correct parser bindings sources.