[PATCH] D134693: [CMake] Add `CLANG_ENABLE_HLSL` CMake option
This revision was automatically updated to reflect the committed changes. Closed by commit rGe432108bf254: [CMake] Add `CLANG_ENABLE_HLSL` CMake option (authored by beanz). Changed prior to commit: https://reviews.llvm.org/D134693?vs=463079=463275#toc Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134693/new/ https://reviews.llvm.org/D134693 Files: clang/CMakeLists.txt clang/cmake/caches/HLSL.cmake clang/lib/Headers/CMakeLists.txt clang/tools/driver/CMakeLists.txt Index: clang/tools/driver/CMakeLists.txt === --- clang/tools/driver/CMakeLists.txt +++ clang/tools/driver/CMakeLists.txt @@ -61,7 +61,11 @@ set(CLANG_LINKS_TO_CREATE clang++ clang-cl clang-cpp) endif() -foreach(link ${CLANG_LINKS_TO_CREATE}) +if (CLANG_ENABLE_HLSL) + set(HLSL_LINK clang-dxc) +endif() + +foreach(link ${CLANG_LINKS_TO_CREATE} ${HLSL_LINK}) add_clang_symlink(${link} clang) endforeach() Index: clang/lib/Headers/CMakeLists.txt === --- clang/lib/Headers/CMakeLists.txt +++ clang/lib/Headers/CMakeLists.txt @@ -62,11 +62,15 @@ __clang_hip_runtime_wrapper.h ) -set(hlsl_files - hlsl.h +set(hlsl_h hlsl.h) +set(hlsl_subdir_files hlsl/hlsl_basic_types.h hlsl/hlsl_intrinsics.h ) +set(hlsl_files + ${hlsl_h} + ${hlsl_subdir_files} + ) set(mips_msa_files msa.h @@ -548,10 +552,20 @@ EXCLUDE_FROM_ALL COMPONENT x86-resource-headers) +if(NOT CLANG_ENABLE_HLSL) + set(EXCLUDE_HLSL EXCLUDE_FROM_ALL) +endif() + install( - FILES ${hlsl_files} + FILES ${hlsl_h} DESTINATION ${header_install_dir} - EXCLUDE_FROM_ALL + ${EXCLUDE_HLSL} + COMPONENT hlsl-resource-headers) + +install( + FILES ${hlsl_subdir_files} + DESTINATION ${header_install_dir}/hlsl + ${EXCLUDE_HLSL} COMPONENT hlsl-resource-headers) install( Index: clang/cmake/caches/HLSL.cmake === --- clang/cmake/caches/HLSL.cmake +++ clang/cmake/caches/HLSL.cmake @@ -9,3 +9,5 @@ # HLSL support is currently limted to clang, eventually it will expand to # clang-tools-extra too. set(LLVM_ENABLE_PROJECTS "clang" CACHE STRING "") + +set(CLANG_ENABLE_HLSL On CACHE BOOL "") Index: clang/CMakeLists.txt === --- clang/CMakeLists.txt +++ clang/CMakeLists.txt @@ -482,6 +482,10 @@ "Generate build targets for the Clang unit tests." ${LLVM_INCLUDE_TESTS}) +option(CLANG_ENABLE_HLSL "Include HLSL build products" Off) +# While HLSL support is experimental this should stay hidden. +mark_as_advanced(CLANG_ENABLE_HLSL) + add_subdirectory(utils/TableGen) # Export CLANG_TABLEGEN_EXE for use by flang docs. Index: clang/tools/driver/CMakeLists.txt === --- clang/tools/driver/CMakeLists.txt +++ clang/tools/driver/CMakeLists.txt @@ -61,7 +61,11 @@ set(CLANG_LINKS_TO_CREATE clang++ clang-cl clang-cpp) endif() -foreach(link ${CLANG_LINKS_TO_CREATE}) +if (CLANG_ENABLE_HLSL) + set(HLSL_LINK clang-dxc) +endif() + +foreach(link ${CLANG_LINKS_TO_CREATE} ${HLSL_LINK}) add_clang_symlink(${link} clang) endforeach() Index: clang/lib/Headers/CMakeLists.txt === --- clang/lib/Headers/CMakeLists.txt +++ clang/lib/Headers/CMakeLists.txt @@ -62,11 +62,15 @@ __clang_hip_runtime_wrapper.h ) -set(hlsl_files - hlsl.h +set(hlsl_h hlsl.h) +set(hlsl_subdir_files hlsl/hlsl_basic_types.h hlsl/hlsl_intrinsics.h ) +set(hlsl_files + ${hlsl_h} + ${hlsl_subdir_files} + ) set(mips_msa_files msa.h @@ -548,10 +552,20 @@ EXCLUDE_FROM_ALL COMPONENT x86-resource-headers) +if(NOT CLANG_ENABLE_HLSL) + set(EXCLUDE_HLSL EXCLUDE_FROM_ALL) +endif() + install( - FILES ${hlsl_files} + FILES ${hlsl_h} DESTINATION ${header_install_dir} - EXCLUDE_FROM_ALL + ${EXCLUDE_HLSL} + COMPONENT hlsl-resource-headers) + +install( + FILES ${hlsl_subdir_files} + DESTINATION ${header_install_dir}/hlsl + ${EXCLUDE_HLSL} COMPONENT hlsl-resource-headers) install( Index: clang/cmake/caches/HLSL.cmake === --- clang/cmake/caches/HLSL.cmake +++ clang/cmake/caches/HLSL.cmake @@ -9,3 +9,5 @@ # HLSL support is currently limted to clang, eventually it will expand to # clang-tools-extra too. set(LLVM_ENABLE_PROJECTS "clang" CACHE STRING "") + +set(CLANG_ENABLE_HLSL On CACHE BOOL "") Index: clang/CMakeLists.txt === --- clang/CMakeLists.txt +++ clang/CMakeLists.txt @@ -482,6 +482,10 @@ "Generate build targets for the Clang unit tests." ${LLVM_INCLUDE_TESTS}) +option(CLANG_ENABLE_HLSL "Include HLSL build products" Off) +# While HLSL support is experimental this should
[PATCH] D134693: [CMake] Add `CLANG_ENABLE_HLSL` CMake option
phosek accepted this revision. phosek added a comment. This revision is now accepted and ready to land. LGTM (there's a typo in your summary in case you use it for the commit message: "proress" instead of "progress"). Repository: rG LLVM Github Monorepo CHANGES SINCE LAST ACTION https://reviews.llvm.org/D134693/new/ https://reviews.llvm.org/D134693 ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits
[PATCH] D134693: [CMake] Add `CLANG_ENABLE_HLSL` CMake option
beanz created this revision. beanz added reviewers: phosek, smeenai, compnerd. Herald added a subscriber: Anastasia. Herald added a project: All. beanz requested review of this revision. Herald added a project: clang. The HLSL support in clang is in proress and not fully functioning. As such we don't want to install the related optional build components by default (yet), but we do need an option to build and install them locally for testing and for some key users. This adds the `CLANG_ENABLE_HLSL` option which is off by default and can be enabled to install the HLSL clang headers and the clang-dxc symlink. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D134693 Files: clang/CMakeLists.txt clang/cmake/caches/HLSL.cmake clang/lib/Headers/CMakeLists.txt clang/tools/driver/CMakeLists.txt Index: clang/tools/driver/CMakeLists.txt === --- clang/tools/driver/CMakeLists.txt +++ clang/tools/driver/CMakeLists.txt @@ -61,7 +61,11 @@ set(CLANG_LINKS_TO_CREATE clang++ clang-cl clang-cpp) endif() -foreach(link ${CLANG_LINKS_TO_CREATE}) +if (CLANG_ENABLE_HLSL) + set(HLSL_LINK clang-dxc) +endif() + +foreach(link ${CLANG_LINKS_TO_CREATE} ${HLSL_LINK}) add_clang_symlink(${link} clang) endforeach() Index: clang/lib/Headers/CMakeLists.txt === --- clang/lib/Headers/CMakeLists.txt +++ clang/lib/Headers/CMakeLists.txt @@ -548,10 +548,14 @@ EXCLUDE_FROM_ALL COMPONENT x86-resource-headers) +if(NOT CLANG_ENABLE_HLSL) + set(EXCLUDE_HLSL EXCLUDE_FROM_ALL) +endif() + install( FILES ${hlsl_files} DESTINATION ${header_install_dir} - EXCLUDE_FROM_ALL + ${EXCLUDE_HLSL} COMPONENT hlsl-resource-headers) install( Index: clang/cmake/caches/HLSL.cmake === --- clang/cmake/caches/HLSL.cmake +++ clang/cmake/caches/HLSL.cmake @@ -9,3 +9,5 @@ # HLSL support is currently limted to clang, eventually it will expand to # clang-tools-extra too. set(LLVM_ENABLE_PROJECTS "clang" CACHE STRING "") + +set(CLANG_ENABLE_HLSL On CACHE BOOL "") Index: clang/CMakeLists.txt === --- clang/CMakeLists.txt +++ clang/CMakeLists.txt @@ -482,6 +482,10 @@ "Generate build targets for the Clang unit tests." ${LLVM_INCLUDE_TESTS}) +option(CLANG_ENABLE_HLSL "Include HLSL build products" Off) +# While HLSL support is experimental this should stay hidden. +mark_as_advanced(CLANG_ENABLE_HLSL) + add_subdirectory(utils/TableGen) # Export CLANG_TABLEGEN_EXE for use by flang docs. Index: clang/tools/driver/CMakeLists.txt === --- clang/tools/driver/CMakeLists.txt +++ clang/tools/driver/CMakeLists.txt @@ -61,7 +61,11 @@ set(CLANG_LINKS_TO_CREATE clang++ clang-cl clang-cpp) endif() -foreach(link ${CLANG_LINKS_TO_CREATE}) +if (CLANG_ENABLE_HLSL) + set(HLSL_LINK clang-dxc) +endif() + +foreach(link ${CLANG_LINKS_TO_CREATE} ${HLSL_LINK}) add_clang_symlink(${link} clang) endforeach() Index: clang/lib/Headers/CMakeLists.txt === --- clang/lib/Headers/CMakeLists.txt +++ clang/lib/Headers/CMakeLists.txt @@ -548,10 +548,14 @@ EXCLUDE_FROM_ALL COMPONENT x86-resource-headers) +if(NOT CLANG_ENABLE_HLSL) + set(EXCLUDE_HLSL EXCLUDE_FROM_ALL) +endif() + install( FILES ${hlsl_files} DESTINATION ${header_install_dir} - EXCLUDE_FROM_ALL + ${EXCLUDE_HLSL} COMPONENT hlsl-resource-headers) install( Index: clang/cmake/caches/HLSL.cmake === --- clang/cmake/caches/HLSL.cmake +++ clang/cmake/caches/HLSL.cmake @@ -9,3 +9,5 @@ # HLSL support is currently limted to clang, eventually it will expand to # clang-tools-extra too. set(LLVM_ENABLE_PROJECTS "clang" CACHE STRING "") + +set(CLANG_ENABLE_HLSL On CACHE BOOL "") Index: clang/CMakeLists.txt === --- clang/CMakeLists.txt +++ clang/CMakeLists.txt @@ -482,6 +482,10 @@ "Generate build targets for the Clang unit tests." ${LLVM_INCLUDE_TESTS}) +option(CLANG_ENABLE_HLSL "Include HLSL build products" Off) +# While HLSL support is experimental this should stay hidden. +mark_as_advanced(CLANG_ENABLE_HLSL) + add_subdirectory(utils/TableGen) # Export CLANG_TABLEGEN_EXE for use by flang docs. ___ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits