diff --git a/dev/builddeps-veloxbe.sh b/dev/builddeps-veloxbe.sh index 4192a37b6f25..0a07a568e769 100755 --- a/dev/builddeps-veloxbe.sh +++ b/dev/builddeps-veloxbe.sh @@ -173,8 +173,6 @@ if [ "$ENABLE_VCPKG" = "ON" ]; then # vcpkg will install static depends and init build environment BUILD_OPTIONS="--build_tests=$BUILD_TESTS --enable_s3=$ENABLE_S3 --enable_gcs=$ENABLE_GCS \ --enable_hdfs=$ENABLE_HDFS --enable_abfs=$ENABLE_ABFS" -# envs="$("$GLUTEN_DIR/dev/vcpkg/init.sh" ${BUILD_OPTIONS})" -# eval "$envs" source ./dev/vcpkg/env.sh ${BUILD_OPTIONS} fi diff --git a/dev/vcpkg/env.sh b/dev/vcpkg/env.sh index e1b9a612bddd..91aaa6a7d267 100755 --- a/dev/vcpkg/env.sh +++ b/dev/vcpkg/env.sh @@ -1,8 +1,6 @@ #! /bin/bash set -e -exec 3>&1 >&2 - if [ -z "${BASH_SOURCE[0]}" ] || [ "$0" == "${BASH_SOURCE[0]}" ]; then echo "env.sh should only be sourced in bash" >&2 exit 1 @@ -10,9 +8,7 @@ fi SCRIPT_ROOT="$(realpath "$(dirname "${BASH_SOURCE[0]}")")" init_vcpkg_env=$("${SCRIPT_ROOT}/init.sh" $@) -#init_vcpkg_env="${SCRIPT_ROOT}/init.sh $@" eval "$init_vcpkg_env" -#source ${SCRIPT_ROOT}/init.sh $@ export VCPKG_ROOT="$SCRIPT_ROOT/.vcpkg" export VCPKG="$SCRIPT_ROOT/.vcpkg/vcpkg" @@ -20,7 +16,6 @@ export VCPKG_TRIPLET=x64-linux-avx export VCPKG_TRIPLET_INSTALL_DIR=${SCRIPT_ROOT}/vcpkg_installed/${VCPKG_TRIPLET} export EXPORT_TOOLS_PATH="${VCPKG_TRIPLET_INSTALL_DIR}/tools/protobuf" -#cat <&3 if [ "\${GLUTEN_VCPKG_ENABLED:-}" != "${VCPKG_ROOT}" ]; then export VCPKG_ROOT=${VCPKG_ROOT} export VCPKG_MANIFEST_DIR=${SCRIPT_ROOT} @@ -34,4 +29,3 @@ if [ "\${GLUTEN_VCPKG_ENABLED:-}" != "${VCPKG_ROOT}" ]; then else echo "Gluten's vcpkg environment is enabled" >&2 fi -#EOF diff --git a/dev/vcpkg/init.sh b/dev/vcpkg/init.sh index d9ee47266015..9beaa19526fe 100755 --- a/dev/vcpkg/init.sh +++ b/dev/vcpkg/init.sh @@ -71,14 +71,12 @@ if [ "$ENABLE_ABFS" = "ON" ]; then EXTRA_FEATURES+="--x-feature=velox-abfs" fi -echo "%%%%%% execute vcpkg install" $VCPKG install --no-print-usage \ --triplet="${VCPKG_TRIPLET}" --host-triplet="${VCPKG_TRIPLET}" ${EXTRA_FEATURES} -echo "%%%%%% after vcpkg install" + export VCPKG_TRIPLET_INSTALL_DIR=${SCRIPT_ROOT}/vcpkg_installed/${VCPKG_TRIPLET} -EXPORT_TOOLS_PATH= -EXPORT_TOOLS_PATH="${VCPKG_TRIPLET_INSTALL_DIR}/tools/protobuf:${EXPORT_TOOLS_PATH}" +EXPORT_TOOLS_PATH="${VCPKG_TRIPLET_INSTALL_DIR}/tools/protobuf" # This scripts depends on environment $CMAKE_TOOLCHAIN_FILE, which requires # cmake >= 3.21. If system cmake < 3.25, vcpkg will download latest cmake. We @@ -99,5 +97,6 @@ cp $VCPKG_TRIPLET_INSTALL_DIR/lib/libssl.a $VCPKG_TRIPLET_INSTALL_DIR/debug/lib cp $VCPKG_TRIPLET_INSTALL_DIR/lib/libcrypto.a $VCPKG_TRIPLET_INSTALL_DIR/debug/lib cp $VCPKG_TRIPLET_INSTALL_DIR/lib/liblzma.a $VCPKG_TRIPLET_INSTALL_DIR/debug/lib cp $VCPKG_TRIPLET_INSTALL_DIR/lib/libdwarf.a $VCPKG_TRIPLET_INSTALL_DIR/debug/lib +# Allow libhdfs3.a is not installed as build option may not enable hdfs. cp $VCPKG_TRIPLET_INSTALL_DIR/lib/libhdfs3.a $VCPKG_TRIPLET_INSTALL_DIR/debug/lib || true diff --git a/dev/vcpkg/toolchain.cmake b/dev/vcpkg/toolchain.cmake index bc8bd8d2178b..21ff9090fb9e 100644 --- a/dev/vcpkg/toolchain.cmake +++ b/dev/vcpkg/toolchain.cmake @@ -1,5 +1,14 @@ +# This file will be used by cmake before cmake function `project(xxx)` +# is executed, even though it's an external cmake project. + set(ENABLE_GLUTEN_VCPKG ON) + +# If this arg is set, `vcpkg install` will be executed according +# to the manifest file exists in this given path, i.e., vcpkg.json, +# which will not respect our setting for extra features through +# `--x-feature`. #set(VCPKG_MANIFEST_DIR $ENV{VCPKG_MANIFEST_DIR}) + set(VCPKG_TARGET_TRIPLET $ENV{VCPKG_TRIPLET}) set(VCPKG_HOST_TRIPLET $ENV{VCPKG_TRIPLET}) set(VCPKG_INSTALLED_DIR $ENV{VCPKG_MANIFEST_DIR}/vcpkg_installed) @@ -15,4 +24,3 @@ set(CMAKE_SHARED_LINKER_FLAGS "-static-libstdc++ -static-libgcc") # Disable boost new version warning for FindBoost module set(Boost_NO_WARN_NEW_VERSIONS ON) -