소스 검색

Support Ninja as the generator (#203)

Lei Zhang 8 년 전
부모
커밋
47706a1bcc
3개의 변경된 파일19개의 추가작업 그리고 10개의 파일을 삭제
  1. 6 6
      cmake/modules/FindD3D12.cmake
  2. 3 3
      cmake/modules/FindTAEF.cmake
  3. 10 1
      utils/hct/hctbuild.cmd

+ 6 - 6
cmake/modules/FindD3D12.cmake

@@ -30,7 +30,7 @@ find_path(DXGI_INCLUDE_DIR    # Set variable DXGI_INCLUDE_DIR
           HINTS
           HINTS
           )
           )
 
 
-if (CMAKE_GENERATOR MATCHES "Visual Studio.*Win64" )
+if ("${DXC_BUILD_ARCH}" STREQUAL "x64" )
   find_library(D3D12_LIBRARY NAMES d3d12.lib
   find_library(D3D12_LIBRARY NAMES d3d12.lib
                HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/x64 )
                HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/x64 )
 elseif (CMAKE_GENERATOR MATCHES "Visual Studio.*ARM" )
 elseif (CMAKE_GENERATOR MATCHES "Visual Studio.*ARM" )
@@ -39,12 +39,12 @@ elseif (CMAKE_GENERATOR MATCHES "Visual Studio.*ARM" )
 elseif (CMAKE_GENERATOR MATCHES "Visual Studio.*ARM64" )
 elseif (CMAKE_GENERATOR MATCHES "Visual Studio.*ARM64" )
   find_library(D3D12_LIBRARY NAMES d3d12.lib
   find_library(D3D12_LIBRARY NAMES d3d12.lib
                HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/arm64 )
                HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/arm64 )
-else (CMAKE_GENERATOR MATCHES "Visual Studio.*Win32" )
+elseif ("${DXC_BUILD_ARCH}" STREQUAL "Win32" )
   find_library(D3D12_LIBRARY NAMES d3d12.lib
   find_library(D3D12_LIBRARY NAMES d3d12.lib
                HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/x86 )
                HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/x86 )
-endif (CMAKE_GENERATOR MATCHES "Visual Studio.*Win64" )
+endif ("${DXC_BUILD_ARCH}" STREQUAL "x64" )
 
 
-if (CMAKE_GENERATOR MATCHES "Visual Studio.*Win64" )
+if ("${DXC_BUILD_ARCH}" STREQUAL "x64" )
   find_library(DXGI_LIBRARY NAMES dxgi.lib
   find_library(DXGI_LIBRARY NAMES dxgi.lib
                HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/x64 )
                HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/x64 )
 elseif (CMAKE_GENERATOR MATCHES "Visual Studio.*ARM" )
 elseif (CMAKE_GENERATOR MATCHES "Visual Studio.*ARM" )
@@ -53,10 +53,10 @@ elseif (CMAKE_GENERATOR MATCHES "Visual Studio.*ARM" )
 elseif (CMAKE_GENERATOR MATCHES "Visual Studio.*ARM64" )
 elseif (CMAKE_GENERATOR MATCHES "Visual Studio.*ARM64" )
   find_library(DXGI_LIBRARY NAMES dxgi.lib
   find_library(DXGI_LIBRARY NAMES dxgi.lib
                HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/arm64 )
                HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/arm64 )
-else (CMAKE_GENERATOR MATCHES "Visual Studio.*Win32" )
+elseif ("${DXC_BUILD_ARCH}" STREQUAL "Win32" )
   find_library(DXGI_LIBRARY NAMES dxgi.lib
   find_library(DXGI_LIBRARY NAMES dxgi.lib
                HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/x86 )
                HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/x86 )
-endif (CMAKE_GENERATOR MATCHES "Visual Studio.*Win64" )
+endif ("${DXC_BUILD_ARCH}" STREQUAL "x64" )
 
 
 set(D3D12_LIBRARIES ${D3D12_LIBRARY} ${DXGI_LIBRARY})
 set(D3D12_LIBRARIES ${D3D12_LIBRARY} ${DXGI_LIBRARY})
 set(D3D12_INCLUDE_DIRS ${D3D12_INCLUDE_DIR} ${DXGI_INCLUDE_DIR})
 set(D3D12_INCLUDE_DIRS ${D3D12_INCLUDE_DIR} ${DXGI_INCLUDE_DIR})

+ 3 - 3
cmake/modules/FindTAEF.cmake

@@ -14,7 +14,7 @@ find_path(TAEF_INCLUDE_DIR      # Set variable TAEF_INCLUDE_DIR
           HINTS
           HINTS
           )
           )
 
 
-if (CMAKE_GENERATOR MATCHES "Visual Studio.*Win64" )
+if ("${DXC_BUILD_ARCH}" STREQUAL "x64" )
   find_library(TAEF_COMMON_LIBRARY NAMES Te.Common.lib
   find_library(TAEF_COMMON_LIBRARY NAMES Te.Common.lib
                HINTS ${TAEF_INCLUDE_DIR}/../Library/x64
                HINTS ${TAEF_INCLUDE_DIR}/../Library/x64
                HINTS ${TAEF_INCLUDE_DIR}/../lib/x64 )
                HINTS ${TAEF_INCLUDE_DIR}/../lib/x64 )
@@ -34,7 +34,7 @@ elseif (CMAKE_GENERATOR MATCHES "Visual Studio.*ARM" )
   find_library(TAEF_WEX_LOGGER_LIBRARY NAMES Wex.Logger.lib
   find_library(TAEF_WEX_LOGGER_LIBRARY NAMES Wex.Logger.lib
                HINTS ${TAEF_INCLUDE_DIR}/../Library/arm
                HINTS ${TAEF_INCLUDE_DIR}/../Library/arm
                HINTS ${TAEF_INCLUDE_DIR}/../lib/arm )
                HINTS ${TAEF_INCLUDE_DIR}/../lib/arm )
-else (CMAKE_GENERATOR MATCHES "Visual Studio.*Win64" )
+elseif ("${DXC_BUILD_ARCH}" STREQUAL "Win32" )
   find_library(TAEF_COMMON_LIBRARY NAMES Te.Common.lib
   find_library(TAEF_COMMON_LIBRARY NAMES Te.Common.lib
                HINTS ${TAEF_INCLUDE_DIR}/../Library/x86
                HINTS ${TAEF_INCLUDE_DIR}/../Library/x86
                HINTS ${TAEF_INCLUDE_DIR}/../lib/x86 )
                HINTS ${TAEF_INCLUDE_DIR}/../lib/x86 )
@@ -44,7 +44,7 @@ else (CMAKE_GENERATOR MATCHES "Visual Studio.*Win64" )
   find_library(TAEF_WEX_LOGGER_LIBRARY NAMES Wex.Logger.lib
   find_library(TAEF_WEX_LOGGER_LIBRARY NAMES Wex.Logger.lib
                HINTS ${TAEF_INCLUDE_DIR}/../Library/x86
                HINTS ${TAEF_INCLUDE_DIR}/../Library/x86
                HINTS ${TAEF_INCLUDE_DIR}/../lib/x86 )
                HINTS ${TAEF_INCLUDE_DIR}/../lib/x86 )
-endif (CMAKE_GENERATOR MATCHES "Visual Studio.*Win64" )
+endif ("${DXC_BUILD_ARCH}" STREQUAL "x64" )
 
 
 set(TAEF_LIBRARIES ${TAEF_COMMON_LIBRARY} ${TAEF_WEX_COMMON_LIBRARY} ${TAEF_WEX_LOGGER_LIBRARY})
 set(TAEF_LIBRARIES ${TAEF_COMMON_LIBRARY} ${TAEF_WEX_COMMON_LIBRARY} ${TAEF_WEX_LOGGER_LIBRARY})
 set(TAEF_INCLUDE_DIRS ${TAEF_INCLUDE_DIR})
 set(TAEF_INCLUDE_DIRS ${TAEF_INCLUDE_DIR})

+ 10 - 1
utils/hct/hctbuild.cmd

@@ -117,6 +117,11 @@ if "%BUILD_ARCH%"=="x64" (
   set BUILD_GENERATOR=%BUILD_GENERATOR% %BUILD_ARCH:x64=Win64%
   set BUILD_GENERATOR=%BUILD_GENERATOR% %BUILD_ARCH:x64=Win64%
 )
 )
 
 
+if "%1"=="-ninja" (
+  set BUILD_GENERATOR=Ninja
+  shift /1
+)
+
 set CMAKE_OPTS=%CMAKE_OPTS% -DCLANG_ENABLE_ARCMT:BOOL=OFF
 set CMAKE_OPTS=%CMAKE_OPTS% -DCLANG_ENABLE_ARCMT:BOOL=OFF
 set CMAKE_OPTS=%CMAKE_OPTS% -DCLANG_ENABLE_STATIC_ANALYZER:BOOL=OFF
 set CMAKE_OPTS=%CMAKE_OPTS% -DCLANG_ENABLE_STATIC_ANALYZER:BOOL=OFF
 set CMAKE_OPTS=%CMAKE_OPTS% -DCLANG_INCLUDE_TESTS:BOOL=OFF -DLLVM_INCLUDE_TESTS:BOOL=OFF
 set CMAKE_OPTS=%CMAKE_OPTS% -DCLANG_INCLUDE_TESTS:BOOL=OFF -DLLVM_INCLUDE_TESTS:BOOL=OFF
@@ -140,6 +145,7 @@ set CMAKE_OPTS=%CMAKE_OPTS% -DCLANG_BUILD_EXAMPLES:BOOL=OFF
 set CMAKE_OPTS=%CMAKE_OPTS% -DLLVM_REQUIRES_RTTI:BOOL=ON
 set CMAKE_OPTS=%CMAKE_OPTS% -DLLVM_REQUIRES_RTTI:BOOL=ON
 set CMAKE_OPTS=%CMAKE_OPTS% -DCLANG_CL:BOOL=OFF
 set CMAKE_OPTS=%CMAKE_OPTS% -DCLANG_CL:BOOL=OFF
 set CMAKE_OPTS=%CMAKE_OPTS% -DCMAKE_SYSTEM_VERSION=10.0.14393.0
 set CMAKE_OPTS=%CMAKE_OPTS% -DCMAKE_SYSTEM_VERSION=10.0.14393.0
+set CMAKE_OPTS=%CMAKE_OPTS% -DDXC_BUILD_ARCH=%BUILD_ARCH%
 
 
 rem This parameter is used with vcvarsall to force use of 64-bit build tools
 rem This parameter is used with vcvarsall to force use of 64-bit build tools
 rem instead of 32-bit tools that run out of memory.
 rem instead of 32-bit tools that run out of memory.
@@ -162,7 +168,7 @@ exit /b 0
 echo Builds HLSL solutions and the product and test binaries for the current
 echo Builds HLSL solutions and the product and test binaries for the current
 echo flavor and architecture.
 echo flavor and architecture.
 echo.
 echo.
-echo hctbuild [-s or -b] [-alldef] [-analyze] [-fv] [-rel] [-arm or -x86 or -x64] [-Release] [-Debug] [-vs2017]
+echo hctbuild [-s or -b] [-alldef] [-analyze] [-fv] [-rel] [-arm or -x86 or -x64] [-Release] [-Debug] [-vs2017] [-ninja]
 echo.
 echo.
 echo   -s   creates the projects only, without building
 echo   -s   creates the projects only, without building
 echo   -b   builds the existing project
 echo   -b   builds the existing project
@@ -178,6 +184,9 @@ echo   -x86 targets an x86 build (aka. Win32)
 echo   -x64 targets an x64 build (aka. Win64)
 echo   -x64 targets an x64 build (aka. Win64)
 echo   -arm targets an ARM build
 echo   -arm targets an ARM build
 echo.
 echo.
+echo Generator:
+echo   -ninja   use Ninja as the generator
+echo.
 echo AppVeyor Support
 echo AppVeyor Support
 echo   -Release builds release
 echo   -Release builds release
 echo   -Debug builds debug
 echo   -Debug builds debug