[ https://issues.apache.org/jira/browse/THRIFT-4941?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16928008#comment-16928008 ]
Jens Geyer commented on THRIFT-4941: ------------------------------------ I tried this, and it works for me. My testcase: * delete gen-cpp folder * call {{thrift -gen cpp ThriftTest.thrift}} * open a file in the newly generated gen-cpp folder and modify it manually * now run {{thrift -gen cpp ThriftTest.thrift}} again * check the file if the manual edits are still there => NO. That looks pretty much as it should. What am I doing wrong? > thrift compiler will not auto update gen-cpp directory > ------------------------------------------------------ > > Key: THRIFT-4941 > URL: https://issues.apache.org/jira/browse/THRIFT-4941 > Project: Thrift > Issue Type: Bug > Components: C++ - Compiler > Affects Versions: 0.13.0 > Environment: > Reporter: pengzhouhu > Priority: Major > Fix For: 0.13.0 > > Time Spent: 10m > Remaining Estimate: 0h > > thrift compiler will not auto update the files in the gen-cpp directory. > when we call t_generator::generate_program() and init_generator() in > compiler\cpp\src\thrift\generate\t_generator.cc , > 'MKDIR' macro will ignore EEXIST, and throw on any other error, this > will not give any reponse print on terminal. we used to update and generate > the .h .cpp files in the whole directory. > 1. delete the old folder and create new one, generate the file again. > 2. throw errno directly and exit the terminal. > > what`s your opinion about this? > > code details: > {code:java} > // ignore EEXIST, throw on any other error > #ifdef _WIN32 > #define MKDIR(x) { int r = _mkdir(x); if (r == -1 && errno != EEXIST) { throw > (std::string(x) + ": ") + strerror(errno); } } > #else > #define MKDIR(x) { int r = mkdir(x, S_IRWXU | S_IRWXG | S_IRWXO); if (r == -1 > && errno != EEXIST) { throw (std::string(x) + ": ") + strerror(errno); } } > #endif > {code} > Thanks. > Zhouhu. -- This message was sent by Atlassian Jira (v8.3.2#803003)