diff --git a/lib/parquet/reader-writer.cc b/lib/parquet/reader-writer.cc index 68ab579..00d8ef2 100644 --- a/lib/parquet/reader-writer.cc +++ b/lib/parquet/reader-writer.cc @@ -20,7 +20,7 @@ #include #include -#include +#include "reader_writer.h" /* * This example describes writing and reading Parquet Files in C++ and serves as a diff --git a/lib/parquet/reader-writer.o b/lib/parquet/reader-writer.o deleted file mode 100644 index e575325..0000000 Binary files a/lib/parquet/reader-writer.o and /dev/null differ diff --git a/lib/parquet/setup-sources.sh b/lib/parquet/setup-sources.sh old mode 100644 new mode 100755 index a9bf588..f061230 --- a/lib/parquet/setup-sources.sh +++ b/lib/parquet/setup-sources.sh @@ -1 +1,70 @@ #!/bin/bash + +# provide +# - local path of clone of https://github.com/apache/arrow.git +# - name/path of main .hpp file of cython extension +repo="$1" +main="$2" + +# check CLI arguments +if [ -z "$repo" ] || [ -z "$main" ]; then + echo "please provide local path of arrow repository and name of main .hpp/.cpp" + echo -e "example:\n./setup-sources.sh /home/mario/Desktop/Record_Evolution/arrow/ reader-writer.cc" + exit 1 +fi + +echo -e "extracting sources from/for \n1: ${repo}\n2: ${main}\n" + +# generate dependency file +echo -e "generate dependencies:\ng++ -c -MMD ${main} -I ./ -I ${repo}cpp/src/\n" +g++ -c -MMD ${main} -I ${repo}cpp/src/ + +# derive name of dependency file +dep=$(echo ${main} | sed 's/.cc/.d/g') + +if [ -f "$dep" ]; then + + # list dependencies + cat ${dep} | sed 's/ /\n/g' | awk 'NF' | grep -v '\\' | grep '\/' > deps.log + + # extract list of headers + cat deps.log | sed ':a;N;$!ba;s/\n/ /g' > deps-headers.log + echo "list of required headers ($(cat deps.log | wc -l))" + cat deps-headers.log + echo "" + + # imply list of sources + cat deps.log | sed 's/.h$/.cc/g' | sed 's/.hpp$/.cpp/g' > sources_raw.log + cat sources_raw.log | while read f + do + if [ -f "$f" ]; then + echo $f >> sources_check.log + fi + done + cat sources_check.log | sed ':a;N;$!ba;s/\n/ /g' > deps-sources.log + echo "list of required sources ($(cat sources_check.log | wc -l))" + cat deps-sources.log + echo "" + + # remove all temporary files + rm ${dep} deps.log sources_raw.log sources_check.log + + # copy required headers and sources + echo -e "copy required headers and sources" + mkdir temp/ + cp --parents `cat deps-headers.log` temp/ + cp --parents `cat deps-sources.log` temp/ + mv temp${repo}cpp/src/* ./ + rm -r temp + + # remove dependencies + rm deps-headers.log deps-sources.log + + # show files + ls -lh + +else + + echo -e "\nERROR: failed to generate dependency file\n" + +fi