Michael Vilim created ARROW-4261:
------------------------------------

             Summary: [C++] CMake paths for IPC, Flight, Thrift, and Plasma 
don't support using Arrow as a subproject
                 Key: ARROW-4261
                 URL: https://issues.apache.org/jira/browse/ARROW-4261
             Project: Apache Arrow
          Issue Type: Bug
          Components: C++
            Reporter: Michael Vilim


Builds using Arrow as a CMake subproject (using add_subdirectory) will fail if 
the IPC, Flight, Thrift, or Plasma features are turned on. This issue is caused 
by the use of CMAKE_SOURCE_DIR and CMAKE_BINARY_DIR which point to the top 
level directories of the CMake project (source and output, respectively).

In most of the cases where these paths are used, they are intended to point to 
the Arrow source and build dirs. Defining and using CMake variables for those 
top level Arrow folders solves the issue.

I will open a pull request to fix the issue.

A project that demonstrates the issue and the patch can be found here: 
https://github.com/mvilim/arrow-as-subproject

Note: there are several other locations in the repo where CMAKE_SOURCE_DIR and 
CMAKE_BINARY_DIR are used (outside of the main cpp build, the cmake_modules, 
and the Gandiva subproject, for example). I hesitate to change these without an 
easy way to test all the possible build paths. I choosing a safe route here and 
changing only the most straightforward ones (and ones most likely to be used 
with Arrow as a subproject). If you would prefer I try to change all uses of 
these variables, let me know (and let me know if you have a straightforward way 
to test the supported build configurations).



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to