aboutsummaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorMaksim Kita <maksim-kita@yandex-team.ru>2023-07-26 15:44:44 +0000
committermaksim-kita <maksim-kita@yandex-team.com>2023-07-26 18:44:44 +0300
commitf112995ac962911827ed4ff8b1f0fdbac27c6072 (patch)
tree5136acad372e56fb98b02067ac4c29b9970de429 /scripts
parentb6e3fc4bfaef9be7014a035044f5c91ce0133e55 (diff)
downloadydb-f112995ac962911827ed4ff8b1f0fdbac27c6072.tar.gz
Generate cmake
Generate cmake Pull Request resolved: #272
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/generate_dump.sh103
1 files changed, 103 insertions, 0 deletions
diff --git a/scripts/generate_dump.sh b/scripts/generate_dump.sh
new file mode 100755
index 0000000000..28e4067981
--- /dev/null
+++ b/scripts/generate_dump.sh
@@ -0,0 +1,103 @@
+#!/usr/bin/env bash
+
+TMP_FOLDER='/tmp/ydb-build-dump'
+
+rm -rf $TMP_FOLDER
+mkdir $TMP_FOLDER
+
+PLATFORM=$1
+TARGET_PLATFORM=$2
+
+PARAMS_FILE=$TMP_FOLDER/params.json
+UNIX_TEMPLATE=$TMP_FOLDER/unix_template.txt
+WIN_TEMPLATE=$TMP_FOLDER/win_template.txt
+
+cat <<'EOF'>$UNIX_TEMPLATE
+{
+ "env": {
+ "CPATH": [""],
+ "LIBRARY_PATH": [""],
+ "SDKROOT": [""]
+ },
+ "params": {
+ "c_compiler": "$$($platform)/bin/clang",
+ "cxx_compiler": "$$($platform)/bin/clang++",
+ "gcc_version": "14.0",
+ "llvm-symbolizer": "$$($platform)/bin/llvm-symbolizer",
+ "match_root": "$platform",
+ "objcopy": "$$($platform)/bin/llvm-objcopy",
+ "strip": "$$($platform)/bin/llvm-strip",
+ "type": "clang",
+ "werror_mode": "all"
+ },
+ "platform": {
+ "host": {
+ "arch": "$arch",
+ "os": "$os",
+ "toolchain": "default",
+ "visible_name": "clang14"
+ },
+ "target": {
+ "arch": "$arch",
+ "os": "$os",
+ "toolchain": "default",
+ "visible_name": "clang14"
+ }
+ }
+}
+EOF
+
+cat <<'EOF'>$WIN_TEMPLATE
+{
+ "params": {
+ "c_compiler": "$$($platform)/bin/Hostx64/x64/cl.exe",
+ "cxx_compiler": "$$($platform)/bin/Hostx64/x64/cl.exe",
+ "cxx_std": "c++latest",
+ "for_ide": "msvs2019",
+ "match_root": "$platform",
+ "type": "msvc",
+ "version": "2019",
+ "werror_mode": "compiler_specific"
+ },
+ "platform": {
+ "host": {
+ "arch": "$arch",
+ "os": "$os",
+ "toolchain": "default",
+ "visible_name": "msvc2019"
+ },
+ "target": {
+ "arch": "$arch",
+ "os": "$os",
+ "toolchain": "default",
+ "visible_name": "msvc2019"
+ }
+ }
+}
+EOF
+
+if [[ $PLATFORM = win* ]]
+then
+ TEMPLATE=$WIN_TEMPLATE
+else
+ TEMPLATE=$UNIX_TEMPLATE
+fi
+
+DUMP_EXPORT_PATH="$TMP_FOLDER/ymake.$PLATFORM.conf"
+
+# generate params for ymake_conf.py
+python3 -c "import sys, string as s; v=sys.argv; p = v[1].replace('-', '_'); o, a = v[2].split('-'); print(s.Template(open('$TEMPLATE').read()).substitute(platform=p.upper(), arch=a, os=o.upper()))" $TARGET_PLATFORM $PLATFORM >$DUMP_EXPORT_PATH.params
+PARAMS=`base64 -w0 $DUMP_EXPORT_PATH.params`
+
+ARCADIA=`realpath .`
+python3 $ARCADIA/build/ymake_conf.py $ARCADIA release no --toolchain-params $PARAMS \
+ -D NO_SVN_DEPENDS=yes -D REPORT_CONFIGURE_PROGRESS=yes -D EXPORT_CMAKE=yes -D TRAVERSE_RECURSE=yes -D TRAVERSE_RECURSE_FOR_TESTS=yes \
+ -D BUILD_LANGUAGES=CPP -D EXPORTED_BUILD_SYSTEM_SOURCE_ROOT='${CMAKE_SOURCE_DIR}' -D EXPORTED_BUILD_SYSTEM_BUILD_ROOT='${CMAKE_BINARY_DIR}' \
+ -D OPENSOURCE=yes -D OPENSOURCE_PROJECT=ydb -D HAVE_CUDA=no -D CUDA_VERSION=0.0 -D USE_PREBUILT_TOOLS=no >$DUMP_EXPORT_PATH
+# append new line
+echo >>$DUMP_EXPORT_PATH
+
+cat $DUMP_EXPORT_PATH
+# cp $DUMP_EXPORT_PATH .
+
+rm -rf $TMP_FOLDER