This is necessary in order to easily find the compiled symbols as dependencies and target of platform invocation.
Signed-off-by: Dimitar Dobrev <dpldobrev@protonmail.com>
- Added support for building with Clang and LLD
- Switched to use csc.exe Roslyn compiler under Mono
- Disable most of the support for explicit pre-C++11 ABI since we do not
need it anymore
GCC version is checked, if version is 4.8 or lower then cxx11 ABI is disabled. Added new `--no-cxx11-abi` option. It explicitly disables cxx11 ABI even on new compilers. This option is also taken into account when building LLVM.
In some environments mono defaults building managed targets in architecture different from the host (like AnyCPU or x86 on x64 host). For example on x64 host (linux) build system would produce i686 architecture managed executables while native libraries are built as amd64. In such case managed executables are unable to load native libraries because they target different native architectures. This change ensures architecture consistency between all built binaries.
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>
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.