@echo off REM Update source for vulkan-headers REM REM Copyright 2016 The Android Open Source Project REM Copyright (C) 2015 Valve Corporation REM REM Licensed under the Apache License, Version 2.0 (the "License"); REM you may not use this file except in compliance with the License. REM You may obtain a copy of the License at REM REM http://www.apache.org/licenses/LICENSE-2.0 REM REM Unless required by applicable law or agreed to in writing, software REM distributed under the License is distributed on an "AS IS" BASIS, REM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. REM See the License for the specific language governing permissions and REM limitations under the License. REM setlocal EnableDelayedExpansion set errorCode=0 set ANDROID_BUILD_DIR=%~dp0 set BUILD_DIR=%ANDROID_BUILD_DIR% set BASE_DIR=%BUILD_DIR%\third_party set VULKAN_HEADERS_DIR=%BASE_DIR%\Vulkan-Headers for %%X in (where.exe) do (set FOUND=%%~$PATH:X) if not defined FOUND ( echo Dependency check failed: echo where.exe not found echo This script requires Windows Vista or later, which includes where.exe. set errorCode=1 ) where /q git.exe if %ERRORLEVEL% equ 1 ( echo Dependency check failed: echo git.exe not found echo Git for Windows can be downloaded here: https://git-scm.com/download/win echo Install and ensure git.exe makes it into your PATH set errorCode=1 ) where /q ndk-build.cmd if %ERRORLEVEL% equ 1 ( echo Dependency check failed: echo ndk-build.cmd not found echo Android NDK can be downloaded here: http://developer.android.com/ndk/guides/setup.html echo Install and ensure ndk-build.cmd makes it into your PATH set errorCode=1 ) REM ensure where is working with below false test REM where /q foo REM if %ERRORLEVEL% equ 1 ( REM echo foo REM ) :main if %errorCode% neq 0 (goto:error) REM Read the target versions from external file, which is shared with Linux script if not exist %ANDROID_BUILD_DIR%\vulkan-headers_revision_android ( echo. echo Missing vulkan-headers_revision_android file. Place it in %ANDROID_BUILD_DIR% set errorCode=1 goto:error ) set /p VULKAN_HEADERS_REVISION= < vulkan-headers_revision_android echo VULKAN_HEADERS_REVISION=%VULKAN_HEADERS_REVISION% echo Creating vulkan-headers in %BASE_DIR% set sync-vulkan-headers=1 if %sync-vulkan-headers% equ 1 ( if %ERRORLEVEL% neq 0 (goto:error) if not exist %VULKAN_HEADERS_DIR% ( call:create_vulkan-headers ) if %errorCode% neq 0 (goto:error) call:update_vulkan-headers if %errorCode% neq 0 (goto:error) ) echo. echo Exiting goto:finish :error echo. echo Halting due to error goto:finish :finish if not "%cd%\" == "%BUILD_DIR%" ( cd %BUILD_DIR% ) endlocal REM This needs a fix to return error, something like exit %errorCode% REM Right now it is returning 0 goto:eof REM // ======== Functions ======== // :create_vulkan-headers echo. echo Creating local vulkan-headers repository %VULKAN_HEADERS_DIR% if not exist "%VULKAN_HEADERS_DIR%\" mkdir %VULKAN_HEADERS_DIR% cd %VULKAN_HEADERS_DIR% git clone https://github.com/KhronosGroup/Vulkan-Headers.git . git checkout %VULKAN_HEADERS_REVISION% if not exist %VULKAN_HEADERS_DIR%\registry ( echo vulkan-headers source download failed! set errorCode=1 ) goto:eof :update_vulkan-headers echo. echo Updating %VULKAN_HEADERS_DIR% cd %VULKAN_HEADERS_DIR% git fetch --all git checkout %VULKAN_HEADERS_REVISION% if not exist %VULKAN_HEADERS_DIR%\registry ( echo vulkan-headers source update failed! set errorCode=1 ) goto:eof