Explorar o código

Some improvements to cmake files of dxilconv (#2876)

1. Add unittests only when HLSL_INCLUDE_TESTS is on,
2. Rename dxilconv-tests.vcxproj.user.txt to .in, that's configure_file() normally takes,
3. Use target_include_directories instead of directory-based include_directories for simplicity
Minmin Gong %!s(int64=4) %!d(string=hai) anos
pai
achega
c607bb3c03

+ 5 - 11
projects/dxilconv/CMakeLists.txt

@@ -1,14 +1,6 @@
 set(DXILCONV_PROJECT_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
 set(DXILCONV_PROJECT_BINARY_DIR ${CMAKE_CURRENT_BINARY_DIR})
 
-include_directories(
-  ${LLVM_MAIN_INCLUDE_DIR}
-  ${DXC_PROJECTS_SOURCE_DIR}/include
-  ${DXC_PROJECTS_BINARY_DIR}/include
-  ${DXILCONV_PROJECT_SOURCE_DIR}/include
-  ${DXILCONV_PROJECT_BINARY_DIR}/include
-)
-
 macro(add_dxilconv_project_library name)
   add_llvm_library(${name} ${ARGN})
 #  add_definitions(/D_ITERATOR_DEBUG_LEVEL=0)
@@ -28,7 +20,9 @@ endmacro(add_dxilconv_project_test_library)
 
 
 if(WIN32)
- add_subdirectory(lib)
- add_subdirectory(tools)
- add_subdirectory(unittests)
+  add_subdirectory(lib)
+  add_subdirectory(tools)
+  if (HLSL_INCLUDE_TESTS)
+    add_subdirectory(unittests)
+  endif (HLSL_INCLUDE_TESTS)
 endif()

+ 0 - 1
projects/dxilconv/lib/CMakeLists.txt

@@ -1,4 +1,3 @@
 add_subdirectory(DxilConvPasses)
 add_subdirectory(DxbcConverter)
 add_subdirectory(ShaderBinary)
-

+ 14 - 4
projects/dxilconv/lib/DxbcConverter/CMakeLists.txt

@@ -7,8 +7,18 @@ add_dxilconv_project_library(DxbcConverter
   DxbcUtil.cpp
 )
 
-add_dependencies(DxbcConverter intrinsics_gen DxcRuntimeEtw)
+target_link_libraries(DxbcConverter PUBLIC
+  DxilConvPasses
+  ShaderBinary
+)
+
+add_dependencies(DxbcConverter intrinsics_gen DxcRuntimeEtw DxilConvPasses)
 
-include_directories(
-    ${D3D12_INCLUDE_DIRS}
-)
+target_include_directories(DxbcConverter
+PUBLIC
+  $<BUILD_INTERFACE:${DXC_PROJECTS_SOURCE_DIR}/include>
+  $<BUILD_INTERFACE:${DXC_PROJECTS_BINARY_DIR}/include>
+  $<INSTALL_INTERFACE:include>
+PRIVATE
+  ${D3D12_INCLUDE_DIRS}
+)

+ 7 - 0
projects/dxilconv/lib/DxilConvPasses/CMakeLists.txt

@@ -7,3 +7,10 @@ add_dxilconv_project_library(DxilConvPasses
   ScopeNestInfo.cpp
   DxilCleanup.cpp
 )
+
+target_include_directories(DxilConvPasses
+PUBLIC
+  $<BUILD_INTERFACE:${DXILCONV_PROJECT_SOURCE_DIR}/include>
+  $<BUILD_INTERFACE:${DXILCONV_PROJECT_BINARY_DIR}/include>
+  $<INSTALL_INTERFACE:include>
+)

+ 6 - 2
projects/dxilconv/lib/ShaderBinary/CMakeLists.txt

@@ -6,6 +6,10 @@ add_dxilconv_project_library(ShaderBinary
   ShaderBinary.cpp
 )
 
-include_directories(
-    ${D3D12_INCLUDE_DIRS}
+target_include_directories(ShaderBinary
+PUBLIC
+  $<BUILD_INTERFACE:${DXILCONV_PROJECT_SOURCE_DIR}/include>
+  $<INSTALL_INTERFACE:include>
+PRIVATE
+  ${D3D12_INCLUDE_DIRS}
 )

+ 0 - 1
projects/dxilconv/tools/CMakeLists.txt

@@ -1,3 +1,2 @@
 add_subdirectory(dxilconv)
 add_subdirectory(dxbc2dxil)
-

+ 4 - 4
projects/dxilconv/tools/dxbc2dxil/CMakeLists.txt

@@ -6,16 +6,16 @@ add_dxilconv_project_executable(dxbc2dxil
   dxbc2dxil.cpp
 )
 
-target_link_libraries(dxbc2dxil
-  DxilConvPasses
+target_link_libraries(dxbc2dxil PRIVATE
+  DxbcConverter
   LLVMDxcSupport
   LLVMDxilContainer
   LLVMMSSupport
   LLVMSupport
 )
 
-add_dependencies(dxbc2dxil DxilConvPasses)
+add_dependencies(dxbc2dxil DxbcConverter)
 
-include_directories(
+target_include_directories(dxbc2dxil PRIVATE
     ${D3D12_INCLUDE_DIRS}
 )

+ 0 - 2
projects/dxilconv/tools/dxilconv/CMakeLists.txt

@@ -9,7 +9,6 @@ add_dxilconv_project_library(dxilconv SHARED
 
 target_link_libraries(dxilconv PRIVATE
   DxbcConverter
-  DxilConvPasses
   LLVMBitWriter
   LLVMDXIL
   LLVMDxilContainer
@@ -18,7 +17,6 @@ target_link_libraries(dxilconv PRIVATE
   LLVMipo
   LLVMMSSupport
   LLVMScalarOpts
-  ShaderBinary
 )
 
 set_target_properties(dxilconv

+ 4 - 2
projects/dxilconv/unittests/CMakeLists.txt

@@ -18,7 +18,9 @@ target_link_libraries(dxilconv-tests PRIVATE
   shlwapi
 )
 
-include_directories(${TAEF_INCLUDE_DIRS})
+target_include_directories(dxilconv-tests PRIVATE
+  ${TAEF_INCLUDE_DIRS}
+)
 
 add_dependencies(dxilconv-tests dxilconv HLSLTestLib)
 
@@ -28,4 +30,4 @@ install(TARGETS dxilconv-tests
 # Add a .user file with settings for te.exe.
 file(TO_NATIVE_PATH "${CMAKE_CURRENT_SOURCE_DIR}" DOS_STYLE_SOURCE_DIR)
 file(TO_NATIVE_PATH "${TAEF_BIN_DIR}" DOS_TAEF_BIN_DIR)
-configure_file(dxilconv-tests.vcxproj.user.txt dxilconv-tests.vcxproj.user)
+configure_file(dxilconv-tests.vcxproj.user.in dxilconv-tests.vcxproj.user)

+ 0 - 0
projects/dxilconv/unittests/dxilconv-tests.vcxproj.user.txt → projects/dxilconv/unittests/dxilconv-tests.vcxproj.user.in