Commit Graph

121 Commits

Author SHA1 Message Date
Corentin Wallez 97bc020cf4 Make the NULL backend proctables be generated in a .cpp
Previously they were in a .mm and GCC didn't know what to do with it.
2017-05-30 15:55:34 -07:00
Corentin Wallez b38ff68b88 Make wire_autogen have all symbols defined internally
Previously WireCmd.h/cpp that is used in wire_autogen wasn't included in
the sources, causing a link error on some platforms.

With WireCmd.* moved in the EXTRA_SOURCES, the nxt_wire target didn't
contain any non-header file and caused a link error on OSX. Fix it by
properly splitting the declaration and implementation of
TerribleCommandBuffer in a .h and .cpp file.
2017-05-30 15:55:34 -07:00
Corentin Wallez 944b60fb75 Fix compilation on Windows
There are still a bunch of warning that we should remove.
2017-05-30 10:48:32 -07:00
Corentin Wallez 26275d0a16 Make all libraries STATIC for now
For shared library to work on Windows to work, we need to add
declspec(export) and declspec(import) annotations to the symbols to
export. This fixes the problem by making all libraries static on
Windows, but we'll need to revisit and do proper symbol exports.
2017-05-30 10:48:32 -07:00
Corentin Wallez 635d7d599f Generate an nxtcpp_traits.h with metaprogramming helpers
The files currently has Builder and BuiltObject template type aliases to
go from builder type to built object type or vice-versa.
2017-05-30 10:40:43 -07:00
Corentin Wallez a0a9f633ce Fix ObjectBase's move constructor not setting handle to nullptr
This caused a crash because if handle was set to garbage then the
move-constructor would try to call the Release function on it.
2017-05-30 10:40:43 -07:00
Corentin Wallez 79a62bf6e3 Create a Null backend.
This will be useful to run validation unittests without using the GPU.
2017-05-24 15:23:53 -04:00
Corentin Wallez 75bbcec543 Add wire test for the maybe monad 2017-05-19 10:41:36 +02:00
Corentin Wallez 42f2d3c5f2 Add wire tests for *SetErrorCallback 2017-05-19 10:41:36 +02:00
Corentin Wallez 1b7c5e3f70 Mock API: special case the SetErrorCallback procs.
Also add a suppression for these procs in wiretests, unless we are
specifically testing them.
2017-05-19 10:41:36 +02:00
Kai Ninomiya 314f3852a3 Fix Linux build 2017-05-16 21:09:14 +02:00
Corentin Wallez 36cf2dd54b Make autogenerated validation produce device or builder errors 2017-05-11 11:31:54 +02:00
Corentin Wallez f79df0c62d Print builder errors by default. 2017-05-11 11:31:54 +02:00
Corentin Wallez cd0ea35889 Implement builder callback forwarding in the wire 2017-05-11 11:31:54 +02:00
Corentin Wallez 7f96177289 Implement the builder error callback in the backends
This makes the Builder base class retain the error status, if any, and
call the callback on GetResult (or ~Builder, whichever comes first).
2017-05-11 11:31:54 +02:00
Corentin Wallez 4b410a33ca Implement the device error callback.
This adds support for "natively defined" API types like callbacks that
will have to be implemented manually for each target language. Also this
splits the concept of "native method" into a set of native methods per
language.

Removes the "Synchronous error" concept that was used to make builders
work in the maybe Monad, this will have to be reinroduced with builder
callbacks.
2017-05-11 11:31:54 +02:00
Corentin Wallez 682a8250b3 Plumb the server->client wire 2017-05-11 11:31:54 +02:00
Corentin Wallez a2d4d14bd4 mock_api: Only mock methods with less than 10 arguments
GoogleMock only handles up to 10 arguments, but functions this big
probably won't be used in mocked tests so we can just skip them.
2017-05-10 19:49:52 +02:00
Kai Ninomiya faa5894500 Add shebang to generator/main.py to use python2
Fixes #3
2017-04-27 10:46:53 -04:00
Corentin Wallez 5473d719f7 Update blink generators for the big Blink rename. 2017-04-26 15:17:03 -04:00
Corentin Wallez f07e3bd4c9 Initial commit of all the NXT integration.
More like squashed history, contributors were:
 - Kai Ninomiya
 - Corentin Wallez
2017-04-20 14:38:20 -04:00