diff --git a/internal/kclvm_py/api/version/checksum.txt b/internal/kclvm_py/api/version/checksum.txt index a75349d2f..dcee92d48 100644 --- a/internal/kclvm_py/api/version/checksum.txt +++ b/internal/kclvm_py/api/version/checksum.txt @@ -1 +1 @@ -9e3303edaba484df6004620bf7b28b98 \ No newline at end of file +c5339e572207211e46477825e8aca903 \ No newline at end of file diff --git a/internal/kclvm_py/program/exec/kclvm_cli.py b/internal/kclvm_py/program/exec/kclvm_cli.py index 6cfdefe56..4f030423a 100644 --- a/internal/kclvm_py/program/exec/kclvm_cli.py +++ b/internal/kclvm_py/program/exec/kclvm_cli.py @@ -21,7 +21,7 @@ kclvm_PANIC_INFO_KEY = "__kcl_PanicInfo__" - +_exe_root = os.path.dirname(os.environ.get("KCLVM_CLI_BIN_PATH") or sys.executable) _cli_dll = None @@ -32,15 +32,12 @@ def init_cli_dll(): return if platform.system() == "Darwin": - _exe_root = os.path.dirname(os.path.dirname(sys.executable)) _cli_dll_path = f"{_exe_root}/bin/libkclvm_cli_cdylib.dylib" _cli_dll = CDLL(_cli_dll_path) elif platform.system() == "Linux": - _exe_root = os.path.dirname(os.path.dirname(sys.executable)) _cli_dll_path = f"{_exe_root}/bin/libkclvm_cli_cdylib.so" _cli_dll = CDLL(_cli_dll_path) elif platform.system() == "Windows": - _exe_root = os.path.dirname(sys.executable) _cli_dll_path = f"{_exe_root}/kclvm_cli_cdylib.dll" _cli_dll = CDLL(_cli_dll_path) else: diff --git a/internal/kclvm_py/scripts/build-cpython.sh b/internal/kclvm_py/scripts/build-cpython.sh index f62643804..848509f54 100755 --- a/internal/kclvm_py/scripts/build-cpython.sh +++ b/internal/kclvm_py/scripts/build-cpython.sh @@ -10,76 +10,6 @@ prepare_dirs () { mkdir -p "$cpython_install_dir" } -# Switch configuration options. -config_option="Default" -if [ "$os" != "" ]; then - config_option=$os -fi - -# python version -py_ver_major="3" -py_ver_minor="7" -py_ver_micro="6" - -for config in "$config_option" -do - case $config in - "Default" | "centos") - config_envs="LANG=C.UTF-8" - config_options="--enable-optimizations --with-ssl" - echo "$REPLY: The configuration is $config: config_envs=$config_envs config_options=$config_options" - break - ;; - "Darwin") - if [ "$sslpath" == "" ]; then - sslpath=$(brew --prefix openssl@1.1) - fi - - py_ver_major="3" - py_ver_minor="9" - py_ver_micro="12" - - config_envs="LANG=C.UTF-8" - config_options="--enable-optimizations --with-openssl=$sslpath --with-ssl-default-suites=python" - echo "$REPLY: The configuration is $config: config_envs=$config_envs config_options=$config_options" - break - ;; - "ubuntu" | "debian" | "Ubuntu" |"Debian" | "Static-Debian" | "Cood1-Debian" | "Cood1Shared-Debian") - config_envs="CFLAGS=-Wno-coverage-mismatch" - config_options="--enable-optimizations --with-ssl" - echo "$REPLY: The configuration is $config: config_envs=$config_envs config_options=$config_options" - break - ;; - *) echo "Invalid config option $REPLY:$config" - exit 1 - break - ;; - esac -done - -# py_ver_str="$(python3 -c 'import os; print(os.path.basename(os.path.dirname(os.__file__)))')" -py_ver_str="${py_ver_major}.${py_ver_minor}.${py_ver_micro}" - -# wget python -mkdir -p $topdir/_build/3rdparty -wget -P $topdir/_build/3rdparty "https://www.python.org/ftp/python/${py_ver_str}/Python-${py_ver_str}.tgz" -tar zxvf $topdir/_build/3rdparty/Python-${py_ver_str}.tgz -C $topdir/_build/3rdparty - -prepare_dirs -prefix_option="--prefix=$cpython_install_dir" -cpython_source_dir="$topdir/_build/3rdparty/Python-${py_ver_str}" - -# Perform the configuration/make/make install process. -set -x -cd $cpython_build_dir -eval $config_envs $cpython_source_dir/configure $prefix_option $config_options "--enable-shared" -eval $config_envs $cpython_source_dir/configure $prefix_option $config_options -# The make -j command may fail on some OS. -# make -j "$(nproc)" -make -j8 build_all -make -j8 altinstall -set +x - # Print the summary. echo "================ Summary ================" -echo " CPython is built into $cpython_build_dir" \ No newline at end of file +echo " CPython is ignored!!!" diff --git a/internal/kclvm_py/scripts/build-kclvm.sh b/internal/kclvm_py/scripts/build-kclvm.sh index 0cf46f129..eca1cae47 100755 --- a/internal/kclvm_py/scripts/build-kclvm.sh +++ b/internal/kclvm_py/scripts/build-kclvm.sh @@ -4,59 +4,20 @@ set -e prepare_dirs () { - cpython_build_dir="$topdir/_build/dist/$os/cpython" - kclvm_packages_dir="$topdir/_build/packages" kclvm_install_dir="$topdir/_build/dist/$os/kclvm" - mkdir -p "$kclvm_install_dir" - mkdir -p "$kclvm_packages_dir" + mkdir -p "$kclvm_install_dir/bin" + mkdir -p "$kclvm_install_dir/lib/site-packages" + mkdir -p "$kclvm_install_dir/include" } prepare_dirs kclvm_source_dir="$topdir/internal/kclvm_py" -# python exe name -py_exe_name="python3.7" -if [ -d "${cpython_build_dir}/lib/python3.9" ]; then - py_exe_name="python3.9" -fi - -# py_lib_basename: python3.x -py_lib_basename="python3.7" -if [ -d "${cpython_build_dir}/lib/python3.9" ]; then - py_lib_basename="python3.9" -fi - # Perform the build process. set -x -# Copy files from CPython. -cd $kclvm_install_dir -mkdir -p bin -mkdir -p lib -cp $cpython_build_dir/bin/${py_exe_name} $kclvm_install_dir/bin/kclvm -cp -r $cpython_build_dir/lib/${py_lib_basename} $kclvm_install_dir/lib/ - -# Darwin dylib -if [ -e $cpython_build_dir/lib/lib${py_lib_basename}.dylib ]; then - touch $kclvm_install_dir/lib/lib${py_lib_basename}.dylib - rm $kclvm_install_dir/lib/lib${py_lib_basename}.dylib - mv $cpython_build_dir/lib/lib${py_lib_basename}.dylib $kclvm_install_dir/lib/lib${py_lib_basename}.dylib -fi -# Linux so -if [ -e $cpython_build_dir/lib/lib${py_lib_basename}m.so.1.0 ]; then - touch $kclvm_install_dir/lib/lib${py_lib_basename}.so - rm $kclvm_install_dir/lib/lib${py_lib_basename}.so - mv $cpython_build_dir/lib/lib${py_lib_basename}m.so.1.0 $kclvm_install_dir/lib/lib${py_lib_basename}.so -fi -# Windows dll -if [ -e $cpython_build_dir/lib/lib${py_lib_basename}.dll ]; then - touch $kclvm_install_dir/lib/lib${py_lib_basename}.dll - rm $kclvm_install_dir/lib/lib${py_lib_basename}.dll - mv $cpython_build_dir/lib/lib${py_lib_basename}.dll $kclvm_install_dir/lib/lib${py_lib_basename}.dll -fi -cp -r $cpython_build_dir/include $kclvm_install_dir/ - # Copy KCLVM. +cp "$topdir/internal/kclvm_py/scripts/requirements.txt" $kclvm_install_dir/ cp "$topdir/internal/kclvm_py/scripts/cli/kcl" $kclvm_install_dir/bin/ cp "$topdir/internal/kclvm_py/scripts/cli/kcl-plugin" $kclvm_install_dir/bin/ cp "$topdir/internal/kclvm_py/scripts/cli/kcl-doc" $kclvm_install_dir/bin/ @@ -72,15 +33,15 @@ chmod +x $kclvm_install_dir/bin/kcl-lint chmod +x $kclvm_install_dir/bin/kcl-fmt chmod +x $kclvm_install_dir/bin/kcl-vet -if [ -d $kclvm_install_dir/lib/${py_lib_basename}/kclvm ]; then - rm -rf $kclvm_install_dir/lib/${py_lib_basename}/kclvm +if [ -d $kclvm_install_dir/lib/site-packages/kclvm ]; then + rm -rf $kclvm_install_dir/lib/site-packages/kclvm fi -cp -r $kclvm_source_dir $kclvm_install_dir/lib/${py_lib_basename} -mv $kclvm_install_dir/lib/${py_lib_basename}/kclvm_py $kclvm_install_dir/lib/${py_lib_basename}/kclvm +cp -r $kclvm_source_dir $kclvm_install_dir/lib/site-packages +mv $kclvm_install_dir/lib/site-packages/kclvm_py $kclvm_install_dir/lib/site-packages/kclvm # Get site-packages. -chmod +x $topdir/internal/kclvm_py/scripts/kcllib-install.sh -$topdir/internal/kclvm_py/scripts/kcllib-install.sh +#chmod +x $topdir/internal/kclvm_py/scripts/kcllib-install.sh +#$topdir/internal/kclvm_py/scripts/kcllib-install.sh # Install plugins cp -rf $topdir/plugins $kclvm_install_dir/ diff --git a/internal/kclvm_py/scripts/cli/kcl b/internal/kclvm_py/scripts/cli/kcl index 63cd3eaea..6f921f0c8 100755 --- a/internal/kclvm_py/scripts/cli/kcl +++ b/internal/kclvm_py/scripts/cli/kcl @@ -1,5 +1,32 @@ #!/bin/sh -kclvm_path=$(cd `dirname $0`; pwd)/kclvm -export PATHONPATH='' -$kclvm_path -m kclvm "$@" +# Stop on error. +set -e + +# python3 path +python3_bin=`which python3` +kclvm_install_dir=$(cd `dirname $0`/..; pwd) +pip_install_done_file="$kclvm_install_dir/lib/site-packages/kclvm.requirements.done.txt" + +# check python3 +if [ -z "$python3_bin" ]; then + echo "python3 not found!" + exit 1 +fi + +# once: pip install +if [ ! -f $pip_install_done_file ]; then + # check python3 version + $python3_bin -c "import sys; sys.exit(0) if sys.version_info>=(3,7,3) else (print('please install python 3.7.3+') or sys.exit(1))" + # pip install requirements.txt + install_list=$kclvm_install_dir/requirements.txt + target_dir=$kclvm_install_dir/lib/site-packages + + # kclvm pip install all libs + $python3_bin -m pip install --target=$target_dir -r $install_list + echo 'done' > $pip_install_done_file +fi + +export PYTHONPATH=$kclvm_install_dir/lib/site-packages +export KCLVM_CLI_BIN_PATH=$kclvm_install_dir/bin +$python3_bin -m kclvm "$@" diff --git a/internal/kclvm_py/scripts/cli/kcl-doc b/internal/kclvm_py/scripts/cli/kcl-doc index e49fd8e15..edc643741 100755 --- a/internal/kclvm_py/scripts/cli/kcl-doc +++ b/internal/kclvm_py/scripts/cli/kcl-doc @@ -1,5 +1,32 @@ #!/bin/sh -kclvm_path=$(cd `dirname $0`; pwd)/kclvm -export PATHONPATH='' -$kclvm_path -m kclvm.tools.docs "$@" +# Stop on error. +set -e + +# python3 path +python3_bin=`which python3` +kclvm_install_dir=$(cd `dirname $0`/..; pwd) +pip_install_done_file="$kclvm_install_dir/lib/site-packages/kclvm.requirements.done.txt" + +# check python3 +if [ -z "$python3_bin" ]; then + echo "python3 not found!" + exit 1 +fi + +# once: pip install +if [ ! -f $pip_install_done_file ]; then + # check python3 version + $python3_bin -c "import sys; sys.exit(0) if sys.version_info>=(3,7,3) else (print('please install python 3.7.3+') or sys.exit(1))" + # pip install requirements.txt + install_list=$kclvm_install_dir/requirements.txt + target_dir=$kclvm_install_dir/lib/site-packages + + # kclvm pip install all libs + $python3_bin -m pip install --target=$target_dir -r $install_list + echo 'done' > $pip_install_done_file +fi + +export PYTHONPATH=$kclvm_install_dir/lib/site-packages +export KCLVM_CLI_BIN_PATH=$kclvm_install_dir/bin +$python3_bin -m kclvm.tools.docs "$@" diff --git a/internal/kclvm_py/scripts/cli/kcl-fmt b/internal/kclvm_py/scripts/cli/kcl-fmt index db13541a8..46ce24b06 100755 --- a/internal/kclvm_py/scripts/cli/kcl-fmt +++ b/internal/kclvm_py/scripts/cli/kcl-fmt @@ -1,5 +1,32 @@ #!/bin/sh -kclvm_path=$(cd `dirname $0`; pwd)/kclvm -export PATHONPATH='' -$kclvm_path -m kclvm.tools.format "$@" +# Stop on error. +set -e + +# python3 path +python3_bin=`which python3` +kclvm_install_dir=$(cd `dirname $0`/..; pwd) +pip_install_done_file="$kclvm_install_dir/lib/site-packages/kclvm.requirements.done.txt" + +# check python3 +if [ -z "$python3_bin" ]; then + echo "python3 not found!" + exit 1 +fi + +# once: pip install +if [ ! -f $pip_install_done_file ]; then + # check python3 version + $python3_bin -c "import sys; sys.exit(0) if sys.version_info>=(3,7,3) else (print('please install python 3.7.3+') or sys.exit(1))" + # pip install requirements.txt + install_list=$kclvm_install_dir/requirements.txt + target_dir=$kclvm_install_dir/lib/site-packages + + # kclvm pip install all libs + $python3_bin -m pip install --target=$target_dir -r $install_list + echo 'done' > $pip_install_done_file +fi + +export PYTHONPATH=$kclvm_install_dir/lib/site-packages +export KCLVM_CLI_BIN_PATH=$kclvm_install_dir/bin +$python3_bin -m kclvm.tools.format "$@" diff --git a/internal/kclvm_py/scripts/cli/kcl-lint b/internal/kclvm_py/scripts/cli/kcl-lint index cdde2eb1f..3660646ef 100755 --- a/internal/kclvm_py/scripts/cli/kcl-lint +++ b/internal/kclvm_py/scripts/cli/kcl-lint @@ -1,5 +1,33 @@ #!/bin/sh -kclvm_path=$(cd `dirname $0`; pwd)/kclvm -export PATHONPATH='' -$kclvm_path -m kclvm.tools.lint.lint "$@" +# Stop on error. +set -e + +# python3 path +python3_bin=`which python3` +kclvm_install_dir=$(cd `dirname $0`/..; pwd) +pip_install_done_file="$kclvm_install_dir/lib/site-packages/kclvm.requirements.done.txt" + +# check python3 +if [ -z "$python3_bin" ]; then + echo "python3 not found!" + exit 1 +fi + +# once: pip install +if [ ! -f $pip_install_done_file ]; then + # check python3 version + $python3_bin -c "import sys; sys.exit(0) if sys.version_info>=(3,7,3) else (print('please install python 3.7.3+') or sys.exit(1))" + # pip install requirements.txt + install_list=$kclvm_install_dir/requirements.txt + target_dir=$kclvm_install_dir/lib/site-packages + + # kclvm pip install all libs + $python3_bin -m pip install --target=$target_dir -r $install_list + echo 'done' > $pip_install_done_file +fi + +export PYTHONPATH=$kclvm_install_dir/lib/site-packages +export KCLVM_CLI_BIN_PATH=$kclvm_install_dir/bin +$python3_bin -m kclvm.tools.lint "$@" + diff --git a/internal/kclvm_py/scripts/cli/kcl-plugin b/internal/kclvm_py/scripts/cli/kcl-plugin index a6b35c267..b033fb044 100755 --- a/internal/kclvm_py/scripts/cli/kcl-plugin +++ b/internal/kclvm_py/scripts/cli/kcl-plugin @@ -1,5 +1,33 @@ #!/bin/sh -kclvm_path=$(cd `dirname $0`; pwd)/kclvm -export PATHONPATH='' -$kclvm_path -m kclvm.tools.plugin "$@" +# Stop on error. +set -e + +# python3 path +python3_bin=`which python3` +kclvm_install_dir=$(cd `dirname $0`/..; pwd) +pip_install_done_file="$kclvm_install_dir/lib/site-packages/kclvm.requirements.done.txt" + +# check python3 +if [ -z "$python3_bin" ]; then + echo "python3 not found!" + exit 1 +fi + +# once: pip install +if [ ! -f $pip_install_done_file ]; then + # check python3 version + $python3_bin -c "import sys; sys.exit(0) if sys.version_info>=(3,7,3) else (print('please install python 3.7.3+') or sys.exit(1))" + # pip install requirements.txt + install_list=$kclvm_install_dir/requirements.txt + target_dir=$kclvm_install_dir/lib/site-packages + + # kclvm pip install all libs + $python3_bin -m pip install --target=$target_dir -r $install_list + echo 'done' > $pip_install_done_file +fi + +export PYTHONPATH=$kclvm_install_dir/lib/site-packages +export KCLVM_CLI_BIN_PATH=$kclvm_install_dir/bin +$python3_bin -m kclvm.tools.plugin "$@" + diff --git a/internal/kclvm_py/scripts/cli/kcl-test b/internal/kclvm_py/scripts/cli/kcl-test index 05327dbff..775a91846 100755 --- a/internal/kclvm_py/scripts/cli/kcl-test +++ b/internal/kclvm_py/scripts/cli/kcl-test @@ -5,5 +5,5 @@ if [[ ! -f $kcl_go_path ]]; then echo "kcl-go not found, please check the installation" exit 1 fi -export PATHONPATH='' +export PYTHONPATH='' $kcl_go_path test "$@" diff --git a/internal/kclvm_py/scripts/cli/kcl-vet b/internal/kclvm_py/scripts/cli/kcl-vet index 723a923f5..43e4bfe22 100755 --- a/internal/kclvm_py/scripts/cli/kcl-vet +++ b/internal/kclvm_py/scripts/cli/kcl-vet @@ -1,5 +1,32 @@ #!/bin/sh -kclvm_path=$(cd `dirname $0`; pwd)/kclvm -export PATHONPATH='' -$kclvm_path -m kclvm.tools.validation "$@" +# Stop on error. +set -e + +# python3 path +python3_bin=`which python3` +kclvm_install_dir=$(cd `dirname $0`/..; pwd) +pip_install_done_file="$kclvm_install_dir/lib/site-packages/kclvm.requirements.done.txt" + +# check python3 +if [ -z "$python3_bin" ]; then + echo "python3 not found!" + exit 1 +fi + +# once: pip install +if [ ! -f $pip_install_done_file ]; then + # check python3 version + $python3_bin -c "import sys; sys.exit(0) if sys.version_info>=(3,7,3) else (print('please install python 3.7.3+') or sys.exit(1))" + # pip install requirements.txt + install_list=$kclvm_install_dir/requirements.txt + target_dir=$kclvm_install_dir/lib/site-packages + + # kclvm pip install all libs + $python3_bin -m pip install --target=$target_dir -r $install_list + echo 'done' > $pip_install_done_file +fi + +export PYTHONPATH=$kclvm_install_dir/lib/site-packages +export KCLVM_CLI_BIN_PATH=$kclvm_install_dir/bin +$python3_bin -m kclvm.tools.validation "$@" diff --git a/internal/kclvm_py/scripts/kcllib-install.sh b/internal/kclvm_py/scripts/kcllib-install.sh index 1b5e74ad5..c1f590633 100755 --- a/internal/kclvm_py/scripts/kcllib-install.sh +++ b/internal/kclvm_py/scripts/kcllib-install.sh @@ -1,7 +1,31 @@ -# kclvm path -kclvm=$topdir/_build/dist/$os/kclvm/bin/kclvm +# Stop on error. +set -e + +# python3 path +python3_bin=`which python3` +kclvm_install_dir="$topdir/_build/dist/$os/kclvm" +pip_install_done_file="$kclvm_install_dir/lib/site-packages/kclvm.requirements.done.txt" + +# check python3 +if [ -z "$python3_bin" ]; then + echo "python3 not found!" + exit 1 +fi + +# once: pip install +if [ -f $pip_install_done_file ]; then + exit 0 +fi + +# check python3 version +$python3_bin -c "import sys; sys.exit(0) if sys.version_info>=(3,7,3) else (print('please install python 3.7+') or sys.exit(1))" + +# pip install requirements.txt install_list=$topdir/internal/kclvm_py/scripts/requirements.txt +target_dir=$kclvm_install_dir/lib/site-packages # kclvm pip install all libs -$kclvm -m pip install -r $install_list +$python3_bin -m pip install --target=$target_dir -r $install_list +echo 'done' > $pip_install_done_file + diff --git a/internal/kclvm_py/scripts/release.sh b/internal/kclvm_py/scripts/release.sh index 2ce7b4e0e..ed601fd4c 100755 --- a/internal/kclvm_py/scripts/release.sh +++ b/internal/kclvm_py/scripts/release.sh @@ -4,13 +4,16 @@ kclvm_release_file="kclvm-$os-latest.tar.gz" kclvm_release_path="$topdir/_build" kclvm_package_dir="$topdir/_build/dist/$os" kclvm_install_dir="kclvm" +pip_install_done_file="$kclvm_install_dir/lib/site-packages/kclvm.requirements.done.txt" rm $kclvm_release_file -cd $kclvm_package_dir -if [[ x"$os" == "xDarwin" ]]; then - xattr -rc $kclvm_install_dir +# rm site-packages +if [ -d "$kclvm_install_dir/lib/site-packages" ]; then + rm -rf $kclvm_install_dir/lib/site-packages fi + +cd $kclvm_package_dir tar -czvf $kclvm_release_file $kclvm_install_dir mv $kclvm_package_dir/$kclvm_release_file $kclvm_release_path/$kclvm_release_file diff --git a/internal/kclvm_py/scripts/requirements.txt b/internal/kclvm_py/scripts/requirements.txt index 7327571c3..dd469e0e7 100644 --- a/internal/kclvm_py/scripts/requirements.txt +++ b/internal/kclvm_py/scripts/requirements.txt @@ -1,14 +1,10 @@ -wheel==0.34.2 pyyaml==5.4 pytest-xdist==2.2.1 lark-parser==0.11.3 filelock==3.6.0 yapf==0.29.0 -pytest==6.2.2 pypeg2==2.15.2 protobuf==3.19.5 -gevent==20.9 -grequests schema coverage ruamel.yaml @@ -21,3 +17,4 @@ gunicorn==20.1.0 parsy==1.3.0 wasmer==1.0.0 wasmer_compiler_cranelift==1.0.0 +pyopenssl==21.0.0 diff --git a/internal/kclvm_py/scripts/test_grammar.sh b/internal/kclvm_py/scripts/test_grammar.sh index 83db86b3e..5780853a6 100755 --- a/internal/kclvm_py/scripts/test_grammar.sh +++ b/internal/kclvm_py/scripts/test_grammar.sh @@ -17,4 +17,6 @@ export PATH=$PATH:$topdir/_build/dist/$os/kclvm/bin # Grammar test cd $kclvm_source_dir/test/grammar -kclvm -m pytest -v -n 10 +python3 -m pip install --upgrade pip +python3 -m pip install -r $topdir/internal/kclvm_py/scripts/requirements.txt +python3 -m pytest -v -n 10 diff --git a/internal/kclvm_py/scripts/update-kclvm.sh b/internal/kclvm_py/scripts/update-kclvm.sh index bb5f870a3..7b3a4db9c 100755 --- a/internal/kclvm_py/scripts/update-kclvm.sh +++ b/internal/kclvm_py/scripts/update-kclvm.sh @@ -4,11 +4,10 @@ set -e prepare_dirs () { - cpython_build_dir="$topdir/_build/dist/$os/cpython" - kclvm_packages_dir="$topdir/_build/packages" kclvm_install_dir="$topdir/_build/dist/$os/kclvm" - mkdir -p "$kclvm_install_dir" - mkdir -p "$kclvm_packages_dir" + mkdir -p "$kclvm_install_dir/bin" + mkdir -p "$kclvm_install_dir/lib/site-packages" + mkdir -p "$kclvm_install_dir/include" } prepare_dirs @@ -18,6 +17,7 @@ kclvm_source_dir="$topdir/internal" set -x # Copy KCLVM. +cp "$topdir/internal/kclvm_py/scripts/requirements.txt" $kclvm_install_dir/ cp "$topdir/internal/kclvm_py/scripts/cli/kcl" $kclvm_install_dir/bin/ cp "$topdir/internal/kclvm_py/scripts/cli/kcl-plugin" $kclvm_install_dir/bin/ cp "$topdir/internal/kclvm_py/scripts/cli/kcl-doc" $kclvm_install_dir/bin/ @@ -33,15 +33,11 @@ chmod +x $kclvm_install_dir/bin/kcl-lint chmod +x $kclvm_install_dir/bin/kcl-fmt chmod +x $kclvm_install_dir/bin/kcl-vet -kclvm_lib_dir=$kclvm_install_dir/lib/python3.7/ -if [ -d $kclvm_install_dir/lib/python3.9/ ]; then - kclvm_lib_dir=$kclvm_install_dir/lib/python3.9/ +if [ -d $kclvm_install_dir/lib/site-packages/kclvm ]; then + rm -rf $kclvm_install_dir/lib/site-packages/kclvm fi - -if [ -d $kclvm_lib_dir/kclvm ]; then - rm -rf $kclvm_lib_dir/kclvm -fi -cp -r $kclvm_source_dir/kclvm_py $kclvm_lib_dir/kclvm +cp -r $kclvm_source_dir/kclvm_py $kclvm_install_dir/lib/site-packages +mv $kclvm_install_dir/lib/site-packages/kclvm_py $kclvm_install_dir/lib/site-packages/kclvm set +x @@ -56,6 +52,8 @@ cp ./target/release/kclvm_cli $kclvm_install_dir/bin/kclvm_cli # libkclvm_cli +# TODO: move to kclvm/build.rs + # Darwin dylib if [ -e $topdir/kclvm/target/release/libkclvm_cli_cdylib.dylib ]; then touch $kclvm_install_dir/bin/libkclvm_cli_cdylib.dylib @@ -96,63 +94,32 @@ cargo build --release cp $topdir/kclvm/target/release/libkclvm.a $kclvm_install_dir/lib/libkclvm_native.a # Darwin dylib -if [ -e $topdir/kclvm/target/release/libkclvm.dylib ]; then +if [ -e target/release/libkclvm.dylib ]; then touch $kclvm_install_dir/lib/libkclvm.dylib rm $kclvm_install_dir/lib/libkclvm.dylib - cp $topdir/kclvm/target/release/libkclvm.dylib $kclvm_install_dir/lib/ - cp $topdir/kclvm/target/release/libkclvm.dylib $kclvm_install_dir/lib/libkclvm_native_shared.dylib + cp target/release/libkclvm.dylib $kclvm_install_dir/lib/ + cp target/release/libkclvm.dylib $kclvm_install_dir/lib/libkclvm_native_shared.dylib fi # Linux so -if [ -e $topdir/kclvm/target/release/libkclvm.so ]; then +if [ -e target/release/libkclvm.so ]; then touch $kclvm_install_dir/lib/libkclvm.so rm $kclvm_install_dir/lib/libkclvm.so - cp $topdir/kclvm/target/release/libkclvm.so $kclvm_install_dir/lib/ - cp $topdir/kclvm/target/release/libkclvm.so $kclvm_install_dir/lib/libkclvm_native_shared.so + cp target/release/libkclvm.so $kclvm_install_dir/lib/ + cp target/release/libkclvm.so $kclvm_install_dir/lib/libkclvm_native_shared.so fi # Windows dll -if [ -e $topdir/kclvm/target/release/libkclvm.dll ]; then +if [ -e target/release/libkclvm.dll ]; then touch $kclvm_install_dir/lib/libkclvm.dll rm $kclvm_install_dir/lib/libkclvm.dll - cp $topdir/kclvm/target/release/libkclvm.dll $kclvm_install_dir/lib/ - cp $topdir/kclvm/target/release/libkclvm.dll $kclvm_install_dir/lib/libkclvm_native_shared.dll -fi - - -# WASM -rustup target add wasm32-unknown-unknown -cargo build --release --target wasm32-unknown-unknown -cp $topdir/kclvm/target/wasm32-unknown-unknown/release/libkclvm.a $kclvm_install_dir/lib/libkclvm_wasm32.a -cp src/_kclvm_undefined_wasm.txt $kclvm_install_dir/lib/_kclvm_undefined_wasm.txt - -cd $topdir/kclvm/capi -## Native -cargo build --release - -# Darwin dylib -if [ -e $topdir/kclvm/target/release/libkclvm_capi.dylib ]; then - touch $kclvm_install_dir/lib/libkclvm_capi.dylib - rm $kclvm_install_dir/lib/libkclvm_capi.dylib - cp $topdir/kclvm/target/release/libkclvm_capi.dylib $kclvm_install_dir/lib/ - cp $topdir/kclvm/target/release/libkclvm_capi.dylib $kclvm_install_dir/lib/libkclvm_capi.dylib -fi -# Linux so -if [ -e $topdir/kclvm/target/release/libkclvm_capi.so ]; then - touch $kclvm_install_dir/lib/libkclvm_capi.so - rm $kclvm_install_dir/lib/libkclvm_capi.so - cp $topdir/kclvm/target/release/libkclvm_capi.so $kclvm_install_dir/lib/ - cp $topdir/kclvm/target/release/libkclvm_capi.so $kclvm_install_dir/lib/libkclvm_capi.so -fi -# Windows dll -if [ -e $topdir/kclvm/target/release/libkclvm_capi.dll ]; then - touch $kclvm_install_dir/lib/libkclvm_capi.dll - rm $kclvm_install_dir/lib/libkclvm_capi.dll - cp $topdir/kclvm/target/release/libkclvm_capi.dll $kclvm_install_dir/lib/ - cp $topdir/kclvm/target/release/libkclvm_capi.dll $kclvm_install_dir/lib/libkclvm_capi.dll + cp target/release/libkclvm.dll $kclvm_install_dir/lib/ + cp target/release/libkclvm.dll $kclvm_install_dir/lib/libkclvm_native_shared.dll fi +# TODO: WASM +# cargo build --release --target wasm32-unknown-unknown +# cp $topdir/kclvm/target/wasm32-unknown-unknown/release/libkclvm.a $kclvm_install_dir/lib/libkclvm_wasm32.a +# cp src/_kclvm_undefined_wasm.txt $kclvm_install_dir/lib/_kclvm_undefined_wasm.txt -# Copy LLVM runtime and header -cd $topdir/kclvm/runtime cp src/_kclvm.bc $kclvm_install_dir/include/_kclvm.bc cp src/_kclvm.h $kclvm_install_dir/include/_kclvm.h @@ -161,7 +128,7 @@ cd $kclvm_install_dir/include # build kclvm_plugin python module cd $topdir/kclvm/plugin -kclvm setup.py install_lib +python3 setup.py install_lib --install-dir=$kclvm_install_dir/lib/site-packages # Print the summary. echo "================ Summary ================" diff --git a/kclvm/runner/src/command.rs b/kclvm/runner/src/command.rs index 64315c7be..d357fcc26 100644 --- a/kclvm/runner/src/command.rs +++ b/kclvm/runner/src/command.rs @@ -115,9 +115,9 @@ impl Command { /// Get the kclvm executable root. fn get_executable_root() -> String { let kclvm_exe = if Self::is_windows() { - "kclvm.exe" + "kclvm_cli.exe" } else { - "kclvm" + "kclvm_cli" }; let p = if let Some(x) = Self::find_it(kclvm_exe) { x diff --git a/kclvm/version/src/lib.rs b/kclvm/version/src/lib.rs index e9c4e326a..cb5e87336 100644 --- a/kclvm/version/src/lib.rs +++ b/kclvm/version/src/lib.rs @@ -1,7 +1,7 @@ // Copyright 2021 The KCL Authors. All rights reserved. pub const VERSION: &str = "0.4.4"; -pub const CHECK_SUM: &str = "9e3303edaba484df6004620bf7b28b98"; +pub const CHECK_SUM: &str = "c5339e572207211e46477825e8aca903"; pub fn get_full_version() -> String { format!("{}-{}", VERSION, CHECK_SUM) diff --git a/scripts/build-windows/requirements.release.txt b/scripts/build-windows/requirements.release.txt index 1214f4544..dd469e0e7 100644 --- a/scripts/build-windows/requirements.release.txt +++ b/scripts/build-windows/requirements.release.txt @@ -1,13 +1,10 @@ -wheel==0.34.2 pyyaml==5.4 pytest-xdist==2.2.1 lark-parser==0.11.3 filelock==3.6.0 yapf==0.29.0 -pytest==6.2.2 pypeg2==2.15.2 protobuf==3.19.5 -grequests schema coverage ruamel.yaml @@ -20,3 +17,4 @@ gunicorn==20.1.0 parsy==1.3.0 wasmer==1.0.0 wasmer_compiler_cranelift==1.0.0 +pyopenssl==21.0.0