https://github.com/shader-slang/slang
Revision a2d4d447639a1860f9de4ba9e2435f1d40ff3669 authored by jsmall-nvidia on 12 December 2019, 21:14:27 UTC, committed by GitHub on 12 December 2019, 21:14:27 UTC
* CPPCompiler -> DownstreamCompiler

* Added DownstreamCompileResult to start abstraction such that we don't need files.

* * Split out slang-blob.cpp
* Made CompileResult hold a DownstreamCompileResult - for access to binary or ISlangSharedLibrary

* Keep temporary files in scope.

* Add a hash to the hex dump stream.

* Move all file tracking into DownstreamCompiler.

* WIP support for nvrtc.

* WIP: Adding support for nvrtc compiler.
Adding enum types, wiring up the nvrtc into slang.

* Fix remaining CPPCompiler references.

* Fix order issue on target string matching.

* Use ISlangSharedLibrary for nvrtc.

* Use DownstreamCompiler for nvrtc.

* WIP first pass at compilation win nvrtc.

* Added testing if file is on file system into CommandLineDownstreamCompiler.
Added sourceContentsPath.

* Make test cuda-compile.cu work by just compiling not comparing output.

* Genearlize DownstreamCompiler usage.

* Fix warning on clang.

* Remove CompilerType from DownstreamCompiler.

* Use DownstreamCompiler interface for all compilers.

NOTE for FXC, DXC and GLSLANG this doesn't mean using 'compile' - it's still extracting functions from shared library.

* Replace DownstreamCompiler::SourceType -> SlangSourceLanguage

* Replace _canCompile with something data driven.

* Fix compiling on gcc/clang for DownstreamCompiler.

* Moved some text conversions into DownstreamCompiler.

* Fix problem on non-vc builds with not having return on locateCompilers for VS.

* Change so no warning for code not reachable on locateCompilers for vs.
1 parent 1533554
Raw File
Tip revision: a2d4d447639a1860f9de4ba9e2435f1d40ff3669 authored by jsmall-nvidia on 12 December 2019, 21:14:27 UTC
Feature/source downstream compiler (#1153)
Tip revision: a2d4d44
appveyor.yml
# Our solution file is currently set up for VS2015
image: Visual Studio 2015

init:
  # Construct a version number suitable for using as a release name
  - ps: >-
      if ($env:APPVEYOR_REPO_TAG -eq "true")
      {
        $env:SLANG_VERSION = "$($env:APPVEYOR_REPO_TAG_NAME.TrimStart("v"))"
      }
      else
      {
        $env:SLANG_VERSION = "dev-$($env:APPVEYOR_REPO_COMMIT.Substring(0, 7))"
      }
      
# The project uses a submodule for the "glslang" dependency,
# so we need to make sure to pull that before building.
install:
  - git submodule update --init --recursive
  - ps: git describe --tags | %{$_ -replace "^", "#define SLANG_TAG_VERSION """ -replace "$", """"} > slang-tag-version.h 

# We want to build the full matrix of platforms and configurations
# that we support on Windows.
#
# Put Release|x64 first since that is the target which runs the most tests.
platform:
  - x64
  - Win32

configuration:
  - Release
  - Debug

# In the interests of time, go ahead and immediately fail a build
# if any job fails, rather than keep on building to discover the
# full set of failures.
matrix:
  fast_finish: true

# MSBUILD should ideally be able to find our solution file
# automatically, but it seems to get confused, so we specify
# the file name to use here.
build:
  project: slang.sln
  parallel: true
  verbosity: minimal

# Testing

# We only run tests on the Release build for now, just to speed
# up the build process.
#
# TODO: We should really define different levels of tests, and
# at least run some "smoke" tests across all builds.

test_script:
  - ps: |
      if ($env:CONFIGURATION -eq "Debug")
      {
        $testCategory = "smoke"
      }
      elseif($env:PLATFORM -eq "x64")
      {
        $testCategory = "full"
      }
      else
      {
        $testCategory = "quick"
      }
      .\test.bat -platform %PLATFORM% -configuration %CONFIGURATION% -appveyor -category $testCategory

# Package up the stuff we want to deploy into a single .zip file

after_build:
  - ps: |
      if ($env:PLATFORM -eq "x64")
      {
        $env:SLANG_DEPLOY_PLATFORM = "win64"
      }
      else
      {
        $env:SLANG_DEPLOY_PLATFORM = "win32"
      }
      $env:SLANG_BINARY_ARCHIVE = "slang-$($env:SLANG_VERSION)-$($env:SLANG_DEPLOY_PLATFORM).zip"

      7z a "$env:SLANG_BINARY_ARCHIVE" slang.h
      7z a "$env:SLANG_BINARY_ARCHIVE" slang-com-helper.h
      7z a "$env:SLANG_BINARY_ARCHIVE" slang-com-ptr.h
      7z a "$env:SLANG_BINARY_ARCHIVE" slang-tag-version.h
      7z a "$env:SLANG_BINARY_ARCHIVE" prelude\*.h
      7z a "$env:SLANG_BINARY_ARCHIVE" bin\*\*\slang.dll
      7z a "$env:SLANG_BINARY_ARCHIVE" bin\*\*\slang.lib
      7z a "$env:SLANG_BINARY_ARCHIVE" bin\*\*\slang-glslang.dll
      7z a "$env:SLANG_BINARY_ARCHIVE" bin\*\*\slangc.exe
      7z a "$env:SLANG_BINARY_ARCHIVE" docs\*.md

      $env:SLANG_SOURCE_ARCHIVE = "slang-$($env:SLANG_VERSION)-source.zip"
      
      7z a "$env:SLANG_SOURCE_ARCHIVE" slang.h
      7z a "$env:SLANG_SOURCE_ARCHIVE" slang-com-helper.h
      7z a "$env:SLANG_SOURCE_ARCHIVE" slang-com-ptr.h
      7z a "$env:SLANG_SOURCE_ARCHIVE" slang-tag-version.h
      7z a "$env:SLANG_SOURCE_ARCHIVE" prelude\*.h
      7z a "$env:SLANG_SOURCE_ARCHIVE" source\*\*.h
      7z a "$env:SLANG_SOURCE_ARCHIVE" source\*\*.cpp
      7z a "$env:SLANG_SOURCE_ARCHIVE" docs\*.md
      7z a "$env:SLANG_SOURCE_ARCHIVE" README.md
      7z a "$env:SLANG_SOURCE_ARCHIVE" LICENSE

# Register the created .zip file as an artifact with AppVeyor

artifacts:
  - path: $(SLANG_BINARY_ARCHIVE)
    name: binary_archive
  - path: $(SLANG_SOURCE_ARCHIVE)
    name: source_archive

# On a successful build of a tag, push archices to GitHub releases

deploy:
  release: v$(SLANG_VERSION)
  description: 'Slang $(SLANG_VERSION)'
  provider: GitHub
  auth_token:
    secure: +FukP7TA9F+fofZRZnu2FSqPcrQ1u4r8r4pl+/83owiY6M1R4ykg+8RcSzXi2f63
  artifact: 'binary_archive,source_archive'
  draft: false
  prerelease: false
  force_update: true # TODO: consider if we can avoid this
  on:
    configuration: Release
    appveyor_repo_tag: true        # deploy on tag push only
back to top