You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@thrift.apache.org by "James E. King, III (JIRA)" <ji...@apache.org> on 2017/01/10 19:48:59 UTC

[jira] [Created] (THRIFT-4025) As a developer, I would like to use the cmake generated config.h even on windows

James E. King, III created THRIFT-4025:
------------------------------------------

             Summary: As a developer, I would like to use the cmake generated config.h even on windows
                 Key: THRIFT-4025
                 URL: https://issues.apache.org/jira/browse/THRIFT-4025
             Project: Thrift
          Issue Type: Improvement
          Components: C++ - Library
    Affects Versions: 0.10.0
         Environment: Windows
            Reporter: James E. King, III
            Assignee: James E. King, III


The thrift windows C++ library build uses a special cased config.h file that does not honor the flags used when generating the cmake build environment.  If you look into thrift/thrift-config.h which is included from thrift/Thrift.h you will find:

{noformat}
#ifdef _WIN32
#include <thrift/windows/config.h>
#else
#include <thrift/config.h>
#endif
{noformat}

The cmake build environment generates a thrift/config.h file and places it into the out-of-tree build directory.  It differs significantly from the build options used when running cmake.  For example:

In thrift/windows/config.h if Visual Studio 2012 or later is being used, boost threads are disabled and std threads are enabled, indicating C++11.  If you look in thrift/config.h for a build generated with boost threads enabled,  (-DUSE_BOOST_THREADS), the generated config.h should have that.  The windows specific config. blindly sets HAVE_INTTYPES_H to 1, without actually checking for <inttypes.h>, which is checked during cmake generation and put into thrift/config.h.

In short, We should eliminate the windows branch on the configuration files here, and just use the config.h that is generated by cmake.



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