1*b7893ccfSSadaf Ebrahimi@echo off 2*b7893ccfSSadaf EbrahimiREM Update source for glslang, spirv-tools, and shaderc 3*b7893ccfSSadaf Ebrahimi 4*b7893ccfSSadaf EbrahimiREM 5*b7893ccfSSadaf EbrahimiREM Copyright 2016 The Android Open Source Project 6*b7893ccfSSadaf EbrahimiREM Copyright (C) 2015 Valve Corporation 7*b7893ccfSSadaf EbrahimiREM Copyright 2018 LunarG, Inc. 8*b7893ccfSSadaf EbrahimiREM 9*b7893ccfSSadaf EbrahimiREM Licensed under the Apache License, Version 2.0 (the "License"); 10*b7893ccfSSadaf EbrahimiREM you may not use this file except in compliance with the License. 11*b7893ccfSSadaf EbrahimiREM You may obtain a copy of the License at 12*b7893ccfSSadaf EbrahimiREM 13*b7893ccfSSadaf EbrahimiREM http://www.apache.org/licenses/LICENSE-2.0 14*b7893ccfSSadaf EbrahimiREM 15*b7893ccfSSadaf EbrahimiREM Unless required by applicable law or agreed to in writing, software 16*b7893ccfSSadaf EbrahimiREM distributed under the License is distributed on an "AS IS" BASIS, 17*b7893ccfSSadaf EbrahimiREM WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 18*b7893ccfSSadaf EbrahimiREM See the License for the specific language governing permissions and 19*b7893ccfSSadaf EbrahimiREM limitations under the License. 20*b7893ccfSSadaf EbrahimiREM 21*b7893ccfSSadaf Ebrahimi 22*b7893ccfSSadaf Ebrahimisetlocal EnableDelayedExpansion 23*b7893ccfSSadaf Ebrahimiset errorCode=0 24*b7893ccfSSadaf Ebrahimiset ANDROID_BUILD_DIR=%~dp0 25*b7893ccfSSadaf Ebrahimiset BUILD_DIR=%ANDROID_BUILD_DIR% 26*b7893ccfSSadaf Ebrahimiset BASE_DIR=%BUILD_DIR%\third_party 27*b7893ccfSSadaf Ebrahimiset SHADERC_DIR=%BASE_DIR%\shaderc 28*b7893ccfSSadaf Ebrahimi 29*b7893ccfSSadaf Ebrahimifor %%X in (where.exe) do (set FOUND=%%~$PATH:X) 30*b7893ccfSSadaf Ebrahimiif not defined FOUND ( 31*b7893ccfSSadaf Ebrahimi echo Dependency check failed: 32*b7893ccfSSadaf Ebrahimi echo where.exe not found 33*b7893ccfSSadaf Ebrahimi echo This script requires Windows Vista or later, which includes where.exe. 34*b7893ccfSSadaf Ebrahimi set errorCode=1 35*b7893ccfSSadaf Ebrahimi) 36*b7893ccfSSadaf Ebrahimi 37*b7893ccfSSadaf Ebrahimiwhere /q git.exe 38*b7893ccfSSadaf Ebrahimiif %ERRORLEVEL% equ 1 ( 39*b7893ccfSSadaf Ebrahimi echo Dependency check failed: 40*b7893ccfSSadaf Ebrahimi echo git.exe not found 41*b7893ccfSSadaf Ebrahimi echo Git for Windows can be downloaded here: https://git-scm.com/download/win 42*b7893ccfSSadaf Ebrahimi echo Install and ensure git.exe makes it into your PATH 43*b7893ccfSSadaf Ebrahimi set errorCode=1 44*b7893ccfSSadaf Ebrahimi) 45*b7893ccfSSadaf Ebrahimi 46*b7893ccfSSadaf Ebrahimiwhere /q ndk-build.cmd 47*b7893ccfSSadaf Ebrahimiif %ERRORLEVEL% equ 1 ( 48*b7893ccfSSadaf Ebrahimi echo Dependency check failed: 49*b7893ccfSSadaf Ebrahimi echo ndk-build.cmd not found 50*b7893ccfSSadaf Ebrahimi echo Android NDK can be downloaded here: http://developer.android.com/ndk/guides/setup.html 51*b7893ccfSSadaf Ebrahimi echo Install and ensure ndk-build.cmd makes it into your PATH 52*b7893ccfSSadaf Ebrahimi set errorCode=1 53*b7893ccfSSadaf Ebrahimi) 54*b7893ccfSSadaf Ebrahimi 55*b7893ccfSSadaf Ebrahimi:main 56*b7893ccfSSadaf Ebrahimi 57*b7893ccfSSadaf Ebrahimiif %errorCode% neq 0 (goto:error) 58*b7893ccfSSadaf Ebrahimi 59*b7893ccfSSadaf Ebrahimiecho Creating and/or updating glslang, spirv-tools, spirv-headers, shaderc, vulkan-headers, vulkan-tools in %BASE_DIR% 60*b7893ccfSSadaf Ebrahimi 61*b7893ccfSSadaf Ebrahimiset build-shaderc=1 62*b7893ccfSSadaf Ebrahimi 63*b7893ccfSSadaf EbrahimiREM Pull down or update external dependencies 64*b7893ccfSSadaf Ebrahimiecho Update external dependencies based on the %ANDROID_BUILD_DIR%/known_good.json file 65*b7893ccfSSadaf Ebrahimipy -3 ../scripts/update_deps.py --no-build --dir %BASE_DIR% --known_good_dir %BUILD_DIR% 66*b7893ccfSSadaf Ebrahimi 67*b7893ccfSSadaf Ebrahimi 68*b7893ccfSSadaf Ebrahimiif %build-shaderc% equ 1 ( 69*b7893ccfSSadaf Ebrahimi call:build_shaderc 70*b7893ccfSSadaf Ebrahimi if %errorCode% neq 0 (goto:error) 71*b7893ccfSSadaf Ebrahimi) 72*b7893ccfSSadaf Ebrahimi 73*b7893ccfSSadaf Ebrahimiecho. 74*b7893ccfSSadaf Ebrahimiecho Exiting 75*b7893ccfSSadaf Ebrahimigoto:finish 76*b7893ccfSSadaf Ebrahimi 77*b7893ccfSSadaf Ebrahimi:error 78*b7893ccfSSadaf Ebrahimiecho. 79*b7893ccfSSadaf Ebrahimiecho Halting due to error 80*b7893ccfSSadaf Ebrahimigoto:finish 81*b7893ccfSSadaf Ebrahimi 82*b7893ccfSSadaf Ebrahimi:finish 83*b7893ccfSSadaf Ebrahimiif not "%cd%\" == "%BUILD_DIR%" ( cd %BUILD_DIR% ) 84*b7893ccfSSadaf Ebrahimiendlocal 85*b7893ccfSSadaf EbrahimiREM This needs a fix to return error, something like exit %errorCode% 86*b7893ccfSSadaf EbrahimiREM Right now it is returning 0 87*b7893ccfSSadaf Ebrahimigoto:eof 88*b7893ccfSSadaf Ebrahimi 89*b7893ccfSSadaf Ebrahimi 90*b7893ccfSSadaf Ebrahimi 91*b7893ccfSSadaf EbrahimiREM // ======== Functions ======== // 92*b7893ccfSSadaf Ebrahimi 93*b7893ccfSSadaf Ebrahimi:build_shaderc 94*b7893ccfSSadaf Ebrahimi echo. 95*b7893ccfSSadaf Ebrahimi echo Building %SHADERC_DIR% 96*b7893ccfSSadaf Ebrahimi cd %SHADERC_DIR%\android_test 97*b7893ccfSSadaf Ebrahimi echo Building shaderc with Android NDK 98*b7893ccfSSadaf Ebrahimi call ndk-build NDK_APPLICATION_MK=../../../jni/shaderc/Application.mk THIRD_PARTY_PATH=../third_party -j 4 99*b7893ccfSSadaf Ebrahimi REM Check for existence of one lib, even though we should check for all results 100*b7893ccfSSadaf Ebrahimi if not exist %SHADERC_DIR%\android_test\obj\local\x86\libshaderc.a ( 101*b7893ccfSSadaf Ebrahimi echo. 102*b7893ccfSSadaf Ebrahimi echo shaderc build failed! 103*b7893ccfSSadaf Ebrahimi set errorCode=1 104*b7893ccfSSadaf Ebrahimi ) 105*b7893ccfSSadaf Ebrahimigoto:eof 106