This diff fixes them by correcting invalid CMake variable names:
* OPENSSL_... rather than OpenSSL_...
* LIBEVENT_... rather than Libevent_...
* Boost_INCLUDE_DIRS rather than Boost_INCLUDE_DIR
* LIBEVENT_INCLUDE_DIRS rather than LIBEVENT_INCLUDE_DIR
* ZLIB_INCLUDE_DIRS rather than ZLIB_INCLUDE_DIR
Note:
* OPENSSL_INCLUDE_DIR is correct (rather than ..._DIRS)
* Boost_INCLUDE_DIR exists and actually works for most cases but
Boost_INCLUDE_DIRS is the one desinged to be included
Also, library headers are now included as SYSTEM headers.
Following changes are made to fix the build
* Add USE_..._THREAD compiler definitions correctly
* Link to boost_thread and boost_system when configured with boost thread
* Link to pthread if platform is posix and std thread is used
* Use PlatformThreadFactory in test code
Currently the following libraries are supported:
- C++
- C_Glib
- Java (using Ant wrapper)
The compilers CMake file is adjusted to work with the new global CMakeLists.txt file.
Signed-off-by: Roger Meier <r.meier@siemens.com>
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Also-by: Sergei Nikulov <sergey.nikulov@gmail.com>
Client: C++-Library
Patch: Sergei Nikulov
unist.h removed
THRIFT_SLEEP_USEC used instead of usleep
ERROR variable renamed to TEST_TOLERANCE
This closes#207
Patch: Dave Watson
This closes#88
Summary:
Clean up how enum values are handled if an integer value is not
explicitly specified in the thrift file.
For example, the following used to be a compile error, but
works now:
enum MyEnum {
SOMEVALUE
}
struct MyStruct {
1: MyEnum e = SOMEVALUE
}
This change also cleans up some of the error handling with out-of-range
values. Previously thrift simply issued a warning for enum values that
didn't fit in an i32, but serialized them as i32 anyway. Now
out-of-range enum values result in a compile failure.
Test Plan:
Included a new unit test to verify the assignment of enum values. I
also verified that g++ makes the same enum value assignments when
compiling these enums as C++ code.
This test checks whether Thrift leaves OpenSSL functionality available
after the last TSSLSocketFactory is destroyed when manual
initialization is set. It uses the EVP_get_digestbyname function as
an example function that requires OpenSSL initialization to work
properly.
Signed-off-by: Alan Dunn <amdunn@gmail.com>
Signed-off-by: Roger Meier <roger@apache.org>
Client: compiler general
Patch: Dave Watson
This closes#113
commit 52b99af4ee1574253dcb77933d76a7ebb2d830df
Author: Dave Watson <davejwatson@fb.com>
Date: 2014-04-23T20:05:56Z
change cpp.ref to &
commit 3f9d31cc6140367529fd8f7b1b67056ec321786f
Author: Dave Watson <davejwatson@fb.com>
Date: 2014-04-23T21:50:29Z
Recursion depth limit
commit 61468e4534ce9e6a4f4f643bfd00542d13600d83
Author: Dave Watson <davejwatson@fb.com>
Date: 2014-04-25T19:59:18Z
shared_ptr for reference type
Client: compiler
Patch: Dave Watson
Patch to go along with pull request 84 to fix missing destructors.
Github Pull Request: This closes#98
----
commit f4daec9b0af386e8f6e9e66fb688aab8cd949fdc
Date: 2014-04-09T17:33:18Z
Also generate destructor for _result, presult, args, pargs
Client: cpp
Patch: Dave Watson
Github Pull Request: This closes#84
----
commit b6134cedf292845e5ed01052919894df6b561bf2
Date: 2014-03-20T18:12:04Z
Recursive structs support in parser
A common complaint is that you can't express trees or other recursive structures in thrift easily - unlike protobufs. This diff loosens up the parser to allow using structs before they are defined (and uses typedef as a forward declaration).
This diff is actually enough to make recursive types work for some dyamic languages (I tried php, works out of the box!)
Other languages will need forward declarations, or ways to box types, to make this work (i.e. C++ needs both forward decls and a way to express structs as pointers)