Hi, What determines which C++ header files go into the include directory in Python builds? From CMakeLists.txt all I can find is that if we set PYARROW_BUILD_ORC to ON then _orc gets built. What really matters is what goes inside _orc and in particular why doesn’t arrow/adapters/orc/adapter_options.h get recognized even though it clearly exists, is used in _orc.pxd and the C++ builds do recognize its existence.
Here is the PR: https://github.com/apache/arrow/pull/9702 Best, Ian On Friday, November 26, 2021, Ian Joiner <iajoiner...@gmail.com> wrote: > Hi, > > I have added a new C++ header file, arrow/adapters/orc/adapter_options.h > which is not recognized in Cython in our Github Action builds. I wonder > what kind of changes (in CMake? I haven’t found any relevant piece in the > one CMakeLists.txt in the python directory though) are necessary to make > the file usable. > > Here is the error message I got here (https://github.com/apache/ > arrow/runs/4336588692?check_suite_focus=true) : > > [44/60] Building CXX object CMakeFiles/_orc.dir/_orc.cpp.o > FAILED: CMakeFiles/_orc.dir/_orc.cpp.o > ccache /opt/conda/envs/arrow/bin/x86_64-conda-linux-gnu-c++ > -DARROW_HAVE_RUNTIME_AVX2 -DARROW_HAVE_RUNTIME_AVX512 > -DARROW_HAVE_RUNTIME_BMI2 -DARROW_HAVE_RUNTIME_SSE4_2 -DARROW_HAVE_SSE4_2 > -D_orc_EXPORTS -isystem /opt/conda/envs/arrow/lib/ > python3.8/site-packages/numpy/core/include -isystem > /opt/conda/envs/arrow/include/python3.8 -isystem /arrow/python/src > -Wno-noexcept-type -Wall -fno-semantic-interposition -msse4.2 > -fvisibility-inlines-hidden -std=c++17 -fmessage-length=0 -march=nocona > -mtune=haswell -ftree-vectorize -fPIC -fstack-protector-strong -fno-plt -O2 > -ffunction-sections -pipe -isystem /opt/conda/envs/arrow/include > -fdiagnostics-color=always -g -O0 -fno-omit-frame-pointer > -Wno-unused-variable -Wno-maybe-uninitialized -g -fPIC -std=c++11 > -Wno-unused-function -MD -MT CMakeFiles/_orc.dir/_orc.cpp.o -MF > CMakeFiles/_orc.dir/_orc.cpp.o.d -o CMakeFiles/_orc.dir/_orc.cpp.o -c > /build/python/temp.linux-x86_64-3.8/_orc.cpp > /build/python/temp.linux-x86_64-3.8/_orc.cpp:736:10: fatal error: > arrow/adapters/orc/adapter_options.h: No such file or directory > 736 | #include "arrow/adapters/orc/adapter_options.h" > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > compilation terminated. > > Thanks Sutou for pointing out how to fix CMakeLists.txt in cpp/src/arrow > back then which is why we no longer have any comparable problem in C++. > > Thanks, > Ian