update swig on windows
This commit is contained in:
20
winx64/bin/swigwin-4.0.0/Examples/php/value/Makefile
Normal file
20
winx64/bin/swigwin-4.0.0/Examples/php/value/Makefile
Normal file
@@ -0,0 +1,20 @@
|
||||
TOP = ../..
|
||||
SWIGEXE = $(TOP)/../swig
|
||||
SWIG_LIB_DIR = $(TOP)/../$(TOP_BUILDDIR_TO_TOP_SRCDIR)Lib
|
||||
SRCS = example.c
|
||||
TARGET = example
|
||||
INTERFACE = example.i
|
||||
LIBS =
|
||||
SWIGOPT =
|
||||
|
||||
check: build
|
||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' php_run
|
||||
|
||||
build:
|
||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' SRCS='$(SRCS)' \
|
||||
SWIG_LIB_DIR='$(SWIG_LIB_DIR)' SWIGEXE='$(SWIGEXE)' \
|
||||
SWIGOPT='$(SWIGOPT)' TARGET='$(TARGET)' INTERFACE='$(INTERFACE)' \
|
||||
php
|
||||
|
||||
clean:
|
||||
$(MAKE) -f $(TOP)/Makefile SRCDIR='$(SRCDIR)' php_clean
|
||||
13
winx64/bin/swigwin-4.0.0/Examples/php/value/example.c
Normal file
13
winx64/bin/swigwin-4.0.0/Examples/php/value/example.c
Normal file
@@ -0,0 +1,13 @@
|
||||
/* File : example.c */
|
||||
|
||||
#include "example.h"
|
||||
|
||||
double dot_product(Vector a, Vector b) {
|
||||
return (a.x*b.x + a.y*b.y + a.z*b.z);
|
||||
}
|
||||
|
||||
void vector_add(Vector a, Vector b, Vector* result) {
|
||||
result->x = a.x + b.x;
|
||||
result->y = a.y + b.y;
|
||||
result->z = a.z + b.z;
|
||||
}
|
||||
8
winx64/bin/swigwin-4.0.0/Examples/php/value/example.h
Normal file
8
winx64/bin/swigwin-4.0.0/Examples/php/value/example.h
Normal file
@@ -0,0 +1,8 @@
|
||||
/* File : example.h */
|
||||
|
||||
typedef struct {
|
||||
double x, y, z;
|
||||
} Vector;
|
||||
|
||||
double dot_product(Vector a, Vector b);
|
||||
void vector_add(Vector a, Vector b, Vector* result);
|
||||
17
winx64/bin/swigwin-4.0.0/Examples/php/value/example.i
Normal file
17
winx64/bin/swigwin-4.0.0/Examples/php/value/example.i
Normal file
@@ -0,0 +1,17 @@
|
||||
// Tests SWIG's handling of pass-by-value for complex datatypes
|
||||
%module example
|
||||
|
||||
%{
|
||||
#include "example.h"
|
||||
%}
|
||||
|
||||
%include "example.h"
|
||||
|
||||
/* Some helper functions for our interface */
|
||||
%inline %{
|
||||
|
||||
void vector_print(Vector *v) {
|
||||
printf("Vector %p = (%g, %g, %g)\n", (void *)v, v->x, v->y, v->z);
|
||||
}
|
||||
%}
|
||||
|
||||
43
winx64/bin/swigwin-4.0.0/Examples/php/value/runme.php
Normal file
43
winx64/bin/swigwin-4.0.0/Examples/php/value/runme.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
require "example.php";
|
||||
|
||||
|
||||
$v = new Vector();
|
||||
$v->x = 1.0;
|
||||
$v->y = 2.0;
|
||||
$v->z = 3.0;
|
||||
|
||||
$w = new Vector();
|
||||
$w->x = 10.0;
|
||||
$w->y = 11.0;
|
||||
$w->z = 12.0;
|
||||
|
||||
echo "I just created the following vector\n";
|
||||
vector_print($v);
|
||||
vector_print($w);
|
||||
|
||||
echo "\nNow I'm going to compute the dot product\n";
|
||||
|
||||
$d = dot_product($v, $w);
|
||||
|
||||
echo "dot product = $d (should be 68)\n";
|
||||
|
||||
echo "\nNow I'm going to add the vectors together\n";
|
||||
|
||||
$r = new Vector();
|
||||
vector_add($v, $w, $r);
|
||||
|
||||
vector_print($r);
|
||||
|
||||
echo "The value should be (11,13,15)\n";
|
||||
|
||||
echo "\nNow I'm going to clean up the return result\n";
|
||||
|
||||
# free($r);
|
||||
|
||||
echo "Good\n";
|
||||
|
||||
?>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user