[mlir] Fix INSTALL_INTERFACE path for MLIRSparseTensorEnums
authorMichał Górny <mgorny@gentoo.org>
Mon, 24 Oct 2022 11:08:00 +0000 (13:08 +0200)
committerMichał Górny <mgorny@gentoo.org>
Mon, 24 Oct 2022 18:27:40 +0000 (20:27 +0200)
Fix INSTALL_INTERFACE path for exported MLIRSparseTensorEnums target
to include the include directory.  Otherwise, CMake attempts to find it
relatively to CMAKE_INSTALL_PREFIX rather than the include directory,
resulting in flang failing to configure with the following error:

    CMake Error at /usr/lib/llvm/16/lib64/cmake/llvm/AddLLVM.cmake:581 (add_library):
      Cannot find source file:

        /usr/lib/llvm/16/mlir/Dialect/SparseTensor/IR/Enums.h

      Tried extensions .c .C .c++ .cc .cpp .cxx .cu .mpp .m .M .mm .ixx .cppm .h
      .hh .h++ .hm .hpp .hxx .in .txx .f .F .for .f77 .f90 .f95 .f03 .hip .ispc
    Call Stack (most recent call first):
      cmake/modules/AddFlang.cmake:64 (llvm_add_library)
      lib/Lower/CMakeLists.txt:3 (add_flang_library)

Differential Revision: https://reviews.llvm.org/D136590

mlir/lib/Dialect/SparseTensor/IR/CMakeLists.txt

index fb1bc6e..32538b8 100644 (file)
@@ -30,7 +30,7 @@ add_library(MLIRSparseTensorEnums INTERFACE)
 foreach(hdr ${MLIRSparseTensorEnums_hdrs})
   target_sources(MLIRSparseTensorEnums INTERFACE
     $<BUILD_INTERFACE:${MLIR_MAIN_INCLUDE_DIR}/${hdr}>
-    $<INSTALL_INTERFACE:${hdr}>)
+    $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}/${hdr}>)
 endforeach()
 # The `add_mlir_library_install` is required for other libraries to
 # depend on this one, but the conditional itself and the phony target