dub 0.2.2 → 1.0.0
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.
Potentially problematic release.
This version of dub might be problematic. Click here for more details.
- data/History.txt +92 -0
- data/LICENSE +20 -0
- data/README.rdoc +115 -0
- data/Rakefile +59 -0
- data/dub.gemspec +197 -0
- data/lib/dub/argument.rb +286 -0
- data/lib/dub/entities_unescape.rb +9 -0
- data/lib/dub/function.rb +177 -0
- data/lib/dub/function_group.rb +72 -0
- data/lib/dub/generator.rb +15 -0
- data/lib/dub/group.rb +20 -0
- data/lib/dub/klass.rb +338 -0
- data/lib/dub/lua/class.cpp.erb +114 -0
- data/lib/dub/lua/class_gen.rb +96 -0
- data/lib/dub/lua/function.cpp.erb +15 -0
- data/lib/dub/lua/function_gen.rb +329 -0
- data/lib/dub/lua/group.cpp.erb +9 -0
- data/lib/dub/lua/lua_cpp_helper.cpp +259 -0
- data/lib/dub/lua/lua_cpp_helper.h +219 -0
- data/lib/dub/lua/lua_object.cpp +158 -0
- data/lib/dub/lua/lua_object.h +69 -0
- data/lib/dub/lua/namespace.cpp.erb +42 -0
- data/lib/dub/lua/namespace_gen.rb +69 -0
- data/lib/dub/lua.rb +24 -0
- data/lib/dub/member_extraction.rb +128 -0
- data/lib/dub/namespace.rb +295 -0
- data/lib/dub/opts_parser.rb +30 -0
- data/lib/dub/parser.rb +46 -0
- data/lib/dub/templates/lua_template.erb +21 -0
- data/lib/dub/version.rb +3 -0
- data/lib/dub.rb +24 -20
- data/test/argument_test.rb +581 -0
- data/test/fixtures/app/CMakeLists.txt +54 -0
- data/test/fixtures/app/Doxyfile +1600 -0
- data/test/fixtures/app/bindings/all_lua.cpp +299 -0
- data/test/fixtures/app/include/matrix.h +283 -0
- data/test/fixtures/app/make_lua_bindings.rb +13 -0
- data/test/fixtures/app/vendor/lua/CMakeLists.txt +25 -0
- data/test/fixtures/app/vendor/lua/COPYRIGHT +34 -0
- data/test/fixtures/app/vendor/lua/HISTORY +183 -0
- data/test/fixtures/app/vendor/lua/INSTALL +99 -0
- data/test/fixtures/app/vendor/lua/Makefile +183 -0
- data/test/fixtures/app/vendor/lua/README +37 -0
- data/test/fixtures/app/vendor/lua/lapi.c +1080 -0
- data/test/fixtures/app/vendor/lua/lapi.h +16 -0
- data/test/fixtures/app/vendor/lua/lauxlib.c +653 -0
- data/test/fixtures/app/vendor/lua/lauxlib.h +174 -0
- data/test/fixtures/app/vendor/lua/lbaselib.c +643 -0
- data/test/fixtures/app/vendor/lua/lcode.c +839 -0
- data/test/fixtures/app/vendor/lua/lcode.h +76 -0
- data/test/fixtures/app/vendor/lua/ldblib.c +397 -0
- data/test/fixtures/app/vendor/lua/ldebug.c +622 -0
- data/test/fixtures/app/vendor/lua/ldebug.h +33 -0
- data/test/fixtures/app/vendor/lua/ldo.c +516 -0
- data/test/fixtures/app/vendor/lua/ldo.h +57 -0
- data/test/fixtures/app/vendor/lua/ldump.c +164 -0
- data/test/fixtures/app/vendor/lua/lfunc.c +174 -0
- data/test/fixtures/app/vendor/lua/lfunc.h +34 -0
- data/test/fixtures/app/vendor/lua/lgc.c +711 -0
- data/test/fixtures/app/vendor/lua/lgc.h +110 -0
- data/test/fixtures/app/vendor/lua/liblua.a +0 -0
- data/test/fixtures/app/vendor/lua/linit.c +38 -0
- data/test/fixtures/app/vendor/lua/liolib.c +532 -0
- data/test/fixtures/app/vendor/lua/llex.c +461 -0
- data/test/fixtures/app/vendor/lua/llex.h +81 -0
- data/test/fixtures/app/vendor/lua/llimits.h +128 -0
- data/test/fixtures/app/vendor/lua/lmathlib.c +263 -0
- data/test/fixtures/app/vendor/lua/lmem.c +86 -0
- data/test/fixtures/app/vendor/lua/lmem.h +49 -0
- data/test/fixtures/app/vendor/lua/loadlib.c +664 -0
- data/test/fixtures/app/vendor/lua/lobject.c +214 -0
- data/test/fixtures/app/vendor/lua/lobject.h +381 -0
- data/test/fixtures/app/vendor/lua/lopcodes.c +102 -0
- data/test/fixtures/app/vendor/lua/lopcodes.h +268 -0
- data/test/fixtures/app/vendor/lua/loslib.c +244 -0
- data/test/fixtures/app/vendor/lua/lparser.c +1337 -0
- data/test/fixtures/app/vendor/lua/lparser.h +82 -0
- data/test/fixtures/app/vendor/lua/lstate.c +214 -0
- data/test/fixtures/app/vendor/lua/lstate.h +168 -0
- data/test/fixtures/app/vendor/lua/lstring.c +111 -0
- data/test/fixtures/app/vendor/lua/lstring.h +31 -0
- data/test/fixtures/app/vendor/lua/lstrlib.c +868 -0
- data/test/fixtures/app/vendor/lua/ltable.c +588 -0
- data/test/fixtures/app/vendor/lua/ltable.h +40 -0
- data/test/fixtures/app/vendor/lua/ltablib.c +278 -0
- data/test/fixtures/app/vendor/lua/ltm.c +75 -0
- data/test/fixtures/app/vendor/lua/ltm.h +54 -0
- data/test/fixtures/app/vendor/lua/lua.c +695 -0
- data/test/fixtures/app/vendor/lua/lua.h +385 -0
- data/test/fixtures/app/vendor/lua/lua_dub_helper.h +77 -0
- data/test/fixtures/app/vendor/lua/luac +0 -0
- data/test/fixtures/app/vendor/lua/luac.c +200 -0
- data/test/fixtures/app/vendor/lua/luaconf.h +762 -0
- data/test/fixtures/app/vendor/lua/lualib.h +53 -0
- data/test/fixtures/app/vendor/lua/lundump.c +223 -0
- data/test/fixtures/app/vendor/lua/lundump.h +36 -0
- data/test/fixtures/app/vendor/lua/lvm.c +765 -0
- data/test/fixtures/app/vendor/lua/lvm.h +36 -0
- data/test/fixtures/app/vendor/lua/lzio.c +82 -0
- data/test/fixtures/app/vendor/lua/lzio.h +67 -0
- data/test/fixtures/app/vendor/lua/matrix.h +102 -0
- data/test/fixtures/app/vendor/lua/print.c +227 -0
- data/test/fixtures/app/vendor/lua/test/README +26 -0
- data/test/fixtures/app/vendor/lua/test/bisect.lua +27 -0
- data/test/fixtures/app/vendor/lua/test/cf.lua +16 -0
- data/test/fixtures/app/vendor/lua/test/echo.lua +5 -0
- data/test/fixtures/app/vendor/lua/test/env.lua +7 -0
- data/test/fixtures/app/vendor/lua/test/factorial.lua +32 -0
- data/test/fixtures/app/vendor/lua/test/fib.lua +40 -0
- data/test/fixtures/app/vendor/lua/test/fibfor.lua +13 -0
- data/test/fixtures/app/vendor/lua/test/globals.lua +13 -0
- data/test/fixtures/app/vendor/lua/test/hello.lua +3 -0
- data/test/fixtures/app/vendor/lua/test/life.lua +111 -0
- data/test/fixtures/app/vendor/lua/test/luac.lua +7 -0
- data/test/fixtures/app/vendor/lua/test/printf.lua +7 -0
- data/test/fixtures/app/vendor/lua/test/readonly.lua +12 -0
- data/test/fixtures/app/vendor/lua/test/sieve.lua +29 -0
- data/test/fixtures/app/vendor/lua/test/sort.lua +66 -0
- data/test/fixtures/app/vendor/lua/test/table.lua +12 -0
- data/test/fixtures/app/vendor/lua/test/trace-calls.lua +32 -0
- data/test/fixtures/app/vendor/lua/test/trace-globals.lua +38 -0
- data/test/fixtures/app/vendor/lua/test/xd.lua +14 -0
- data/test/fixtures/app/xml/classdub_1_1_base.xml +85 -0
- data/test/fixtures/app/xml/classdub_1_1_custom_destructor.xml +67 -0
- data/test/fixtures/app/xml/classdub_1_1_deletable_out_of_lua.xml +43 -0
- data/test/fixtures/app/xml/classdub_1_1_matrix.xml +482 -0
- data/test/fixtures/app/xml/classdub_1_1_no_destructor.xml +49 -0
- data/test/fixtures/app/xml/classdub_1_1_priv_sub_base.xml +89 -0
- data/test/fixtures/app/xml/classdub_1_1_private_constr.xml +68 -0
- data/test/fixtures/app/xml/classdub_1_1_static_constr.xml +69 -0
- data/test/fixtures/app/xml/classdub_1_1_sub_base.xml +89 -0
- data/test/fixtures/app/xml/classdub_1_1_t_mat.xml +252 -0
- data/test/fixtures/app/xml/combine.xslt +15 -0
- data/test/fixtures/app/xml/compound.xsd +814 -0
- data/test/fixtures/app/xml/dir_53661a2bdeb1d55e60581a7e15deb763.xml +12 -0
- data/test/fixtures/app/xml/index.xml +91 -0
- data/test/fixtures/app/xml/index.xsd +66 -0
- data/test/fixtures/app/xml/matrix_8h.xml +310 -0
- data/test/fixtures/app/xml/namespacedub.xml +48 -0
- data/test/fixtures/classcv_1_1_mat.xml +1996 -0
- data/test/fixtures/classcv_1_1_point__.xml +341 -0
- data/test/fixtures/classcv_1_1_scalar__.xml +269 -0
- data/test/fixtures/classcv_1_1_size__.xml +270 -0
- data/test/fixtures/dummy_class.cpp.erb +1 -0
- data/test/fixtures/dummy_function.cpp.erb +1 -0
- data/test/fixtures/group___magic_type.xml +406 -0
- data/test/fixtures/namespacecv.xml +12659 -0
- data/test/function_group_test.rb +43 -0
- data/test/function_test.rb +405 -0
- data/test/group_test.rb +241 -0
- data/test/helper.rb +34 -0
- data/test/klass_test.rb +551 -0
- data/test/lua_function_gen_test.rb +242 -0
- data/test/namespace_test.rb +220 -0
- data/test/parser_test.rb +36 -0
- metadata +229 -272
- checksums.yaml +0 -7
- data/lib/open_api_sdk/analytics.rb +0 -99
- data/lib/open_api_sdk/domains.rb +0 -353
- data/lib/open_api_sdk/dub.rb +0 -88
- data/lib/open_api_sdk/links.rb +0 -766
- data/lib/open_api_sdk/metatags.rb +0 -54
- data/lib/open_api_sdk/models/operations/bulkcreatelinks_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/bulkupdatelinks_requestbody.rb +0 -27
- data/lib/open_api_sdk/models/operations/bulkupdatelinks_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/color.rb +0 -24
- data/lib/open_api_sdk/models/operations/createdomain_requestbody.rb +0 -33
- data/lib/open_api_sdk/models/operations/createdomain_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/createlink_requestbody.rb +0 -95
- data/lib/open_api_sdk/models/operations/createlink_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/createtag_requestbody.rb +0 -32
- data/lib/open_api_sdk/models/operations/createtag_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/data.rb +0 -83
- data/lib/open_api_sdk/models/operations/deletedomain_request.rb +0 -24
- data/lib/open_api_sdk/models/operations/deletedomain_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/deletedomain_responsebody.rb +0 -24
- data/lib/open_api_sdk/models/operations/deletelink_request.rb +0 -24
- data/lib/open_api_sdk/models/operations/deletelink_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/deletelink_responsebody.rb +0 -24
- data/lib/open_api_sdk/models/operations/event.rb +0 -21
- data/lib/open_api_sdk/models/operations/getlinkinfo_request.rb +0 -33
- data/lib/open_api_sdk/models/operations/getlinkinfo_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/getlinks_request.rb +0 -51
- data/lib/open_api_sdk/models/operations/getlinks_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/getlinkscount_request.rb +0 -48
- data/lib/open_api_sdk/models/operations/getlinkscount_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/getmetatags_request.rb +0 -24
- data/lib/open_api_sdk/models/operations/getmetatags_response.rb +0 -33
- data/lib/open_api_sdk/models/operations/getmetatags_responsebody.rb +0 -30
- data/lib/open_api_sdk/models/operations/getqrcode_request.rb +0 -39
- data/lib/open_api_sdk/models/operations/getqrcode_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/gettags_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/getworkspace_request.rb +0 -24
- data/lib/open_api_sdk/models/operations/getworkspace_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/groupby.rb +0 -28
- data/lib/open_api_sdk/models/operations/interval.rb +0 -25
- data/lib/open_api_sdk/models/operations/level.rb +0 -21
- data/lib/open_api_sdk/models/operations/listdomains_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/paymentprocessor.rb +0 -20
- data/lib/open_api_sdk/models/operations/requestbody.rb +0 -95
- data/lib/open_api_sdk/models/operations/retrieveanalytics_request.rb +0 -81
- data/lib/open_api_sdk/models/operations/retrieveanalytics_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/sort.rb +0 -20
- data/lib/open_api_sdk/models/operations/trackcustomer_requestbody.rb +0 -33
- data/lib/open_api_sdk/models/operations/trackcustomer_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/trackcustomer_responsebody.rb +0 -33
- data/lib/open_api_sdk/models/operations/tracklead_requestbody.rb +0 -42
- data/lib/open_api_sdk/models/operations/tracklead_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/tracklead_responsebody.rb +0 -42
- data/lib/open_api_sdk/models/operations/tracksale_requestbody.rb +0 -42
- data/lib/open_api_sdk/models/operations/tracksale_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/tracksale_responsebody.rb +0 -42
- data/lib/open_api_sdk/models/operations/updatedomain_request.rb +0 -27
- data/lib/open_api_sdk/models/operations/updatedomain_requestbody.rb +0 -33
- data/lib/open_api_sdk/models/operations/updatedomain_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/updatelink_request.rb +0 -27
- data/lib/open_api_sdk/models/operations/updatelink_requestbody.rb +0 -95
- data/lib/open_api_sdk/models/operations/updatelink_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/updatetag_color.rb +0 -24
- data/lib/open_api_sdk/models/operations/updatetag_request.rb +0 -27
- data/lib/open_api_sdk/models/operations/updatetag_requestbody.rb +0 -32
- data/lib/open_api_sdk/models/operations/updatetag_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/updateworkspace_request.rb +0 -27
- data/lib/open_api_sdk/models/operations/updateworkspace_requestbody.rb +0 -27
- data/lib/open_api_sdk/models/operations/updateworkspace_response.rb +0 -60
- data/lib/open_api_sdk/models/operations/upsertlink_requestbody.rb +0 -95
- data/lib/open_api_sdk/models/operations/upsertlink_response.rb +0 -60
- data/lib/open_api_sdk/models/operations.rb +0 -74
- data/lib/open_api_sdk/models/shared/badrequest.rb +0 -24
- data/lib/open_api_sdk/models/shared/code.rb +0 -18
- data/lib/open_api_sdk/models/shared/color.rb +0 -24
- data/lib/open_api_sdk/models/shared/conflict.rb +0 -24
- data/lib/open_api_sdk/models/shared/conflict_code.rb +0 -18
- data/lib/open_api_sdk/models/shared/conflict_error.rb +0 -30
- data/lib/open_api_sdk/models/shared/countrycode.rb +0 -267
- data/lib/open_api_sdk/models/shared/domains.rb +0 -27
- data/lib/open_api_sdk/models/shared/domainschema.rb +0 -48
- data/lib/open_api_sdk/models/shared/error.rb +0 -30
- data/lib/open_api_sdk/models/shared/forbidden.rb +0 -24
- data/lib/open_api_sdk/models/shared/forbidden_code.rb +0 -18
- data/lib/open_api_sdk/models/shared/forbidden_error.rb +0 -30
- data/lib/open_api_sdk/models/shared/geo.rb +0 -771
- data/lib/open_api_sdk/models/shared/internalservererror.rb +0 -24
- data/lib/open_api_sdk/models/shared/internalservererror_code.rb +0 -18
- data/lib/open_api_sdk/models/shared/internalservererror_error.rb +0 -30
- data/lib/open_api_sdk/models/shared/inviteexpired.rb +0 -24
- data/lib/open_api_sdk/models/shared/inviteexpired_code.rb +0 -18
- data/lib/open_api_sdk/models/shared/inviteexpired_error.rb +0 -30
- data/lib/open_api_sdk/models/shared/linkgeotargeting.rb +0 -771
- data/lib/open_api_sdk/models/shared/linkschema.rb +0 -142
- data/lib/open_api_sdk/models/shared/notfound.rb +0 -24
- data/lib/open_api_sdk/models/shared/notfound_code.rb +0 -18
- data/lib/open_api_sdk/models/shared/notfound_error.rb +0 -30
- data/lib/open_api_sdk/models/shared/plan.rb +0 -24
- data/lib/open_api_sdk/models/shared/ratelimitexceeded.rb +0 -24
- data/lib/open_api_sdk/models/shared/ratelimitexceeded_code.rb +0 -18
- data/lib/open_api_sdk/models/shared/ratelimitexceeded_error.rb +0 -30
- data/lib/open_api_sdk/models/shared/role.rb +0 -19
- data/lib/open_api_sdk/models/shared/security.rb +0 -24
- data/lib/open_api_sdk/models/shared/tagschema.rb +0 -30
- data/lib/open_api_sdk/models/shared/unauthorized.rb +0 -24
- data/lib/open_api_sdk/models/shared/unauthorized_code.rb +0 -18
- data/lib/open_api_sdk/models/shared/unauthorized_error.rb +0 -30
- data/lib/open_api_sdk/models/shared/unprocessableentity.rb +0 -24
- data/lib/open_api_sdk/models/shared/unprocessableentity_code.rb +0 -18
- data/lib/open_api_sdk/models/shared/unprocessableentity_error.rb +0 -30
- data/lib/open_api_sdk/models/shared/users.rb +0 -24
- data/lib/open_api_sdk/models/shared/workspaceschema.rb +0 -81
- data/lib/open_api_sdk/models/shared.rb +0 -49
- data/lib/open_api_sdk/qr_codes.rb +0 -97
- data/lib/open_api_sdk/sdkconfiguration.rb +0 -52
- data/lib/open_api_sdk/tags.rb +0 -272
- data/lib/open_api_sdk/track.rb +0 -276
- data/lib/open_api_sdk/utils/metadata_fields.rb +0 -150
- data/lib/open_api_sdk/utils/t.rb +0 -59
- data/lib/open_api_sdk/utils/utils.rb +0 -772
- data/lib/open_api_sdk/workspaces.rb +0 -192
@@ -0,0 +1,581 @@
|
|
1
|
+
require 'helper'
|
2
|
+
require 'dub/lua'
|
3
|
+
|
4
|
+
class ArgumentTest < Test::Unit::TestCase
|
5
|
+
context 'An Argument' do
|
6
|
+
context 'parsing types' do
|
7
|
+
{
|
8
|
+
"CV_EXPORT const Foo" => ["CV_EXPORT ", "const ", "Foo", "", nil, ""],
|
9
|
+
"CV_EXPORT const Foo<blah, blah>" => ["CV_EXPORT ", "const ", "Foo", "", nil, ""],
|
10
|
+
"CV_EXPORT Foo" => ["CV_EXPORT ", "" , "Foo", "", nil, ""],
|
11
|
+
"const Foo" => ["const " , "" , "Foo", "", nil, ""],
|
12
|
+
"Foo" => ["" , "" , "Foo", "", nil, ""],
|
13
|
+
"CV_EXPORT const Foo &" => ["CV_EXPORT ", "const ", "Foo", "", nil, " &"],
|
14
|
+
"CV_EXPORT const Foo&" => ["CV_EXPORT ", "const ", "Foo", "", nil, "&"],
|
15
|
+
"CV_EXPORT Foo &" => ["CV_EXPORT ", "" , "Foo", "", nil, " &"],
|
16
|
+
"const Foo &" => ["const " , "" , "Foo", "", nil, " &"],
|
17
|
+
"Foo &" => ["" , "" , "Foo", "", nil, " &"],
|
18
|
+
"CV_EXPORT const Foo *" => ["CV_EXPORT ", "const ", "Foo", "", nil, " *"],
|
19
|
+
"CV_EXPORT const Foo*" => ["CV_EXPORT ", "const ", "Foo", "", nil, "*"],
|
20
|
+
"CV_EXPORT Foo *" => ["CV_EXPORT ", "" , "Foo", "", nil, " *"],
|
21
|
+
"const Foo *" => ["const " , "" , "Foo", "", nil, " *"],
|
22
|
+
"Foo *" => ["" , "" , "Foo", "", nil, " *"],
|
23
|
+
"void *" => ["" , "" , "void","", nil, " *"],
|
24
|
+
"..." => ["" , "" , "...", "", nil, ""],
|
25
|
+
|
26
|
+
"CV_EXPORT const Foo < blah, blah >" => ["CV_EXPORT ", "const ", "Foo", " < blah, blah >", " blah, blah ", ""],
|
27
|
+
"CV_EXPORT const Foo<blah, blah>" => ["CV_EXPORT ", "const ", "Foo", "<blah, blah>" , "blah, blah" , ""],
|
28
|
+
"CV_EXPORT Foo < blah, blah >" => ["CV_EXPORT ", "" , "Foo", " < blah, blah >", " blah, blah ", ""],
|
29
|
+
"const Foo < blah, blah >" => ["const " , "" , "Foo", " < blah, blah >", " blah, blah ", ""],
|
30
|
+
"CV_EXPORT const Foo < blah, blah > &" => ["CV_EXPORT ", "const ", "Foo", " < blah, blah >", " blah, blah ", " &"],
|
31
|
+
"CV_EXPORT const Foo<blah, blah> &" => ["CV_EXPORT ", "const ", "Foo", "<blah, blah>" , "blah, blah" , " &"],
|
32
|
+
"CV_EXPORT Foo < blah, blah > &" => ["CV_EXPORT ", "" , "Foo", " < blah, blah >", " blah, blah ", " &"],
|
33
|
+
"const Foo < blah, blah > &" => ["const " , "" , "Foo", " < blah, blah >", " blah, blah ", " &"],
|
34
|
+
"Foo < blah, blah > &" => ["" , "" , "Foo", " < blah, blah >", " blah, blah ", " &"],
|
35
|
+
"CV_EXPORT const Foo < blah, blah > *" => ["CV_EXPORT ", "const ", "Foo", " < blah, blah >", " blah, blah ", " *"],
|
36
|
+
"CV_EXPORT const Foo<blah, blah> *" => ["CV_EXPORT ", "const ", "Foo", "<blah, blah>" , "blah, blah" , " *"],
|
37
|
+
"CV_EXPORT Foo < blah, blah > *" => ["CV_EXPORT ", "" , "Foo", " < blah, blah >", " blah, blah ", " *"],
|
38
|
+
"const Foo < blah, blah > *" => ["const " , "" , "Foo", " < blah, blah >", " blah, blah ", " *"],
|
39
|
+
"Foo < blah, blah > *" => ["" , "" , "Foo", " < blah, blah >", " blah, blah ", " *"],
|
40
|
+
|
41
|
+
"MatExpr_<MatExpr_Op2_<Mat, int, Mat, MatOp_Inv_<Mat> >, Mat>" =>
|
42
|
+
["" ,"" ,"MatExpr_","<MatExpr_Op2_<Mat, int, Mat, MatOp_Inv_<Mat> >, Mat>","MatExpr_Op2_<Mat, int, Mat, MatOp_Inv_<Mat> >, Mat", ""],
|
43
|
+
}.each do |type, result|
|
44
|
+
should "parse #{type}" do
|
45
|
+
type =~ Dub::Argument::TYPE_REGEXP
|
46
|
+
assert_equal result, $~.to_a[1..-1]
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
context 'An const ref argument' do
|
53
|
+
setup do
|
54
|
+
# namespacecv_xml = Dub.parse(fixture('namespacecv.xml'))
|
55
|
+
@argument = namespacecv_xml[:cv][:resize].arguments.first
|
56
|
+
end
|
57
|
+
|
58
|
+
should 'return type with type' do
|
59
|
+
assert_equal 'Mat', @argument.type
|
60
|
+
end
|
61
|
+
|
62
|
+
should 'return name with name' do
|
63
|
+
assert_equal 'src', @argument.name
|
64
|
+
end
|
65
|
+
|
66
|
+
should 'know if argument is const' do
|
67
|
+
assert @argument.is_const?
|
68
|
+
end
|
69
|
+
|
70
|
+
should 'know if argument is passed by ref' do
|
71
|
+
assert @argument.is_ref?
|
72
|
+
end
|
73
|
+
|
74
|
+
should 'know that it is a pointer' do
|
75
|
+
assert !@argument.is_pointer?
|
76
|
+
end
|
77
|
+
|
78
|
+
should 'know if argument type is a native type' do
|
79
|
+
assert !@argument.is_native?
|
80
|
+
end
|
81
|
+
|
82
|
+
should 'create a pointer' do
|
83
|
+
assert_equal 'const Mat *', @argument.create_type
|
84
|
+
end
|
85
|
+
|
86
|
+
should 'keep a link to the function' do
|
87
|
+
assert_kind_of Dub::Function, @argument.function
|
88
|
+
end
|
89
|
+
|
90
|
+
should 'not return true on has_default if it does not have a default value' do
|
91
|
+
assert !@argument.has_default?
|
92
|
+
end
|
93
|
+
|
94
|
+
should 'return signature' do
|
95
|
+
assert_equal 'const Mat&', @argument.signature
|
96
|
+
end
|
97
|
+
|
98
|
+
should 'return signature on inspect' do
|
99
|
+
assert_equal 'const Mat&', @argument.inspect
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
context 'A double argument' do
|
104
|
+
setup do
|
105
|
+
# namespacecv_xml = Dub.parse(fixture('namespacecv.xml'))
|
106
|
+
@argument = namespacecv_xml[:cv][:resize].arguments[3]
|
107
|
+
end
|
108
|
+
|
109
|
+
should 'return type with type' do
|
110
|
+
assert_equal 'double', @argument.type
|
111
|
+
end
|
112
|
+
|
113
|
+
should 'return name with name' do
|
114
|
+
assert_equal 'fx', @argument.name
|
115
|
+
end
|
116
|
+
|
117
|
+
should 'know if argument is const' do
|
118
|
+
assert !@argument.is_const?
|
119
|
+
end
|
120
|
+
|
121
|
+
should 'know if argument is passed by ref' do
|
122
|
+
assert !@argument.is_ref?
|
123
|
+
end
|
124
|
+
|
125
|
+
should 'know that it is a pointer' do
|
126
|
+
assert !@argument.is_pointer?
|
127
|
+
end
|
128
|
+
|
129
|
+
should 'know if argument type is a native type' do
|
130
|
+
assert @argument.is_native?
|
131
|
+
end
|
132
|
+
|
133
|
+
should 'return double on create_type' do
|
134
|
+
assert_equal 'double ', @argument.create_type
|
135
|
+
end
|
136
|
+
|
137
|
+
should 'return signature' do
|
138
|
+
assert_equal 'double', @argument.signature
|
139
|
+
end
|
140
|
+
end
|
141
|
+
|
142
|
+
context 'An argument without name' do
|
143
|
+
setup do
|
144
|
+
@argument = namespacecv_xml[:cv][:fastMalloc].arguments.first
|
145
|
+
end
|
146
|
+
|
147
|
+
should 'choose a name from its position' do
|
148
|
+
assert_equal 'arg1', @argument.name
|
149
|
+
end
|
150
|
+
end
|
151
|
+
|
152
|
+
context 'A vararg argument' do
|
153
|
+
setup do
|
154
|
+
@argument = namespacecv_xml[:cv][:format].arguments[1]
|
155
|
+
end
|
156
|
+
|
157
|
+
should 'know it is a vararg' do
|
158
|
+
assert @argument.vararg?
|
159
|
+
end
|
160
|
+
end
|
161
|
+
|
162
|
+
context 'A bool argument' do
|
163
|
+
subject do
|
164
|
+
# namespacecv_xml = Dub.parse(fixture('namespacecv.xml'))
|
165
|
+
namespacedub_xml[:dub][:Matrix][:do_something].arguments[1]
|
166
|
+
end
|
167
|
+
|
168
|
+
should 'belong to the :boolean group' do
|
169
|
+
assert_equal :boolean, Dub::Argument.type_group(MockArgument.new('bool'))
|
170
|
+
end
|
171
|
+
|
172
|
+
should 'return type with type' do
|
173
|
+
assert_equal 'bool', subject.type
|
174
|
+
end
|
175
|
+
|
176
|
+
should 'return name with name' do
|
177
|
+
assert_equal 'fast', subject.name
|
178
|
+
end
|
179
|
+
|
180
|
+
should 'know if argument is const' do
|
181
|
+
assert !subject.is_const?
|
182
|
+
end
|
183
|
+
|
184
|
+
should 'know if argument is passed by ref' do
|
185
|
+
assert !subject.is_ref?
|
186
|
+
end
|
187
|
+
|
188
|
+
should 'know that it is a pointer' do
|
189
|
+
assert !subject.is_pointer?
|
190
|
+
end
|
191
|
+
|
192
|
+
should 'know if argument type is a native type' do
|
193
|
+
assert subject.is_native?
|
194
|
+
end
|
195
|
+
|
196
|
+
should 'return bool on create_type' do
|
197
|
+
assert_equal 'bool ', subject.create_type
|
198
|
+
end
|
199
|
+
|
200
|
+
should 'return signature' do
|
201
|
+
assert_equal 'bool', subject.signature
|
202
|
+
end
|
203
|
+
|
204
|
+
should 'return default value if it has one' do
|
205
|
+
assert_equal 'false', subject.default
|
206
|
+
end
|
207
|
+
end
|
208
|
+
|
209
|
+
context 'An argument with the same name as the function' do
|
210
|
+
setup do
|
211
|
+
@function = namespacecv_xml[:cv][:magnitude]
|
212
|
+
@argument = @function.arguments[2]
|
213
|
+
end
|
214
|
+
|
215
|
+
should 'be prefixed with arg_' do
|
216
|
+
assert_equal 'arg_magnitude', @argument.name
|
217
|
+
end
|
218
|
+
end
|
219
|
+
|
220
|
+
context 'An argument with a type from another namespace' do
|
221
|
+
setup do
|
222
|
+
@function = namespacedub_xml[:dub][:Matrix][:use_other_lib]
|
223
|
+
@argument = @function.arguments.first
|
224
|
+
end
|
225
|
+
|
226
|
+
should 'not nest own namespace in id_name' do
|
227
|
+
assert_equal "std.string", @argument.id_name
|
228
|
+
end
|
229
|
+
|
230
|
+
context 'bound to a generator' do
|
231
|
+
setup do
|
232
|
+
Dub::Lua.bind(@function)
|
233
|
+
end
|
234
|
+
|
235
|
+
should 'not nest own namespace in type' do
|
236
|
+
assert_match %r{luaL_checkudata\(L,\s*\d,\s*\"std\.string\"}, @function.to_s
|
237
|
+
end
|
238
|
+
end
|
239
|
+
end
|
240
|
+
|
241
|
+
context 'An argument with a default value' do
|
242
|
+
setup do
|
243
|
+
# namespacecv_xml = Dub.parse(fixture('namespacecv.xml'))
|
244
|
+
@argument = namespacecv_xml[:cv][:resize].arguments[5]
|
245
|
+
end
|
246
|
+
|
247
|
+
should 'return type with type' do
|
248
|
+
assert_equal 'int', @argument.type
|
249
|
+
end
|
250
|
+
|
251
|
+
should 'return name with name' do
|
252
|
+
assert_equal 'interpolation', @argument.name
|
253
|
+
end
|
254
|
+
|
255
|
+
should 'return default value' do
|
256
|
+
assert_equal 'cv::INTER_LINEAR', @argument.default
|
257
|
+
end
|
258
|
+
|
259
|
+
should 'know if it has a default value' do
|
260
|
+
assert @argument.has_default?
|
261
|
+
end
|
262
|
+
|
263
|
+
context 'that is an enum' do
|
264
|
+
setup do
|
265
|
+
@argument = namespacecv_xml[:cv][:Mat].constructor[6].arguments[4]
|
266
|
+
end
|
267
|
+
|
268
|
+
should 'use full namespace signature if default is an enum' do
|
269
|
+
assert_equal 'cv::Mat::AUTO_STEP', @argument.default
|
270
|
+
end
|
271
|
+
end
|
272
|
+
|
273
|
+
context 'that is a class' do
|
274
|
+
setup do
|
275
|
+
@method = namespacecv_xml[:cv][:accumulate]
|
276
|
+
@argument = @method.arguments[2]
|
277
|
+
end
|
278
|
+
|
279
|
+
should 'know that it has a default value' do
|
280
|
+
assert @argument.has_default?
|
281
|
+
end
|
282
|
+
|
283
|
+
should 'return default value' do
|
284
|
+
assert_equal 'Mat()', @argument.default
|
285
|
+
end
|
286
|
+
|
287
|
+
context 'bound to a generator' do
|
288
|
+
setup do
|
289
|
+
Dub::Lua.bind(@method)
|
290
|
+
end
|
291
|
+
|
292
|
+
should 'use if then else for default' do
|
293
|
+
assert_match %r{if\s*\(top__ < 3\) \{\s*accumulate\(\*src, \*dst\);}m,
|
294
|
+
@method.to_s
|
295
|
+
end
|
296
|
+
end
|
297
|
+
end
|
298
|
+
end
|
299
|
+
|
300
|
+
context 'A group of overloaded functions' do
|
301
|
+
setup do
|
302
|
+
@group = namespacecv_xml[:cv][:divide]
|
303
|
+
end
|
304
|
+
|
305
|
+
should 'be ordered into a decision tree' do
|
306
|
+
f1 = @group.detect {|f| f.arguments[0].type == 'Mat'}
|
307
|
+
f2 = @group.detect {|f| f.arguments[0].type == 'MatND'}
|
308
|
+
f3 = @group.detect {|f| f.arguments[0].type == 'double' && f.arguments[1].type == 'Mat'}
|
309
|
+
f4 = @group.detect {|f| f.arguments[0].type == 'double' && f.arguments[1].type == 'MatND'}
|
310
|
+
hash = {'cv.Mat'=>f1, 'cv.MatND'=>f2, :number=> {'cv.Mat' => f3, 'cv.MatND' => f4}}
|
311
|
+
assert_equal hash, Dub::Argument.decision_tree(@group)
|
312
|
+
end
|
313
|
+
end
|
314
|
+
|
315
|
+
context 'A group of overloaded member methods' do
|
316
|
+
setup do
|
317
|
+
@group = namespacecv_xml[:cv][:Mat][:zeros]
|
318
|
+
end
|
319
|
+
|
320
|
+
should 'be ordered into a decision tree' do
|
321
|
+
f1 = @group.detect {|f| f.arguments[0].type == 'Size'}
|
322
|
+
f2 = @group.detect {|f| f.arguments[0].type == 'int'}
|
323
|
+
hash = {'cv.Size'=>f1, :number=> f2}
|
324
|
+
assert_equal hash, Dub::Argument.decision_tree(@group)
|
325
|
+
end
|
326
|
+
end
|
327
|
+
|
328
|
+
class MockArgument
|
329
|
+
attr_reader :type, :full_type
|
330
|
+
def initialize(type, full_type=nil, is_pointer=false)
|
331
|
+
@type = type
|
332
|
+
@full_type = full_type || type
|
333
|
+
@is_pointer = is_pointer
|
334
|
+
end
|
335
|
+
def is_pointer?
|
336
|
+
@is_pointer
|
337
|
+
end
|
338
|
+
end
|
339
|
+
context 'An int argument' do
|
340
|
+
should 'belong to the :number group' do
|
341
|
+
assert_equal :number, Dub::Argument.type_group(MockArgument.new('int'))
|
342
|
+
end
|
343
|
+
end
|
344
|
+
|
345
|
+
context 'A float argument' do
|
346
|
+
should 'belong to the :number group' do
|
347
|
+
assert_equal :number, Dub::Argument.type_group(MockArgument.new('float'))
|
348
|
+
end
|
349
|
+
end
|
350
|
+
|
351
|
+
context 'A double argument' do
|
352
|
+
setup do
|
353
|
+
@argument = namespacecv_xml[:cv][:resize].arguments[3]
|
354
|
+
end
|
355
|
+
|
356
|
+
should 'belong to the :number group' do
|
357
|
+
assert_equal :number, Dub::Argument.type_group(MockArgument.new('double'))
|
358
|
+
end
|
359
|
+
|
360
|
+
should 'create double type' do
|
361
|
+
assert_equal 'double ', @argument.create_type
|
362
|
+
end
|
363
|
+
|
364
|
+
should 'pass by value in call' do
|
365
|
+
assert_equal 'fx', @argument.in_call_type
|
366
|
+
end
|
367
|
+
end
|
368
|
+
|
369
|
+
context 'An array of C types' do
|
370
|
+
setup do
|
371
|
+
@argument = namespacedub_xml[:dub][:FMatrix][:FunkyThing].arguments.first
|
372
|
+
end
|
373
|
+
|
374
|
+
should 'return array count on array_count' do
|
375
|
+
assert_equal '[7]', @argument.array_suffix
|
376
|
+
end
|
377
|
+
|
378
|
+
should 'be passed as is' do
|
379
|
+
assert_equal 'v', @argument.name
|
380
|
+
end
|
381
|
+
|
382
|
+
should 'respond true to has_array_argumetns in method' do
|
383
|
+
assert namespacedub_xml[:dub][:FMatrix][:FunkyThing].has_array_arguments?
|
384
|
+
end
|
385
|
+
|
386
|
+
context 'bound to a generator' do
|
387
|
+
setup do
|
388
|
+
@method = namespacedub_xml[:dub][:FMatrix][:FunkyThing]
|
389
|
+
Dub::Lua.bind(@method)
|
390
|
+
end
|
391
|
+
|
392
|
+
should 'append array when creating receiver' do
|
393
|
+
assert_match %r{double\s+v\[7\]}, @method.to_s
|
394
|
+
end
|
395
|
+
end
|
396
|
+
end
|
397
|
+
|
398
|
+
context 'A custom class by ref' do
|
399
|
+
setup do
|
400
|
+
@argument = namespacecv_xml[:cv][:resize].arguments[0]
|
401
|
+
end
|
402
|
+
|
403
|
+
should 'belong to its own group' do
|
404
|
+
assert_equal 'cv.Mat', Dub::Argument.type_group(@argument)
|
405
|
+
end
|
406
|
+
|
407
|
+
should 'create a const pointer' do
|
408
|
+
assert_equal 'const Mat *', @argument.create_type
|
409
|
+
end
|
410
|
+
|
411
|
+
should 'pass by ref in call' do
|
412
|
+
assert_equal '*src', @argument.in_call_type
|
413
|
+
end
|
414
|
+
|
415
|
+
should 'know if argument is const' do
|
416
|
+
assert @argument.is_const?
|
417
|
+
end
|
418
|
+
|
419
|
+
should 'know if argument is passed by ref' do
|
420
|
+
assert @argument.is_ref?
|
421
|
+
end
|
422
|
+
|
423
|
+
should 'know that it is a pointer' do
|
424
|
+
assert !@argument.is_pointer?
|
425
|
+
end
|
426
|
+
end
|
427
|
+
|
428
|
+
context 'A pointer to a class' do
|
429
|
+
setup do
|
430
|
+
@argument = namespacecv_xml[:cv][:calcHist][0].arguments[0]
|
431
|
+
end
|
432
|
+
|
433
|
+
should 'belong to its own group' do
|
434
|
+
assert_equal 'cv.Mat', Dub::Argument.type_group(@argument)
|
435
|
+
end
|
436
|
+
|
437
|
+
should 'return type with namespace on id_name' do
|
438
|
+
assert_equal 'cv.Mat', @argument.id_name
|
439
|
+
end
|
440
|
+
|
441
|
+
should 'pass by value in call' do
|
442
|
+
assert_equal 'images', @argument.in_call_type
|
443
|
+
end
|
444
|
+
|
445
|
+
should 'know if argument is const' do
|
446
|
+
assert @argument.is_const?
|
447
|
+
end
|
448
|
+
|
449
|
+
should 'know if argument is passed by ref' do
|
450
|
+
assert !@argument.is_ref?
|
451
|
+
end
|
452
|
+
|
453
|
+
should 'know that it is a pointer' do
|
454
|
+
assert @argument.is_pointer?
|
455
|
+
end
|
456
|
+
|
457
|
+
should 'create a pointer' do
|
458
|
+
assert_equal 'const Mat *', @argument.create_type
|
459
|
+
end
|
460
|
+
end
|
461
|
+
|
462
|
+
context 'A pointer to a native type' do
|
463
|
+
setup do
|
464
|
+
@argument = namespacecv_xml[:cv][:calcHist][0].arguments[2]
|
465
|
+
end
|
466
|
+
|
467
|
+
should 'belong to the number_pointer group' do
|
468
|
+
assert_equal :number_ptr, Dub::Argument.type_group(MockArgument.new('int', 'int', true))
|
469
|
+
end
|
470
|
+
|
471
|
+
should 'pass by value in call' do
|
472
|
+
assert_equal 'channels', @argument.in_call_type
|
473
|
+
end
|
474
|
+
|
475
|
+
should 'know if argument is const' do
|
476
|
+
assert @argument.is_const?
|
477
|
+
end
|
478
|
+
|
479
|
+
should 'know if argument is passed by ref' do
|
480
|
+
assert !@argument.is_ref?
|
481
|
+
end
|
482
|
+
|
483
|
+
should 'know that it is a pointer' do
|
484
|
+
assert @argument.is_pointer?
|
485
|
+
end
|
486
|
+
|
487
|
+
should 'return the type without star' do
|
488
|
+
assert_equal 'int', @argument.type
|
489
|
+
end
|
490
|
+
|
491
|
+
should 'create a native type' do
|
492
|
+
assert_equal 'const int *', @argument.create_type
|
493
|
+
end
|
494
|
+
end
|
495
|
+
|
496
|
+
context 'A pointer to a const char' do
|
497
|
+
setup do
|
498
|
+
@argument = namespacedub_xml[:dub][:Matrix][:name].return_value
|
499
|
+
end
|
500
|
+
|
501
|
+
should 'belong to the string group' do
|
502
|
+
assert_equal :string, Dub::Argument.type_group(MockArgument.new('char', 'char', true))
|
503
|
+
end
|
504
|
+
|
505
|
+
should 'know if argument is const' do
|
506
|
+
assert @argument.is_const?
|
507
|
+
end
|
508
|
+
|
509
|
+
should 'know if argument is passed by ref' do
|
510
|
+
assert !@argument.is_ref?
|
511
|
+
end
|
512
|
+
|
513
|
+
should 'know that it is a pointer' do
|
514
|
+
assert @argument.is_pointer?
|
515
|
+
end
|
516
|
+
|
517
|
+
should 'return the type without star' do
|
518
|
+
assert_equal 'char', @argument.type
|
519
|
+
end
|
520
|
+
|
521
|
+
should 'create a native type' do
|
522
|
+
assert_equal 'const char *', @argument.create_type
|
523
|
+
end
|
524
|
+
end
|
525
|
+
|
526
|
+
context 'In a class defined from a template' do
|
527
|
+
setup do
|
528
|
+
@class = namespacecv_xml[:cv][:Scalar]
|
529
|
+
end
|
530
|
+
|
531
|
+
context 'an argument in a constructor' do
|
532
|
+
setup do
|
533
|
+
@argument = @class[:Scalar][3].arguments.first
|
534
|
+
end
|
535
|
+
|
536
|
+
should 'replace template params' do
|
537
|
+
assert_equal 'double', @argument.type
|
538
|
+
end
|
539
|
+
|
540
|
+
should 'not be marked as complex if template params are replaced' do
|
541
|
+
assert !@argument.complex?
|
542
|
+
end
|
543
|
+
end
|
544
|
+
|
545
|
+
context 'a return value' do
|
546
|
+
setup do
|
547
|
+
@argument = @class[:all].return_value
|
548
|
+
end
|
549
|
+
|
550
|
+
should 'replace template params and resolve' do
|
551
|
+
assert_equal 'Scalar', @argument.type
|
552
|
+
end
|
553
|
+
end
|
554
|
+
end
|
555
|
+
|
556
|
+
context 'An argument with template params' do
|
557
|
+
setup do
|
558
|
+
@method = namespacecv_xml[:cv][:Mat][:inv]
|
559
|
+
@argument = @method.return_value
|
560
|
+
end
|
561
|
+
|
562
|
+
should 'know it is a complexe type' do
|
563
|
+
assert @argument.complex?
|
564
|
+
end
|
565
|
+
|
566
|
+
should 'mark the method as having complexe arguments' do
|
567
|
+
assert @method.has_complex_arguments?
|
568
|
+
end
|
569
|
+
end
|
570
|
+
|
571
|
+
context 'An argument with resolved template params' do
|
572
|
+
setup do
|
573
|
+
@method = namespacecv_xml[:cv][:Scalar][:mul]
|
574
|
+
@argument = @method.return_value
|
575
|
+
end
|
576
|
+
|
577
|
+
should 'not be marked as a complexe type' do
|
578
|
+
assert !@argument.complex?
|
579
|
+
end
|
580
|
+
end
|
581
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
cmake_minimum_required(VERSION 2.6)
|
2
|
+
# ----------------------------------------------------------------------------
|
3
|
+
# CMake file for Lua. See root CMakeLists.txt
|
4
|
+
#
|
5
|
+
# ----------------------------------------------------------------------------
|
6
|
+
project(Matrix)
|
7
|
+
|
8
|
+
include_directories(
|
9
|
+
${CMAKE_CURRENT_SOURCE_DIR}/include
|
10
|
+
${CMAKE_CURRENT_SOURCE_DIR}/vendor/lua
|
11
|
+
${CMAKE_CURRENT_SOURCE_DIR}/../../../lib/dub/lua
|
12
|
+
)
|
13
|
+
|
14
|
+
# ==============================================================================
|
15
|
+
#
|
16
|
+
# Platform guessing
|
17
|
+
#
|
18
|
+
# ==============================================================================
|
19
|
+
if(UNIX)
|
20
|
+
if(APPLE)
|
21
|
+
# macosx
|
22
|
+
set(PLAT_LINK "-bundle -undefined dynamic_lookup -all_load")
|
23
|
+
else(APPLE)
|
24
|
+
# linux
|
25
|
+
set(PLAT_LINK "-shared")
|
26
|
+
endif(APPLE)
|
27
|
+
else(UNIX)
|
28
|
+
if(WIN32)
|
29
|
+
# ?
|
30
|
+
else(WIN32)
|
31
|
+
# ?
|
32
|
+
endif(WIN32)
|
33
|
+
endif(UNIX)
|
34
|
+
|
35
|
+
# ----------------------------------------------------------------------------------
|
36
|
+
# Define the library target:
|
37
|
+
# ----------------------------------------------------------------------------------
|
38
|
+
|
39
|
+
set(the_target "Matrix")
|
40
|
+
|
41
|
+
file(GLOB lib_srcs bindings/*.cpp)
|
42
|
+
file(GLOB lib_hdrs bindings/*.h)
|
43
|
+
set(lib_ext_hdrs)
|
44
|
+
|
45
|
+
set(CMAKE_CXX_FLAGS "-DLUA_USE_DLOPEN -DLUA_USE_POSIX")
|
46
|
+
add_library(${the_target} STATIC ${lib_srcs} ${lib_hdrs} ${lib_ext_hdrs})
|
47
|
+
|
48
|
+
set_target_properties(${the_target}
|
49
|
+
PROPERTIES OUTPUT_NAME "${the_target}"
|
50
|
+
#LINK_FLAGS ${PLAT_LINK}
|
51
|
+
PREFIX ""
|
52
|
+
SUFFIX ".a" #".so"
|
53
|
+
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/vendor/lua
|
54
|
+
)
|