Download third_party/ktx-src/scripts/build_linux.sh from kimjunhan/vkgs-sim: direct link, hf CLI and curl.
- Browser
- Download file 5.47 kB
-
https://huggingface.co/kimjunhan/vkgs-sim/resolve/main/third_party/ktx-src/scripts/build_linux.sh
- Command line
-
hf download hf://kimjunhan/vkgs-sim/third_party/ktx-src/scripts/build_linux.sh
-
curl -L -o build_linux.sh https://huggingface.co/kimjunhan/vkgs-sim/resolve/main/third_party/ktx-src/scripts/build_linux.sh
5.47 kB
| # Copyright 2015-2020 The Khronos Group Inc. | |
| # SPDX-License-Identifier: Apache-2.0 | |
| # Build on Linux. | |
| ###################################################################### | |
| # Nota Bene | |
| # | |
| # Contains untested cross-compilation support that was under | |
| # development when Travis-CI made arm64 Ubuntu runners available | |
| # rendering it unneeded. Kept here to preserve the learning and in | |
| # case it becomes useful. | |
| ###################################################################### | |
| # Exit if any command fails. | |
| set -e | |
| # cd repo root so script will work whereever the current directory | |
| path_to_repo_root=.. | |
| cd -- "$(dirname -- "${BASH_SOURCE[0]}")/$path_to_repo_root" | |
| # Set parameters from command-line arguments, if any. | |
| for i in $@; do | |
| eval $i | |
| done | |
| # Set some defaults | |
| ARCH=${ARCH:-$(uname -m)} | |
| CMAKE_GEN=${CMAKE_GEN:-Ninja Multi-Config} | |
| CONFIGURATION=${CONFIGURATION:-Release} | |
| FEATURE_DOC=${FEATURE_DOC:-OFF} | |
| FEATURE_JNI=${FEATURE_JNI:-OFF} | |
| if [ "$ARCH" = "x86_64" ]; then | |
| FEATURE_LOADTESTS=${FEATURE_LOADTESTS:-OpenGL+Vulkan} | |
| else | |
| # No Vulkan SDK yet for Linux/arm64. | |
| FEATURE_LOADTESTS=${FEATURE_LOADTESTS:-OpenGL} | |
| fi | |
| FEATURE_PY=${FEATURE_PY:-OFF} | |
| FEATURE_TESTS=${FEATURE_TESTS:-ON} | |
| FEATURE_TOOLS=${FEATURE_TOOLS:-ON} | |
| FEATURE_TOOLS_CTS=${FEATURE_TOOLS_CTS:-ON} | |
| FEATURE_GL_UPLOAD=${FEATURE_GL_UPLOAD:-ON} | |
| FEATURE_VK_UPLOAD=${FEATURE_VK_UPLOAD:-ON} | |
| PACKAGE=${PACKAGE:-NO} | |
| SUPPORT_SSE=${SUPPORT_SSE:-ON} | |
| SUPPORT_OPENCL=${SUPPORT_OPENCL:-OFF} | |
| PY_USE_VENV=${PY_USE_VENV:-OFF} | |
| WERROR=${WERROR:-OFF} | |
| if [[ "$ARCH" = "aarch64" && "$FEATURE_LOADTESTS" =~ "Vulkan" ]]; then | |
| if [[ "$FEATURE_LOADTESTS" = "Vulkan" ]]; then | |
| FEATURE_LOADTESTS=OFF | |
| else | |
| FEATURE_LOADTESTS=OpenGL | |
| fi | |
| echo "$0: Forcing FEATURE_LOADTESTS to \"$FEATURE_LOADTESTS\" as no Vulkan SDK yet for Linux/arm64." | |
| fi | |
| if [ ! "$CMAKE_GEN" = "Ninja Multi-Config" ]; then | |
| # Single configuration generator. | |
| if [[ "$CONFIGURATION" =~ "," ]]; then | |
| echo "$0: Multiple build configurations specified with single-configuration CMake generator." | |
| exit 1 | |
| fi | |
| fi | |
| cmake_args=("-G" "$CMAKE_GEN") | |
| if [[ -z $BUILD_DIR ]]; then | |
| BUILD_DIR=build/linux | |
| if [ "$ARCH" != $(uname -m) ]; then | |
| BUILD_DIR+="-$ARCH-" | |
| fi | |
| if [ ! "$CMAKE_GEN" = "Ninja Multi-Config" ]; then | |
| # Single configuration generator. That only a single configuration | |
| # is specified has already been verified. | |
| BUILD_DIR+="-$CONFIGURATION" | |
| CMAKE_BUILD_TYPE=$CONFIGURATION | |
| fi | |
| fi | |
| cmake_args+=("-B" $BUILD_DIR) | |
| # Just setting the environment variable does not seem to work so pass to cmake. | |
| if [[ -n "$VCPKG_INSTALL_OPTIONS" ]]; then | |
| cmake_args+=("-D" "VCPKG_INSTALL_OPTIONS=$VCPKG_INSTALL_OPTIONS") | |
| fi | |
| if [[ "$FEATURE_LOADTESTS" != "OFF" && -n "$VCPKG_ROOT" ]]; then | |
| cmake_args+=( | |
| "-D" "CMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake" | |
| ) | |
| fi | |
| if [ -n "$CMAKE_BUILD_TYPE" ]; then | |
| cmake_args+=("-D" "CMAKE_BUILD_TYPE=$CMAKE_BUILD_TYPE") | |
| fi | |
| mkdir -p $BUILD_DIR | |
| cmake_args+=(\ | |
| "-D" "KTX_FEATURE_DOC=$FEATURE_DOC" \ | |
| "-D" "KTX_FEATURE_JNI=$FEATURE_JNI" \ | |
| "-D" "KTX_FEATURE_LOADTEST_APPS=$FEATURE_LOADTESTS" \ | |
| "-D" "KTX_FEATURE_PY=$FEATURE_PY" \ | |
| "-D" "KTX_FEATURE_TESTS=$FEATURE_TESTS" \ | |
| "-D" "KTX_FEATURE_TOOLS=$FEATURE_TOOLS" \ | |
| "-D" "KTX_FEATURE_TOOLS_CTS=$FEATURE_TOOLS_CTS" \ | |
| "-D" "KTX_FEATURE_GL_UPLOAD=$FEATURE_GL_UPLOAD" \ | |
| "-D" "KTX_FEATURE_VK_UPLOAD=$FEATURE_VK_UPLOAD" \ | |
| "-D" "BASISU_SUPPORT_OPENCL=$SUPPORT_OPENCL" \ | |
| "-D" "BASISU_SUPPORT_SSE=$SUPPORT_SSE" \ | |
| "-D" "KTX_PY_USE_VENV=$PY_USE_VENV" \ | |
| "-D" "KTX_WERROR=$WERROR" | |
| ) | |
| if [ "$ARCH" != $(uname -m) ]; then | |
| cmake_args+=("--toolchain", "cmake/linux-$ARCH-toolchain.cmake") | |
| fi | |
| config_display="Configure KTX-Software (Linux on $ARCH): " | |
| for arg in "${cmake_args[@]}"; do | |
| case $arg in | |
| "-A") config_display+="Arch=" ;; | |
| "-G") config_display+="Generator=" ;; | |
| "-B") config_display+="Build Dir=" ;; | |
| "-D") ;; | |
| "--toolchain") config_display+="Toolchain File=" ;; | |
| *) config_display+="$arg, " ;; | |
| esac | |
| done | |
| echo ${config_display%??} | |
| cmake . "${cmake_args[@]}" | |
| pushd $BUILD_DIR | |
| oldifs=$IFS | |
| #; is necessary because `for` is a Special Builtin. | |
| IFS=, ; for config in $CONFIGURATION | |
| do | |
| IFS=$oldifs # Because of ; IFS set above will still be present. | |
| # Build and test | |
| echo "Build KTX-Software (Linux $ARCH $config)" | |
| cmake --build . --config $config | |
| if [ "$ARCH" = "$(uname -m)" ]; then | |
| echo "Test KTX-Software (Linux $ARCH $config)" | |
| ctest --output-on-failure -C $config #--verbose | |
| fi | |
| if [ "$config" = "Release" -a "$PACKAGE" = "YES" ]; then | |
| echo "Pack KTX-Software (Linux $ARCH $config)" | |
| if ! cpack -C $config -G DEB; then | |
| # The DEB generator does not seem to write any log files. | |
| #cat _CPack_Packages/Linux/DEB/DEBOutput.log | |
| exit 1 | |
| fi | |
| if ! cpack -C $config -G RPM; then | |
| echo "RPM generator .err file" | |
| cat _CPack_Packages/Linux/RPM/rpmbuildktx-software.err | |
| echo "RPM generator .out file" | |
| cat _CPack_Packages/Linux/RPM/rpmbuildktx-software.out | |
| exit 1 | |
| fi | |
| if ! cpack -C $config -G TBZ2; then | |
| # The TBZ2 generator does not seem to write any log files. | |
| # cat _CPack_Packages/Linux/TBZ2/TBZ2Output.log | |
| exit 1 | |
| fi | |
| fi | |
| done | |
| #echo "***** toktx version.h *****" | |
| #cat tools/toktx/version.h | |
| #echo "****** toktx version ******" | |
| #build/linux-release/tools/toktx/toktx --version | |
| #echo "***************************" | |
| popd | |
| # vim:ai:ts=4:sts=2:sw=2:expandtab | |