public void CppTemplate()
        {
            var project = new WrapperProject();
            project.NamespaceName = "CppTemplate";
            project.ProjectFilePath = "CppTemplate/cpp_template.xml";
            project.SourceRootFolders.Add(".");
            project.ReadCpp();
            project.Save();

            var parser = new DotNetParser(project);
            parser.Parse();

            project.CProjectPath = "CppTemplate_wrap";
            project.CsProjectPath = "CppTemplate_wrap";
            var writer = new PInvokeWriter(parser);
            writer.Output();

            var cmake = new CMakeWriter(parser);
            cmake.Output();

            Assert.AreEqual(1, project.HeaderDefinitions.Count);
            Assert.AreEqual(4, project.ClassDefinitions.Count);
            /*
            var cppClass1 = project.ClassDefinitions.First().Value;
            Assert.AreEqual("CppClass1", cppClass1.Name);
            Assert.AreEqual("CppClass1", cppClass1.ManagedName);
            Assert.AreEqual(2, cppClass1.Methods.Count);
            Assert.AreEqual("Empty", cppClass1.Methods[1].ManagedName);*/
        }
Пример #2
0
        static void Main(string[] args)
        {
            // If true, outputs C++/CLI wrapper,
            // if false, outputs C wrapper with C# code.
            bool cppCliMode = false;

            var project = WrapperProject.FromFile("bullet3.xml");

            if (!project.VerifyFiles())
            {
                Console.ReadKey();
                return;
            }

            project.ReadCpp();
            var parser = new BulletParser(project);

            parser.Parse();
            Console.WriteLine("Parsing complete");

            CWriter cWriter = new CWriter(parser);

            //project.CProjectPath = "c_temp";
            cWriter.Output();

            DotNetWriter dotNetWriter;

            if (cppCliMode)
            {
                dotNetWriter = new CppCliWriter(parser);
            }
            else
            {
                dotNetWriter = new PInvokeWriter(parser);

                var extensionsWriter = new ExtensionsWriter(parser);
                extensionsWriter.Output();
            }
            dotNetWriter.Output();

            OutputSolution(TargetVS.VS2008, parser);
            OutputSolution(TargetVS.VS2010, parser);
            OutputSolution(TargetVS.VS2012, parser);
            OutputSolution(TargetVS.VS2013, parser);
            OutputSolution(TargetVS.VS2015, parser);
            //project.Save();

            CMakeWriter cmake = new CMakeWriter(parser);

            cmake.Output();

            Console.Write("Press any key to continue...");
            Console.ReadKey();
        }
Пример #3
0
        static void Main(string[] args)
        {
            // If true, outputs C++/CLI wrapper,
            // if false, outputs C wrapper with C# code.
            bool cppCliMode = false;

            //var subset = new AssemblySubset();
            //subset.LoadAssembly("..\\..\\..\\bulletsharp\\demos\\Generic\\bin\\Release\\BasicDemo.exe", "BulletSharp");
            //subset.LoadAssembly("..\\..\\..\\bulletsharp\\demos\\Generic\\bin\\Release\\DemoFramework.dll", "BulletSharp");

            string sourceFolder = "D:\\src\\bullet3\\src\\";

            //sourceFolder = "..\\..\\..\\bullet\\src\\";

            if (!Directory.Exists(sourceFolder))
            {
                Console.WriteLine("Source folder \"" + sourceFolder + "\" not found");
                Console.Write("Press any key to continue...");
                Console.ReadKey();
                return;
            }

            var reader          = new CppReader(sourceFolder);
            var parser          = new BulletParser(reader.ClassDefinitions, reader.HeaderDefinitions);
            var externalHeaders = parser.ExternalHeaders.Values;

            if (cppCliMode)
            {
                var writer = new CppCliWriter(externalHeaders, NamespaceName);
                writer.Output();
            }
            else
            {
                var writer = new PInvokeWriter(externalHeaders, NamespaceName);
                writer.Output();

                var extensionWriter = new ExtensionsWriter(externalHeaders, NamespaceName);
                extensionWriter.Output();
            }


            OutputSolution(TargetVS.VS2008, externalHeaders);
            OutputSolution(TargetVS.VS2010, externalHeaders);
            OutputSolution(TargetVS.VS2012, externalHeaders);
            OutputSolution(TargetVS.VS2013, externalHeaders);

            CMakeWriter cmake = new CMakeWriter(parser.ExternalHeaders, NamespaceName);

            cmake.Output();

            Console.Write("Press any key to continue...");
            Console.ReadKey();
        }
Пример #4
0
        static void Main(string[] args)
        {
            // If true, outputs C++/CLI wrapper,
            // if false, outputs C wrapper with C# code.
            bool cppCliMode = false;

            var project = WrapperProject.FromFile("bullet3.xml");
            if (!project.VerifyFiles())
            {
                Console.ReadKey();
                return;
            }

            project.ReadCpp();
            var parser = new BulletParser(project);
            parser.Parse();
            Console.WriteLine("Parsing complete");

            CWriter cWriter = new CWriter(parser);
            //project.CProjectPath = "c_temp";
            cWriter.Output();

            DotNetWriter dotNetWriter;
            if (cppCliMode)
            {
                dotNetWriter = new CppCliWriter(parser);
            }
            else
            {
                dotNetWriter = new PInvokeWriter(parser);

                var extensionsWriter = new ExtensionsWriter(parser);
                extensionsWriter.Output();
            }
            dotNetWriter.Output();

            OutputSolution(TargetVS.VS2008, parser);
            OutputSolution(TargetVS.VS2010, parser);
            OutputSolution(TargetVS.VS2012, parser);
            OutputSolution(TargetVS.VS2013, parser);
            OutputSolution(TargetVS.VS2015, parser);
            //project.Save();

            CMakeWriter cmake = new CMakeWriter(parser);
            cmake.Output();

            Console.Write("Press any key to continue...");
            Console.ReadKey();
        }
Пример #5
0
        static void Main(string[] args)
        {
            // If true, outputs C++/CLI wrapper,
            // if false, outputs C wrapper with C# code.
            bool cppCliMode = false;

            var project = WrapperProject.FromFile("bullet3.xml");

            if (!project.VerifyFiles())
            {
                Console.ReadKey();
                return;
            }

            var reader = new CppReader(project);
            var parser = new BulletParser(project);

            parser.Parse();
            Console.WriteLine("Parsing complete");

            WrapperWriter writer;

            if (cppCliMode)
            {
                writer = new CppCliWriter(project.HeaderDefinitions.Values, project.NamespaceName);
            }
            else
            {
                writer = new PInvokeWriter(project);

                var extensionWriter = new ExtensionsWriter(project.HeaderDefinitions.Values, project.NamespaceName);
                extensionWriter.Output();
            }
            writer.Output();

            OutputSolution(TargetVS.VS2008, project);
            OutputSolution(TargetVS.VS2010, project);
            OutputSolution(TargetVS.VS2012, project);
            OutputSolution(TargetVS.VS2013, project);
            OutputSolution(TargetVS.VS2015, project);
            //project.Save();

            CMakeWriter cmake = new CMakeWriter(project.HeaderDefinitions, project.NamespaceName);

            cmake.Output();

            Console.Write("Press any key to continue...");
            Console.ReadKey();
        }
Пример #6
0
        static void Main(string[] args)
        {
            // If true, outputs C++/CLI wrapper,
            // if false, outputs C wrapper with C# code.
            bool cppCliMode = false;

            //var subset = new AssemblySubset();
            //subset.LoadAssembly("..\\..\\..\\bulletsharp\\demos\\Generic\\bin\\Release\\BasicDemo.exe", "BulletSharp");
            //subset.LoadAssembly("..\\..\\..\\bulletsharp\\demos\\Generic\\bin\\Release\\DemoFramework.dll", "BulletSharp");

            string sourceFolder = "D:\\src\\bullet3\\src\\";
            //sourceFolder = "..\\..\\..\\bullet\\src\\";

            if (!Directory.Exists(sourceFolder))
            {
                Console.WriteLine("Source folder \"" + sourceFolder + "\" not found");
                Console.Write("Press any key to continue...");
                Console.ReadKey();
                return;
            }

            var reader = new CppReader(sourceFolder);
            var parser = new BulletParser(reader.ClassDefinitions, reader.HeaderDefinitions);
            var externalHeaders = parser.ExternalHeaders.Values;
            if (cppCliMode)
            {
                var writer = new CppCliWriter(externalHeaders, NamespaceName);
                writer.Output();
            }
            else
            {
                var writer = new PInvokeWriter(externalHeaders, NamespaceName);
                writer.Output();

                var extensionWriter = new ExtensionsWriter(externalHeaders, NamespaceName);
                extensionWriter.Output();
            }

            OutputSolution(TargetVS.VS2008, externalHeaders);
            OutputSolution(TargetVS.VS2010, externalHeaders);
            OutputSolution(TargetVS.VS2012, externalHeaders);
            OutputSolution(TargetVS.VS2013, externalHeaders);

            CMakeWriter cmake = new CMakeWriter(parser.ExternalHeaders, NamespaceName);
            cmake.Output();

            Console.Write("Press any key to continue...");
            Console.ReadKey();
        }
Пример #7
0
        static void Main(string[] args)
        {
            // If true, outputs C++/CLI wrapper,
            // if false, outputs C wrapper with C# code.
            bool cppCliMode = false;

            var project = WrapperProject.FromFile("bullet3.xml");
            if (!project.VerifyFiles())
            {
                Console.ReadKey();
                return;
            }

            var reader = new CppReader(project);
            var parser = new BulletParser(project);
            parser.Parse();
            Console.WriteLine("Parsing complete");

            WrapperWriter writer;
            if (cppCliMode)
            {
                writer = new CppCliWriter(project);
            }
            else
            {
                writer = new PInvokeWriter(project);

                var extensionWriter = new ExtensionsWriter(project.HeaderDefinitions.Values, project.NamespaceName);
                extensionWriter.Output();
            }
            writer.Output();

            OutputSolution(TargetVS.VS2008, project);
            OutputSolution(TargetVS.VS2010, project);
            OutputSolution(TargetVS.VS2012, project);
            OutputSolution(TargetVS.VS2013, project);
            OutputSolution(TargetVS.VS2015, project);
            //project.Save();

            CMakeWriter cmake = new CMakeWriter(project);
            cmake.Output();

            Console.Write("Press any key to continue...");
            Console.ReadKey();
        }
        public void Cpp1()
        {
            var project = new WrapperProject();
            project.NamespaceName = "Cpp1";
            project.ProjectFilePath = "Cpp1/cpp1.xml";
            project.SourceRootFolders.Add(".");
            project.ReadCpp();
            project.Save();

            var parser = new DotNetParser(project);
            parser.Parse();

            project.CProjectPath = "Cpp1_wrap";
            project.CsProjectPath = "Cpp1_wrap";
            var writer = new PInvokeWriter(parser);
            writer.Output();

            Assert.AreEqual(1, project.HeaderDefinitions.Count);
            Assert.AreEqual(1, parser.Classes.Count);
            var cppClass1 = parser.Classes.First().Value;
            Assert.AreEqual("CppClass1", cppClass1.Name);
            Assert.AreEqual(2, cppClass1.Methods.Count);
            Assert.AreEqual("Empty", cppClass1.Methods[1].Name);
        }