[ 
https://issues.apache.org/jira/browse/PARQUET-798?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15745942#comment-15745942
 ] 

William Forson commented on PARQUET-798:
----------------------------------------

(I mean, I guess I can just munge `thirdparty/versions.sh`)

> usage of THRIFT_HOME in build?
> ------------------------------
>
>                 Key: PARQUET-798
>                 URL: https://issues.apache.org/jira/browse/PARQUET-798
>             Project: Parquet
>          Issue Type: Bug
>          Components: parquet-cpp
>            Reporter: William Forson
>         Attachments: cmake_output_original.txt
>
>
> Hi,
> I posted this issue a while back on the old parquet-cpp github page and 
> forgot about it...until just now.
> First of all, to briefly describe my use case: I am using parquet-cpp as a 
> dependency in a project which already has a dependency on thrift. As such, 
> I'd like to be able to build parquet-cpp against the version of thrift which 
> we are already using in the project.
> When I first spotted the notes regarding {{THRIFT_HOME}} in the readme, I 
> thought this looked like exactly what I wanted -- that is, a way to configure 
> the parquet-cpp build process to use external/pre-built thrift artifacts. So, 
> for starters: am I simply misinterpreting the meaning of {{THRIFT_HOME}}? 
> (e.g. does that specify a _destination_ directory for thrift artifacts built 
> during the parquet-cpp 3p build step?) And if so, is there any good way (or 
> bad way) to accomplish what I'm trying to do here?
> Otherwise, when I try to use my own thrift installation (via 
> {{THRIFT_HOME}}), the build fails like so:
> {quote}
> $ make parquetcpp
> cd parquet-cpp && source ./thirdparty/set_thirdparty_env.sh && make
> make[1]: Entering directory `parquet-cpp'
> make[2]: Entering directory `parquet-cpp'
> make[3]: Entering directory `parquet-cpp'
> Scanning dependencies of target parquet_thrift
> make[3]: Leaving directory `parquet-cpp'
> make[3]: Entering directory `parquet-cpp'
> [  1%] Building CXX object 
> src/parquet/thrift/CMakeFiles/parquet_thrift.dir/parquet_types.cpp.o
> parquet-cpp/src/parquet/thrift/parquet_types.cpp: In member function 
> ‘uint32_t 
> parquet::format::Statistics::read(apache::thrift::protocol::TProtocol*)’:
> parquet-cpp/src/parquet/thrift/parquet_types.cpp:179:3: error: 
> ‘TInputRecursionTracker’ is not a member of ‘apache::thrift::protocol’
>    apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
>    ^
> parquet-cpp/src/parquet/thrift/parquet_types.cpp: In member function 
> ‘uint32_t 
> parquet::format::Statistics::write(apache::thrift::protocol::TProtocol*) 
> const’:
> parquet-cpp/src/parquet/thrift/parquet_types.cpp:244:3: error: 
> ‘TOutputRecursionTracker’ is not a member of ‘apache::thrift::protocol’
>    apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
>    ^
> parquet-cpp/src/parquet/thrift/parquet_types.cpp: In member function 
> ‘uint32_t 
> parquet::format::SchemaElement::read(apache::thrift::protocol::TProtocol*)’:
> parquet-cpp/src/parquet/thrift/parquet_types.cpp:357:3: error: 
> ‘TInputRecursionTracker’ is not a member of ‘apache::thrift::protocol’
>    apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
>    ^
> parquet-cpp/src/parquet/thrift/parquet_types.cpp: In member function 
> ‘uint32_t 
> parquet::format::SchemaElement::write(apache::thrift::protocol::TProtocol*) 
> const’:
> parquet-cpp/src/parquet/thrift/parquet_types.cpp:471:3: error: 
> ‘TOutputRecursionTracker’ is not a member of ‘apache::thrift::protocol’
>    apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
>    ^
> <SNIP ... you get the idea>
>    ^
> parquet-cpp/src/parquet/thrift/parquet_types.cpp: In member function 
> ‘uint32_t 
> parquet::format::FileMetaData::read(apache::thrift::protocol::TProtocol*)’:
> parquet-cpp/src/parquet/thrift/parquet_types.cpp:2646:3: error: 
> ‘TInputRecursionTracker’ is not a member of ‘apache::thrift::protocol’
>    apache::thrift::protocol::TInputRecursionTracker tracker(*iprot);
>    ^
> parquet-cpp/src/parquet/thrift/parquet_types.cpp: In member function 
> ‘uint32_t 
> parquet::format::FileMetaData::write(apache::thrift::protocol::TProtocol*) 
> const’:
> parquet-cpp/src/parquet/thrift/parquet_types.cpp:2775:3: error: 
> ‘TOutputRecursionTracker’ is not a member of ‘apache::thrift::protocol’
>    apache::thrift::protocol::TOutputRecursionTracker tracker(*oprot);
>    ^
> make[3]: *** 
> [src/parquet/thrift/CMakeFiles/parquet_thrift.dir/parquet_types.cpp.o] Error 1
> make[3]: Leaving directory `parquet-cpp'
> make[2]: *** [src/parquet/thrift/CMakeFiles/parquet_thrift.dir/all] Error 2
> make[2]: Leaving directory `parquet-cpp'
> make[1]: *** [all] Error 2
> make[1]: Leaving directory `parquet-cpp'
> make: *** [<...>/libparquet.a] Error 2
> {quote}
> This kinda smells like a circular dependency (as all of the types/headers 
> mentioned above look fine), but I haven't dug through the internals of the 
> parquet-cpp build logic enough to diagnose it in more detail. Before doing 
> so, I wanted to post here for a sanity check on my use case, and the intended 
> semantics/usage of {{THRIFT_HOME}}.
> Any help/clarification will be much appreciated!



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to