parquet: setup_sources.sh
This commit is contained in:
parent
aee2c180a7
commit
64090344c7
@ -20,7 +20,7 @@
|
|||||||
#include <iostream>
|
#include <iostream>
|
||||||
#include <memory>
|
#include <memory>
|
||||||
|
|
||||||
#include <reader_writer.h>
|
#include "reader_writer.h"
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This example describes writing and reading Parquet Files in C++ and serves as a
|
* This example describes writing and reading Parquet Files in C++ and serves as a
|
||||||
|
Binary file not shown.
69
lib/parquet/setup-sources.sh
Normal file → Executable file
69
lib/parquet/setup-sources.sh
Normal file → Executable file
@ -1 +1,70 @@
|
|||||||
#!/bin/bash
|
#!/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
|
||||||
|
Loading…
x
Reference in New Issue
Block a user