2
0
Эх сурвалжийг харах

Support Ninja as the generator (#203)

Lei Zhang 8 жил өмнө
parent
commit
47706a1bcc

+ 6 - 6
cmake/modules/FindD3D12.cmake

@@ -30,7 +30,7 @@ find_path(DXGI_INCLUDE_DIR    # Set variable DXGI_INCLUDE_DIR
           HINTS
           )
 
-if (CMAKE_GENERATOR MATCHES "Visual Studio.*Win64" )
+if ("${DXC_BUILD_ARCH}" STREQUAL "x64" )
   find_library(D3D12_LIBRARY NAMES d3d12.lib
                HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/x64 )
 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" )
   find_library(D3D12_LIBRARY NAMES d3d12.lib
                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
                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
                HINTS ${WIN10_SDK_PATH}/Lib/${WIN10_SDK_VERSION}/um/x64 )
 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" )
   find_library(DXGI_LIBRARY NAMES dxgi.lib
                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
                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_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
           )
 
-if (CMAKE_GENERATOR MATCHES "Visual Studio.*Win64" )
+if ("${DXC_BUILD_ARCH}" STREQUAL "x64" )
   find_library(TAEF_COMMON_LIBRARY NAMES Te.Common.lib
                HINTS ${TAEF_INCLUDE_DIR}/../Library/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
                HINTS ${TAEF_INCLUDE_DIR}/../Library/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
                HINTS ${TAEF_INCLUDE_DIR}/../Library/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
                HINTS ${TAEF_INCLUDE_DIR}/../Library/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_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%
 )
 
+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_STATIC_ANALYZER: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% -DCLANG_CL:BOOL=OFF
 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 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 flavor and architecture.
 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   -s   creates the projects only, without building
 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   -arm targets an ARM build
 echo.
+echo Generator:
+echo   -ninja   use Ninja as the generator
+echo.
 echo AppVeyor Support
 echo   -Release builds release
 echo   -Debug builds debug