update swig on windows

This commit is contained in:
Bassem Girgis
2019-08-04 21:38:19 -05:00
parent 8414b7136b
commit 76ad52be58
5943 changed files with 91790 additions and 71892 deletions

View File

@@ -0,0 +1,3 @@
SRCS =
include $(SRCDIR)../example.mk

View File

@@ -0,0 +1,9 @@
{
"targets": [
{
"target_name": "example",
"sources": [ "example_wrap.cxx" ],
"include_dirs": ["$srcdir"]
}
]
}

View File

@@ -0,0 +1,23 @@
#ifndef _example_guardian_
#define _example_guardian_
int module_function() { return 7; }
int module_variable = 9;
namespace MyWorld {
class World {
public:
World() : world_max_count(9) {}
int create_world() { return 17; }
const int world_max_count; // = 9
};
namespace Nested {
class Dweller {
public:
enum Gender { MALE = 0, FEMALE = 1 };
static int count() { return 19; }
};
}
}
#endif

View File

@@ -0,0 +1,10 @@
%module example
%{
#include "example.h"
%}
%nspace MyWorld::Nested::Dweller;
%nspace MyWorld::World;
%include "example.h"

View File

@@ -0,0 +1 @@
module.exports = require("build/Release/example");

View File

@@ -0,0 +1,50 @@
// File: runme.js
// This file illustrates class C++ interface generated
// by SWIG.
var example = require("example");
// Calling a module function ( aka global function )
if (example.module_function() !== 7) {
throw new Error("example.module_function() should equal 7");
}
console.log("example.module_function(): " + example.module_function());
// Accessing a module (aka global) variable
if (example.module_variable !== 9) {
throw new Error("example.module_variable should equal 9");
}
console.log("example.module_variable: " + example.module_variable);
// Creating an instance of the class
var w1 = new example.MyWorld.World();
console.log("Creating class instance: w1 = new example.MyWorld.World(): " + w1);
// Accessing class members
if (w1.create_world() !== 17) {
throw new Error("w1.create_world() should equal 17");
}
console.log("w1.create_world() = " + w1.create_world());
if (w1.world_max_count !== 9) {
throw new Error("w1.world_max_count should equal 9");
}
console.log("w1.world_max_count = " + w1.world_max_count);
// Accessing enums from class within namespace
if (example.MyWorld.Nested.Dweller.MALE !== 0) {
throw new Error("example.MyWorld.Nested.Dweller.MALE should equal 0");
}
console.log("Accessing enums: ex.MyWorld.Nested.Dweller.MALE = " + example.MyWorld.Nested.Dweller.MALE);
if (example.MyWorld.Nested.Dweller.FEMALE !== 1) {
throw new Error("example.MyWorld.Nested.Dweller.FEMALE should equal 1");
}
console.log("Accessing enums: ex.MyWorld.Nested.Dweller.FEMALE = " + example.MyWorld.Nested.Dweller.FEMALE);
// Accessing static member function
if (example.MyWorld.Nested.Dweller.count() !== 19) {
throw new Error("example.MyWorld.Nested.Dweller.count() should equal 19");
}
console.log("Accessing static member function: ex.MyWorld.Nested.Dweller.count() = " + example.MyWorld.Nested.Dweller.count());