2015-01-08 21:41:35 +00:00
|
|
|
|
#!/bin/bash -e
|
|
|
|
|
|
|
|
|
|
# Этот скрипт собирает все заголовочные файлы, нужные для компиляции некоторого translation unit-а
|
|
|
|
|
# и копирует их с сохранением путей в директорию DST.
|
|
|
|
|
# Это затем может быть использовано, чтобы скомпилировать translation unit на другом сервере,
|
|
|
|
|
# используя ровно такой же набор заголовочных файлов.
|
2015-01-11 00:57:21 +00:00
|
|
|
|
#
|
|
|
|
|
# Требуется clang, желательно наиболее свежий (trunk).
|
|
|
|
|
#
|
|
|
|
|
# Используется при сборке пакетов.
|
|
|
|
|
# Заголовочные файлы записываются в пакет clickhouse-server-base, в директорию /usr/share/clickhouse/headers.
|
|
|
|
|
#
|
|
|
|
|
# Если вы хотите установить их самостоятельно, без сборки пакета,
|
|
|
|
|
# чтобы clickhouse-server видел их там, где ожидается, выполните:
|
|
|
|
|
#
|
|
|
|
|
# sudo ./copy_headers.sh . /usr/share/clickhouse/headers/
|
2015-01-08 21:41:35 +00:00
|
|
|
|
|
2015-01-08 22:10:30 +00:00
|
|
|
|
SOURCE_PATH=${1:-.}
|
|
|
|
|
DST=${2:-$SOURCE_PATH/../headers};
|
2015-01-08 21:41:35 +00:00
|
|
|
|
|
2015-01-15 20:46:21 +00:00
|
|
|
|
PATH="/usr/local/bin:/usr/local/sbin:/usr/bin:$PATH"
|
|
|
|
|
|
2015-02-05 00:33:58 +00:00
|
|
|
|
# Опция -mcx16 для того, чтобы выбиралось больше заголовочных файлов (с запасом).
|
2015-01-19 07:25:02 +00:00
|
|
|
|
|
2015-02-05 00:33:58 +00:00
|
|
|
|
for i in $(clang -M -xc++ -std=gnu++1y -Wall -Werror -msse4 -mcx16 -mpopcnt -O3 -g -fPIC \
|
2015-01-19 07:25:02 +00:00
|
|
|
|
$(cat "$SOURCE_PATH/CMakeLists.txt" | grep include_directories | grep -v METRICA_BINARY_DIR | sed -e "s!\${METRICA_SOURCE_DIR}!$SOURCE_PATH!; s!include_directories (!-I !; s!)!!;" | tr '\n' ' ') \
|
|
|
|
|
"$SOURCE_PATH/dbms/include/DB/Interpreters/SpecializedAggregator.h" |
|
2015-01-08 21:41:35 +00:00
|
|
|
|
tr -d '\\' |
|
|
|
|
|
grep -v '.o:' |
|
2015-01-15 20:39:05 +00:00
|
|
|
|
sed -r -e 's/^.+\.cpp / /');
|
2015-01-08 21:41:35 +00:00
|
|
|
|
do
|
2015-01-19 07:25:02 +00:00
|
|
|
|
mkdir -p "$DST/$(echo $i | sed -r -e 's/\/[^/]*$/\//')";
|
|
|
|
|
cp "$i" "$DST/$i";
|
2015-01-08 21:41:35 +00:00
|
|
|
|
done
|
2015-01-23 20:03:22 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# Копируем больше заголовочных файлов с интринсиками, так как на серверах, куда будут устанавливаться
|
|
|
|
|
# заголовочные файлы, будет использоваться опция -march=native.
|
|
|
|
|
|
|
|
|
|
for i in $(ls -1 $(clang -v -xc++ - <<<'' 2>&1 | grep '^ /' | grep 'include' | grep '/lib/clang/')/*.h | grep -vE 'arm|altivec|Intrin');
|
|
|
|
|
do
|
|
|
|
|
cp "$i" "$DST/$i";
|
|
|
|
|
done
|