easy-swig 1.0 → 1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +8 -8
- data/README.md +90 -9
- metadata +4 -5
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
MWJjYTI1Y2Q1Zjg5ZjhmZDcwZmM4OTY4ZDdlZDRhNGFkZjkzYTc4OQ==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
YWYyMThiYTg5NmEyZjczMmNmMjZmYjE5NTU3NzQ4OTRkZDJiMjQ0OQ==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
NmI1ZTgwOTgxZGViNzc3MTFkYTkwZWI5NzUwMDYzNjYzMDJmMzYwMTZhY2Rk
|
10
|
+
MjhjYzcwMmIzODM3YTdiNWRlMDhkYjEyMDBhMjVmMzhkYzVmM2ZhNTUyZGJj
|
11
|
+
NGNiNzhhZjJhMGE0MGE5ZDIzNzQyNjdlYjFkYmE4NjAwYTRkNzA=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
OGNiMzc2NzZhNjNiMGJmNTEzOTU4MzgyZGM3ZTZkZDBmMTYzYzgxMTVhMTFl
|
14
|
+
NzkxMDcxMDFhZTU2MTIyMjY2NDZmYmE3MDNhZmFkZTllZmZlNmM3Njg4OGQ3
|
15
|
+
NTE2ZThiMGY5NWI0NGU3NjNkMzZhYWI3YTdlZWRhNWNkYzU2MDg=
|
data/README.md
CHANGED
@@ -13,14 +13,14 @@ Installation and Use
|
|
13
13
|
|
14
14
|
EasySwig relies on the Doxyparser gem (https://github.com/davfuenmayor/ruby-doxygen-parser) which on his part depends on Nokogiri (http://nokogiri.org) and Doxygen (www.doxygen.org). Refer to Doxyparser for more information.
|
15
15
|
|
16
|
-
To actually generate wrappers you may also want to install SWIG (http://www.swig.org/).
|
16
|
+
To actually generate wrappers you may also want to install SWIG (http://www.swig.org/). SWIG versions 2.x and 3.x are supported.
|
17
17
|
|
18
18
|
|
19
19
|
For using EasySwig you need to create a folder with the following structure:
|
20
20
|
(it is recommended to use the subfolder 'spec/Example' as a template)
|
21
21
|
|
22
22
|
- A subfolder named 'include' with the header files you want to wrap.
|
23
|
-
- A CSV file named 'api.csv' with the name of the namespace you want to wrap and which
|
23
|
+
- A CSV file named 'api.csv' with the name of the namespace you want to wrap and which members to wrap/ignore. See below.
|
24
24
|
- An optional file (optionally named custom_config.i) with %include statements for those header files found in subdirectories (otherwise SWIG won't find them)
|
25
25
|
|
26
26
|
There are three operations you can do with EasySwig: 'doxygen', 'generate' and 'swig'
|
@@ -62,25 +62,106 @@ Or with some configuration:
|
|
62
62
|
EasySwig::swig(config)
|
63
63
|
```
|
64
64
|
|
65
|
-
You can consult the documentation (generated with YARD) in doc/ subfolder for more information about the EasySwig::Config class and its default values.
|
65
|
+
You can consult the documentation (generated with YARD: yard doc) in doc/ subfolder for more information about the EasySwig::Config class and its default values.
|
66
66
|
|
67
67
|
|
68
68
|
As CLI
|
69
69
|
----------
|
70
70
|
|
71
|
-
Download (or clone) this repository. An illustrative example of how to use EasySwig as CLI-Tool is found in subfolder
|
71
|
+
Download (or clone) this repository. An illustrative example of how to use EasySwig as CLI-Tool is found in subfolder Example/
|
72
72
|
Open the corresponding README file and follow the instructions. This Example project can also be used as template for your own wrappers.
|
73
73
|
|
74
74
|
```shell
|
75
|
-
cd
|
75
|
+
cd Example
|
76
76
|
# Displays command help. Useful for parameter syntax, options and default values
|
77
|
-
sh
|
77
|
+
sh ../bin/easyswig.sh -h
|
78
78
|
# Generate Doxygen XML Intermediate representation. Found in generated subfolder: 'easy-swig/doxygen'
|
79
|
-
sh
|
79
|
+
sh ../bin/easyswig.sh doxygen
|
80
80
|
# Generate SWIG Interface Files (.i). Found in generated subfolder: 'easy-swig/generate'
|
81
|
-
sh
|
81
|
+
sh ../bin/easyswig.sh generate
|
82
82
|
# Generate Wrappers using your installed version of SWIG. Found in generated subfolder: 'easy-swig/swig'
|
83
|
-
sh
|
83
|
+
sh ../bin/easyswig.sh swig
|
84
84
|
```
|
85
85
|
|
86
|
+
Selecting which members to wrap (namespaces/classes/functions/variables...)
|
87
|
+
----------------------
|
88
|
+
|
89
|
+
EasySwig allows you to cherry-oick which members of a namespace to wrap and also offers some simple configuration. For this we make use of a CSV file
|
90
|
+
with following contents:
|
91
|
+
|
92
|
+
#namespace
|
93
|
+
|
94
|
+
target_name: Desired name of the Namespace in the Target Language (C#). If empty, 'basename' will be used
|
95
|
+
basename: Name of the C/C++ namespace. If empty, 'target_name' will be used
|
96
|
+
wrap_classes: Every class/struct in this namespace will be wrapped
|
97
|
+
wrap_functions: Every function outside any struct/class in this namespace will be wrapped
|
98
|
+
wrap_enums: Every enum outside any struct/class in this namespace will be wrapped
|
99
|
+
wrap_variables: Every variable outside any struct/class in this namespace will be wrapped
|
100
|
+
friend_support: Support for friend members will be active by default for all structs/classes inside this namespace
|
101
|
+
properties: Support for (C#) properties will be active by default for all structs/classes inside this namespace
|
102
|
+
partial: Every wrapper for structs/classes inside this namespace will be generated with the 'partial' C# keyword
|
103
|
+
nested_support: Support for Innerclasses when using SWIG 2.x (Unnecessary for versions newer than 3.0)
|
104
|
+
|
105
|
+
#function
|
106
|
+
|
107
|
+
target_name: Desired name of the function (relative to the given namespace) in the Target Language (C#). If empty, 'basename' will be used
|
108
|
+
basename: Name of the C/C++ function (relative to the given namespace). If empty, 'target_name' will be used
|
109
|
+
ignore: This member will be ignored. Useful in case it has been indirectly included by checking any of the parent's 'wrap_xxx' flags
|
110
|
+
|
111
|
+
#variable
|
112
|
+
|
113
|
+
target_name: Desired name of the global variable (relative to the given namespace) in the Target Language (C#). If empty, 'basename' will be used
|
114
|
+
basename: Name of the C/C++ global variable (relative to the given namespace). If empty, 'target_name' will be used
|
115
|
+
ignore: This member will be ignored. Useful in case it has been indirectly included by checking any of the parent's 'wrap_xxx' flags
|
116
|
+
|
117
|
+
#enum
|
118
|
+
|
119
|
+
target_name: Desired name of the enum (relative to the given namespace) in the Target Language (C#). If empty, 'basename' will be used
|
120
|
+
basename: Name of the C/C++ enum (relative to the given namespace). If empty, 'target_name' will be used
|
121
|
+
ignore: This member will be ignored. Useful in case it has been indirectly included by checking any of the parent's 'wrap_xxx' flags
|
122
|
+
|
123
|
+
#class
|
124
|
+
|
125
|
+
target_name: Desired name of the class/struct (relative to the given namespace) in the Target Language (C#). If empty, 'basename' will be used
|
126
|
+
basename: Name of the C/C++ class/struct (relative to the given namespace). If empty, 'target_name' will be used
|
127
|
+
ignore: This member will be ignored. Useful in case it has been indirectly included by checking any of the parent's 'wrap_xxx' flags
|
128
|
+
wrap_innerclasses: Every innerclass/innerstruct defined inside this class/struct will be wrapped
|
129
|
+
wrap_methods: Every method of this class/struct will be wrapped
|
130
|
+
wrap_enums: Every enum defined inside this class/struct will be wrapped
|
131
|
+
wrap_attributes: Every attribute of this class/struct will be wrapped
|
132
|
+
friend_support: Support for friend members is active
|
133
|
+
properties: Support for generating (C#) properties will be active by default for every getter/setter method defined in this class/struct
|
134
|
+
partial: Class will be generated with the 'partial' C# keyword
|
135
|
+
struct: Struct will be mapped as such in the target language (only C# - not yet supported )
|
136
|
+
nested_support: Support for Innerclasses when using SWIG 2.x (Unnecessary for versions newer than 3.0)
|
137
|
+
|
138
|
+
#method
|
139
|
+
|
140
|
+
target_name: Desired name of the method (relative to the last given class/struct) in the Target Language (C#). If empty, 'basename' will be used
|
141
|
+
basename: Name of the C/C++ method (relative to the last given class/struct). If empty, 'target_name' will be used
|
142
|
+
ignore: This member will be ignored. Useful in case it has been indirectly included by checking any of the parent's 'wrap_xxx' flags
|
143
|
+
properties: If this method is a getter/setter, a cooresponding property will be generated in the target language (C#)
|
144
|
+
|
145
|
+
#attribute
|
146
|
+
|
147
|
+
target_name: Desired name of the attribute (relative to the last given class/struct) in the Target Language (C#). If empty, 'basename' will be used
|
148
|
+
basename: Name of the C/C++ attribute (relative to the last given class/struct). If empty, 'target_name' will be used
|
149
|
+
ignore: This member will be ignored. Useful in case it has been indirectly included by checking any of the parent's 'wrap_xxx' flags
|
150
|
+
|
151
|
+
#innerenum
|
152
|
+
|
153
|
+
target_name: Desired name of the enum (relative to the last given class/struct) in the Target Language (C#). If empty, 'basename' will be used
|
154
|
+
basename: Name of the C/C++ enum (relative to the last given class/struct). If empty, 'target_name' will be used
|
155
|
+
ignore: This member will be ignored. Useful in case it has been indirectly included by checking any of the parent's 'wrap_xxx' flags
|
156
|
+
|
157
|
+
#innerclass
|
158
|
+
|
159
|
+
target_name: Desired name of the innerclass (relative to the last given class/struct) in the Target Language (C#). If empty, 'basename' will be used
|
160
|
+
basename: Name of the C/C++ innerclass (relative to the last given class/struct). If empty, 'target_name' will be used
|
161
|
+
ignore: This member will be ignored. Useful in case it has been indirectly included by checking any of the parent's 'wrap_xxx' flags
|
162
|
+
friend_support: Support for friend members is active
|
163
|
+
properties: Support for generating (C#) properties will be active by default for every getter/setter method defined in this class/struct
|
164
|
+
struct: Structs will be mapped as such in the target language (only C# - not yet supported )
|
165
|
+
nested_support: Support for Innerclasses when using SWIG 2.x (Unnecessary for versions newer than 3.0)
|
166
|
+
|
86
167
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: easy-swig
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: '1.
|
4
|
+
version: '1.1'
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Fuenmayor
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-10 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: ! " \nLibrary and CLI-Tool for automatic generation wrappers for C/C++
|
14
14
|
code using SWIG.\nThis is both a Ruby Gem and a CLI Tool. Feed it with a directory
|
@@ -19,9 +19,8 @@ description: ! " \nLibrary and CLI-Tool for automatic generation wrappers for C
|
|
19
19
|
relies on the Doxyparser gem (https://github.com/davfuenmayor/ruby-doxygen-parser)
|
20
20
|
which on his part depends on Nokogiri (http://nokogiri.org) and Doxygen (www.doxygen.org).
|
21
21
|
Refer to Doxyparser for more information.\nFor using EasySwig you may also want
|
22
|
-
to install SWIG (http://www.swig.org/).
|
23
|
-
There is ongoing work on
|
24
|
-
only C#. There is ongoing work on other languages support.\n\n"
|
22
|
+
to install SWIG (http://www.swig.org/). SWIG versions 2.x and 3.x are supported.\n\nEasySwig
|
23
|
+
supports currently only C#. There is ongoing work on other languages support.\n\n"
|
25
24
|
email:
|
26
25
|
- davfuenmayor@gmail.com
|
27
26
|
executables: []
|