diff options
| author | Jeff Juliano <jjuliano@nvidia.com> | 2017-08-26 08:20:51 -0400 |
|---|---|---|
| committer | Mark Lobodzinski <mark@lunarg.com> | 2017-08-28 14:34:47 -0600 |
| commit | 1fef337c968e153c157577ca5f99bf3f83841249 (patch) | |
| tree | da963ee59360d86d06de8fc557885c01e9a2c887 | |
| parent | 5b2d4f8a90cf84beaa25025a14b5475431820802 (diff) | |
| download | usermoji-1fef337c968e153c157577ca5f99bf3f83841249.tar.xz | |
build: Improve cygwin build support
Partially support cygwin environment by adding --no-build to
update_external_sources.sh
Change-Id: I9fa35d6c720dd05a11c307d3da4d09415934899e
| -rw-r--r-- | BUILD.md | 11 | ||||
| -rw-r--r-- | update_external_sources.bat | 2 | ||||
| -rwxr-xr-x | update_external_sources.sh | 98 |
3 files changed, 73 insertions, 38 deletions
@@ -194,7 +194,7 @@ Windows 7+ with additional required software packages: - Need python3.3 or later to get the Windows py.exe launcher that is used to get python3 rather than python2 if both are installed on Windows - 32 bit python works - [Git](http://git-scm.com/download/win). - - Note: If you use Cygwin, you can normally use Cygwin's "git.exe". However, in order to use the "update\_external\_sources.bat" script, you must have this version. + - Note: If you use Cygwin, you can normally use Cygwin's "git.exe", and "update\_external\_sources.sh --no-build" does support Cygwin's git. However, in order to use the "update\_external\_sources.bat" script, you must have this version. - Tell the installer to allow it to be used for "Developer Prompt" as well as "Git Bash". - Tell the installer to treat line endings "as is" (i.e. both DOS and Unix-style line endings). - Install each a 32-bit and a 64-bit version, as the 64-bit installer does not install the 32-bit libraries and tools. @@ -225,6 +225,15 @@ This is described in a `LoaderAndLayerInterface` document in the `loader` folder This specification describes both how ICDs and layers should be properly packaged, and how developers can point to ICDs and layers within their builds. +### Cygwin + +If you are using Cygwin git instead of win32-native git, you can use Cygwin's git to sync external sources: +``` +./update_external_sources.sh --no-build +``` + +Unfortunately, "update\_external\_sources.bat" does not have a --no-sync option. To build the external sources you have to modify "update\_external\_sources.bat" to skip the sync portions of the script. + ## Android Build Install the required tools for Linux and Windows covered above, then add the following. ### Android Studio diff --git a/update_external_sources.bat b/update_external_sources.bat index b6a99113..c0b41a2b 100644 --- a/update_external_sources.bat +++ b/update_external_sources.bat @@ -105,7 +105,7 @@ REM // ======== Dependency checking ======== // if not defined FOUND ( echo Dependency check failed: echo cmake.exe not found - echo Get CNake 2.8 for Windows here: http://www.cmake.org/cmake/resources/software.html + echo Get CMake for Windows here: http://www.cmake.org/cmake/resources/software.html echo Install and ensure each makes it into your PATH, default is "C:\Program Files (x86)\CMake\bin" set errorCode=1 ) diff --git a/update_external_sources.sh b/update_external_sources.sh index 78f21f97..30be3d3a 100755 --- a/update_external_sources.sh +++ b/update_external_sources.sh @@ -3,13 +3,14 @@ set -e -if [[ $(uname) == "Linux" ]]; then +if [[ $(uname) == "Linux" || $(uname) =~ "CYGWIN" ]]; then CURRENT_DIR="$(dirname "$(readlink -f ${BASH_SOURCE[0]})")" CORE_COUNT=$(nproc || echo 4) elif [[ $(uname) == "Darwin" ]]; then CURRENT_DIR="$(dirname "$(python -c 'import os,sys;print(os.path.realpath(sys.argv[1]))' ${BASH_SOURCE[0]})")" CORE_COUNT=$(sysctl -n hw.ncpu || echo 4) fi +echo CURRENT_DIR=$CURRENT_DIR echo CORE_COUNT=$CORE_COUNT REVISION_DIR="$CURRENT_DIR/external_revisions" @@ -95,57 +96,82 @@ function build_spirv-tools () { make -j $CORE_COUNT } -# If any options are provided, just compile those tools -# If no options are provided, build everything +# If any options are provided, just sync and compile those tools +# If no options are provided, sync and build everything INCLUDE_GLSLANG=false INCLUDE_SPIRV_TOOLS=false - -if [ "$#" == 0 ]; then +NO_SYNC=false +NO_BUILD=false +USE_IMPLICIT_COMPONENT_LIST=true + +# Parse options +while [[ $# > 0 ]] +do + option="$1" + + case $option in + # options to specify build of glslang components + -g|--glslang) + INCLUDE_GLSLANG=true + USE_IMPLICIT_COMPONENT_LIST=false + echo "Building glslang ($option)" + ;; + # options to specify build of spirv-tools components + -s|--spirv-tools) + INCLUDE_SPIRV_TOOLS=true + USE_IMPLICIT_COMPONENT_LIST=false + echo "Building spirv-tools ($option)" + ;; + # option to specify skipping sync from git + --no-sync) + NO_SYNC=true + echo "Skipping sync ($option)" + ;; + # option to specify skipping build + --no-build) + NO_BUILD=true + echo "Skipping build ($option)" + ;; + *) + echo "Unrecognized option: $option" + echo "Try the following:" + echo " -g | --glslang # enable glslang" + echo " -s | --spirv-tools # enable spirv-tools" + echo " --no-sync # skip sync from git" + echo " --no-build # skip build" + exit 1 + ;; + esac + shift +done + +if [ ${USE_IMPLICIT_COMPONENT_LIST} == "true" ]; then echo "Building glslang, spirv-tools" INCLUDE_GLSLANG=true INCLUDE_SPIRV_TOOLS=true -else - # Parse options - while [[ $# > 0 ]] - do - option="$1" - - case $option in - # options to specify build of glslang components - -g|--glslang) - INCLUDE_GLSLANG=true - echo "Building glslang ($option)" - ;; - # options to specify build of spirv-tools components - -s|--spirv-tools) - INCLUDE_SPIRV_TOOLS=true - echo "Building spirv-tools ($option)" - ;; - *) - echo "Unrecognized option: $option" - echo "Try the following:" - echo " -g | --glslang # enable glslang" - echo " -s | --spirv-tools # enable spirv-tools" - exit 1 - ;; - esac - shift - done fi if [ ${INCLUDE_GLSLANG} == "true" ]; then - if [ ! -d "${BASEDIR}/glslang" -o ! -d "${BASEDIR}/glslang/.git" -o -d "${BASEDIR}/glslang/.svn" ]; then - create_glslang + if [ ${NO_SYNC} == "false" ]; then + if [ ! -d "${BASEDIR}/glslang" -o ! -d "${BASEDIR}/glslang/.git" -o -d "${BASEDIR}/glslang/.svn" ]; then + create_glslang + fi + update_glslang + fi + if [ ${NO_BUILD} == "false" ]; then + build_glslang fi - update_glslang - build_glslang fi if [ ${INCLUDE_SPIRV_TOOLS} == "true" ]; then + if [ ${NO_SYNC} == "false" ]; then if [ ! -d "${BASEDIR}/spirv-tools" -o ! -d "${BASEDIR}/spirv-tools/.git" ]; then create_spirv-tools fi update_spirv-tools + fi + if [ ${NO_BUILD} == "false" ]; then build_spirv-tools + fi fi |
