Browse Source

Added exporting of std-symbols (#862)

pull/863/head
Mohit Mohta 8 years ago committed by Dimitar Dobrev
parent
commit
b4462274c2
  1. 9
      src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std-symbols.cpp
  2. 9
      src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std-symbols.cpp
  3. 9
      src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std-symbols.cpp
  4. 9
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std-symbols.cpp
  5. 9
      src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std-symbols.cpp
  6. 9
      src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std-symbols.cpp
  7. 3
      src/Generator/Driver.cs
  8. 1
      src/Generator/Passes/GenerateSymbolsPass.cs
  9. 7
      src/Generator/Passes/IgnoreSystemDeclarationsPass.cs
  10. 3
      src/Generator/Passes/SymbolsCodeGenerator.cs

9
src/CppParser/Bindings/CSharp/i686-apple-darwin12.4.0/Std-symbols.cpp

@ -1,8 +1,5 @@ @@ -1,8 +1,5 @@
#include <string>
#include <vector>
#include <map>
#include <unordered_map>
template class std::allocator<char>;
template class std::char_traits<char>;
template class std::basic_string<char, std::char_traits<char>, std::allocator<char>>;
template std::__1::allocator<char>::allocator() noexcept;
template std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::basic_string(const std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::value_type*, const std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::allocator_type&);
template const std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::value_type* std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::c_str() const noexcept;

9
src/CppParser/Bindings/CSharp/i686-pc-win32-msvc/Std-symbols.cpp

@ -1,8 +1,5 @@ @@ -1,8 +1,5 @@
#include <string>
#include <vector>
#include <map>
#include <unordered_map>
template class __declspec(dllexport) std::allocator<char>;
template class __declspec(dllexport) std::basic_string<char, std::char_traits<char>, std::allocator<char>>;
template class __declspec(dllexport) std::char_traits<char>;
template __declspec(dllexport) std::allocator<char>::allocator() noexcept;
template __declspec(dllexport) std::basic_string<char, std::char_traits<char>, std::allocator<char>>::basic_string(const char*, const std::allocator<char>&);
template __declspec(dllexport) const char* std::basic_string<char, std::char_traits<char>, std::allocator<char>>::c_str() const noexcept;

9
src/CppParser/Bindings/CSharp/x86_64-apple-darwin12.4.0/Std-symbols.cpp

@ -1,8 +1,5 @@ @@ -1,8 +1,5 @@
#include <string>
#include <vector>
#include <map>
#include <unordered_map>
template class std::allocator<char>;
template class std::char_traits<char>;
template class std::basic_string<char, std::char_traits<char>, std::allocator<char>>;
template std::__1::allocator<char>::allocator() noexcept;
template std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::basic_string(const std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::value_type*, const std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::allocator_type&);
template const std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::value_type* std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char>>::c_str() const noexcept;

9
src/CppParser/Bindings/CSharp/x86_64-linux-gnu-cxx11abi/Std-symbols.cpp

@ -1,8 +1,5 @@ @@ -1,8 +1,5 @@
#include <string>
#include <vector>
#include <map>
#include <unordered_map>
template class std::allocator<char>;
template class std::char_traits<char>;
template class std::basic_string<char, std::char_traits<char>, std::allocator<char>>;
template std::allocator<char>::allocator();
template std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::basic_string(const char*, const std::allocator<char>&);
template const char* std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>::c_str() const noexcept;

9
src/CppParser/Bindings/CSharp/x86_64-linux-gnu/Std-symbols.cpp

@ -1,8 +1,5 @@ @@ -1,8 +1,5 @@
#include <string>
#include <vector>
#include <map>
#include <unordered_map>
template class std::allocator<char>;
template class std::char_traits<char>;
template class std::basic_string<char, std::char_traits<char>, std::allocator<char>>;
template std::allocator<char>::allocator();
template std::basic_string<char, std::char_traits<char>, std::allocator<char>>::basic_string(const char*, const std::allocator<char>&);
template const char* std::basic_string<char, std::char_traits<char>, std::allocator<char>>::c_str() const noexcept;

9
src/CppParser/Bindings/CSharp/x86_64-pc-win32-msvc/Std-symbols.cpp

@ -1,8 +1,5 @@ @@ -1,8 +1,5 @@
#include <string>
#include <vector>
#include <map>
#include <unordered_map>
template class __declspec(dllexport) std::allocator<char>;
template class __declspec(dllexport) std::basic_string<char, std::char_traits<char>, std::allocator<char>>;
template class __declspec(dllexport) std::char_traits<char>;
template __declspec(dllexport) std::allocator<char>::allocator() noexcept;
template __declspec(dllexport) std::basic_string<char, std::char_traits<char>, std::allocator<char>>::basic_string(const char*, const std::allocator<char>&);
template __declspec(dllexport) const char* std::basic_string<char, std::char_traits<char>, std::allocator<char>>::c_str() const noexcept;

3
src/Generator/Driver.cs

@ -287,8 +287,7 @@ namespace CppSharp @@ -287,8 +287,7 @@ namespace CppSharp
if (Options.IsCSharpGenerator)
{
if (!ParserOptions.IsMicrosoftAbi)
TranslationUnitPasses.AddPass(new GenerateSymbolsPass());
TranslationUnitPasses.AddPass(new GenerateSymbolsPass());
TranslationUnitPasses.AddPass(new TrimSpecializationsPass());
}

1
src/Generator/Passes/GenerateSymbolsPass.cs

@ -18,7 +18,6 @@ namespace CppSharp.Passes @@ -18,7 +18,6 @@ namespace CppSharp.Passes
{
VisitOptions.VisitClassBases = false;
VisitOptions.VisitClassFields = false;
VisitOptions.VisitClassTemplateSpecializations = false;
VisitOptions.VisitEventParameters = false;
VisitOptions.VisitFunctionParameters = false;
VisitOptions.VisitFunctionReturnType = false;

7
src/Generator/Passes/IgnoreSystemDeclarationsPass.cs

@ -75,6 +75,13 @@ namespace CppSharp.Passes @@ -75,6 +75,13 @@ namespace CppSharp.Passes
m => !m.IsConstructor || m.Parameters.Any()))
method.ExplicitlyIgnore();
break;
case "char_traits":
foreach (var method in @class.Methods)
method.ExplicitlyIgnore();
foreach (var specialization in @class.Specializations)
foreach (var method in specialization.Methods)
method.ExplicitlyIgnore();
break;
}
return true;
}

3
src/Generator/Passes/SymbolsCodeGenerator.cs

@ -30,7 +30,8 @@ namespace CppSharp.Passes @@ -30,7 +30,8 @@ namespace CppSharp.Passes
{
if (method.Namespace is ClassTemplateSpecialization)
{
WriteLine($"template {method.Visit(cppTypePrinter)};");
var exporting = Context.ParserOptions.IsMicrosoftAbi ? "__declspec(dllexport) " : string.Empty;
WriteLine($"template {exporting}{method.Visit(cppTypePrinter)};");
return true;
}
if (method.IsConstructor)

Loading…
Cancel
Save