[llvm] ae044c5 - [CMAKE] Plumb include_directories() into tablegen()
Stephen Neuendorffer via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 3 11:06:34 PDT 2020
Yup, it's already reverted. I'll use something that works in 3.4.3
Steve
On Fri, Apr 3, 2020 at 11:04 AM Craig Topper via llvm-commits <
llvm-commits at lists.llvm.org> wrote:
> I think I'm getting errors that TRANSFORM isn't a valid list sub-command
> with cmake 3.4.3
>
> ~Craig
>
>
> On Fri, Apr 3, 2020 at 10:38 AM Stephen Neuendorffer via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
>>
>> Author: Stephen Neuendorffer
>> Date: 2020-04-03T10:38:25-07:00
>> New Revision: ae044c5b0caa095602b6ef4cca40d57efc26a8f6
>>
>> URL:
>> https://github.com/llvm/llvm-project/commit/ae044c5b0caa095602b6ef4cca40d57efc26a8f6
>> DIFF:
>> https://github.com/llvm/llvm-project/commit/ae044c5b0caa095602b6ef4cca40d57efc26a8f6.diff
>>
>> LOG: [CMAKE] Plumb include_directories() into tablegen()
>>
>> Previously, the tablegen() cmake command, which defines custom
>> commands for running tablegen, included several hardcoded paths. This
>> becomes unwieldy as there are more users for which these paths are
>> insufficient. For most targets, cmake uses include_directories() and
>> the INCLUDE_DIRECTORIES directory property to specify include paths.
>> This change picks up the INCLUDE_DIRECTORIES property and adds it
>> to the include path used when running tablegen. As a side effect, this
>> allows us to remove several hard coded paths to tablegen that are
>> redundant
>> with specified include_directories().
>>
>> I haven't removed the hardcoded path to CMAKE_CURRENT_SOURCE_DIR, which
>> seems generically useful. There are several users in clang which
>> apparently
>> don't have the current directory as an include_directories(). This could
>> be considered separately.
>>
>> Differential Revision: https://reviews.llvm.org/D77156
>>
>> Added:
>>
>>
>> Modified:
>> clang/cmake/modules/AddClang.cmake
>> llvm/cmake/modules/TableGen.cmake
>> mlir/cmake/modules/AddMLIR.cmake
>> mlir/examples/toy/Ch3/CMakeLists.txt
>> mlir/examples/toy/Ch4/CMakeLists.txt
>> mlir/examples/toy/Ch4/include/toy/CMakeLists.txt
>> mlir/examples/toy/Ch5/CMakeLists.txt
>> mlir/examples/toy/Ch5/include/toy/CMakeLists.txt
>> mlir/examples/toy/Ch6/CMakeLists.txt
>> mlir/examples/toy/Ch6/include/toy/CMakeLists.txt
>> mlir/examples/toy/Ch7/CMakeLists.txt
>> mlir/examples/toy/Ch7/include/toy/CMakeLists.txt
>>
>> Removed:
>>
>>
>>
>>
>> ################################################################################
>> diff --git a/clang/cmake/modules/AddClang.cmake
>> b/clang/cmake/modules/AddClang.cmake
>> index 577cc11ab015..c1bb386de6f7 100644
>> --- a/clang/cmake/modules/AddClang.cmake
>> +++ b/clang/cmake/modules/AddClang.cmake
>> @@ -17,7 +17,7 @@ function(clang_tablegen)
>> message(FATAL_ERROR "SOURCE source-file required by clang_tablegen")
>> endif()
>>
>> - set( CLANG_TABLEGEN_ARGUMENTS -I ${CLANG_SOURCE_DIR}/include )
>> + set( CLANG_TABLEGEN_ARGUMENTS "" )
>> set( LLVM_TARGET_DEFINITIONS ${CTG_SOURCE} )
>> tablegen(CLANG ${CTG_UNPARSED_ARGUMENTS} ${CLANG_TABLEGEN_ARGUMENTS})
>>
>>
>> diff --git a/llvm/cmake/modules/TableGen.cmake
>> b/llvm/cmake/modules/TableGen.cmake
>> index 632f69aa3386..8d0c5afabe96 100644
>> --- a/llvm/cmake/modules/TableGen.cmake
>> +++ b/llvm/cmake/modules/TableGen.cmake
>> @@ -2,10 +2,6 @@
>> # Extra parameters for `tblgen' may come after `ofn' parameter.
>> # Adds the name of the generated file to TABLEGEN_OUTPUT.
>>
>> -if(LLVM_MAIN_INCLUDE_DIR)
>> - set(LLVM_TABLEGEN_FLAGS -I ${LLVM_MAIN_INCLUDE_DIR})
>> -endif()
>> -
>> function(tablegen project ofn)
>> # Validate calling context.
>> if(NOT ${project}_TABLEGEN_EXE)
>> @@ -75,6 +71,8 @@ function(tablegen project ofn)
>> set(tblgen_change_flag "--write-if-changed")
>> endif()
>>
>> + get_directory_property(includes "INCLUDE_DIRECTORIES")
>> + list(TRANSFORM includes PREPEND -I)
>> # We need both _TABLEGEN_TARGET and _TABLEGEN_EXE in the DEPENDS list
>> # (both the target and the file) to have .inc files rebuilt on
>> # a tablegen change, as cmake does not propagate file-level
>> dependencies
>> @@ -86,6 +84,7 @@ function(tablegen project ofn)
>> # but lets us having smaller and cleaner code here.
>> add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${ofn}
>> COMMAND ${${project}_TABLEGEN_EXE} ${ARGN} -I
>> ${CMAKE_CURRENT_SOURCE_DIR}
>> + ${includes}
>> ${LLVM_TABLEGEN_FLAGS}
>> ${LLVM_TARGET_DEFINITIONS_ABSOLUTE}
>> ${tblgen_change_flag}
>>
>> diff --git a/mlir/cmake/modules/AddMLIR.cmake
>> b/mlir/cmake/modules/AddMLIR.cmake
>> index 2adb8f2f2935..7449f54ea877 100644
>> --- a/mlir/cmake/modules/AddMLIR.cmake
>> +++ b/mlir/cmake/modules/AddMLIR.cmake
>> @@ -1,5 +1,5 @@
>> function(mlir_tablegen ofn)
>> - tablegen(MLIR ${ARGV} "-I${MLIR_MAIN_SRC_DIR}" "-I${MLIR_INCLUDE_DIR}")
>> + tablegen(MLIR ${ARGV})
>> set(TABLEGEN_OUTPUT ${TABLEGEN_OUTPUT}
>> ${CMAKE_CURRENT_BINARY_DIR}/${ofn}
>> PARENT_SCOPE)
>> endfunction()
>>
>> diff --git a/mlir/examples/toy/Ch3/CMakeLists.txt
>> b/mlir/examples/toy/Ch3/CMakeLists.txt
>> index 4dab5e4d0626..ef70dcbac309 100644
>> --- a/mlir/examples/toy/Ch3/CMakeLists.txt
>> +++ b/mlir/examples/toy/Ch3/CMakeLists.txt
>> @@ -1,3 +1,4 @@
>> +include_directories(include)
>> add_subdirectory(include)
>>
>> set(LLVM_LINK_COMPONENTS
>> @@ -5,7 +6,7 @@ set(LLVM_LINK_COMPONENTS
>> )
>>
>> set(LLVM_TARGET_DEFINITIONS mlir/ToyCombine.td)
>> -mlir_tablegen(ToyCombine.inc -gen-rewriters
>> "-I${CMAKE_CURRENT_SOURCE_DIR}/include")
>> +mlir_tablegen(ToyCombine.inc -gen-rewriters)
>> add_public_tablegen_target(ToyCh3CombineIncGen)
>>
>> add_toy_chapter(toyc-ch3
>> @@ -20,7 +21,6 @@ add_toy_chapter(toyc-ch3
>> ToyCh3CombineIncGen
>> )
>>
>> -include_directories(include/)
>> include_directories(${CMAKE_CURRENT_BINARY_DIR})
>> include_directories(${CMAKE_CURRENT_BINARY_DIR}/include/)
>> target_link_libraries(toyc-ch3
>>
>> diff --git a/mlir/examples/toy/Ch4/CMakeLists.txt
>> b/mlir/examples/toy/Ch4/CMakeLists.txt
>> index 3589b10645a6..ae30a691894e 100644
>> --- a/mlir/examples/toy/Ch4/CMakeLists.txt
>> +++ b/mlir/examples/toy/Ch4/CMakeLists.txt
>> @@ -1,3 +1,4 @@
>> +include_directories(include)
>> add_subdirectory(include)
>>
>> set(LLVM_LINK_COMPONENTS
>> @@ -5,7 +6,7 @@ set(LLVM_LINK_COMPONENTS
>> )
>>
>> set(LLVM_TARGET_DEFINITIONS mlir/ToyCombine.td)
>> -mlir_tablegen(ToyCombine.inc -gen-rewriters
>> "-I${CMAKE_CURRENT_SOURCE_DIR}/include")
>> +mlir_tablegen(ToyCombine.inc -gen-rewriters)
>> add_public_tablegen_target(ToyCh4CombineIncGen)
>>
>> add_toy_chapter(toyc-ch4
>> @@ -22,7 +23,6 @@ add_toy_chapter(toyc-ch4
>> ToyCh4CombineIncGen
>> )
>>
>> -include_directories(include/)
>> include_directories(${CMAKE_CURRENT_BINARY_DIR})
>> include_directories(${CMAKE_CURRENT_BINARY_DIR}/include/)
>> target_link_libraries(toyc-ch4
>>
>> diff --git a/mlir/examples/toy/Ch4/include/toy/CMakeLists.txt
>> b/mlir/examples/toy/Ch4/include/toy/CMakeLists.txt
>> index 798d0df1d8d6..7f60477fc272 100644
>> --- a/mlir/examples/toy/Ch4/include/toy/CMakeLists.txt
>> +++ b/mlir/examples/toy/Ch4/include/toy/CMakeLists.txt
>> @@ -1,6 +1,6 @@
>> set(LLVM_TARGET_DEFINITIONS Ops.td)
>> -mlir_tablegen(Ops.h.inc -gen-op-decls "-I${CMAKE_CURRENT_SOURCE_DIR}/..")
>> -mlir_tablegen(Ops.cpp.inc -gen-op-defs
>> "-I${CMAKE_CURRENT_SOURCE_DIR}/..")
>> +mlir_tablegen(Ops.h.inc -gen-op-decls)
>> +mlir_tablegen(Ops.cpp.inc -gen-op-defs)
>> add_public_tablegen_target(ToyCh4OpsIncGen)
>>
>> set(LLVM_TARGET_DEFINITIONS ShapeInferenceInterface.td)
>>
>> diff --git a/mlir/examples/toy/Ch5/CMakeLists.txt
>> b/mlir/examples/toy/Ch5/CMakeLists.txt
>> index c3627cf11cd7..ba3a88e03c0b 100644
>> --- a/mlir/examples/toy/Ch5/CMakeLists.txt
>> +++ b/mlir/examples/toy/Ch5/CMakeLists.txt
>> @@ -1,3 +1,4 @@
>> +include_directories(include)
>> add_subdirectory(include)
>>
>> set(LLVM_LINK_COMPONENTS
>> @@ -5,7 +6,7 @@ set(LLVM_LINK_COMPONENTS
>> )
>>
>> set(LLVM_TARGET_DEFINITIONS mlir/ToyCombine.td)
>> -mlir_tablegen(ToyCombine.inc -gen-rewriters
>> "-I${CMAKE_CURRENT_SOURCE_DIR}/include")
>> +mlir_tablegen(ToyCombine.inc -gen-rewriters)
>> add_public_tablegen_target(ToyCh5CombineIncGen)
>>
>> add_toy_chapter(toyc-ch5
>> @@ -23,7 +24,6 @@ add_toy_chapter(toyc-ch5
>> ToyCh5CombineIncGen
>> )
>>
>> -include_directories(include/)
>> include_directories(${CMAKE_CURRENT_BINARY_DIR})
>> include_directories(${CMAKE_CURRENT_BINARY_DIR}/include/)
>> get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
>>
>> diff --git a/mlir/examples/toy/Ch5/include/toy/CMakeLists.txt
>> b/mlir/examples/toy/Ch5/include/toy/CMakeLists.txt
>> index aaa932896d0f..e8bd1fc0bc2e 100644
>> --- a/mlir/examples/toy/Ch5/include/toy/CMakeLists.txt
>> +++ b/mlir/examples/toy/Ch5/include/toy/CMakeLists.txt
>> @@ -1,6 +1,6 @@
>> set(LLVM_TARGET_DEFINITIONS Ops.td)
>> -mlir_tablegen(Ops.h.inc -gen-op-decls "-I${CMAKE_CURRENT_SOURCE_DIR}/..")
>> -mlir_tablegen(Ops.cpp.inc -gen-op-defs
>> "-I${CMAKE_CURRENT_SOURCE_DIR}/..")
>> +mlir_tablegen(Ops.h.inc -gen-op-decls)
>> +mlir_tablegen(Ops.cpp.inc -gen-op-defs)
>> add_public_tablegen_target(ToyCh5OpsIncGen)
>>
>> set(LLVM_TARGET_DEFINITIONS ShapeInferenceInterface.td)
>>
>> diff --git a/mlir/examples/toy/Ch6/CMakeLists.txt
>> b/mlir/examples/toy/Ch6/CMakeLists.txt
>> index 5d39a9ab5fc1..be797c6c1e96 100644
>> --- a/mlir/examples/toy/Ch6/CMakeLists.txt
>> +++ b/mlir/examples/toy/Ch6/CMakeLists.txt
>> @@ -1,3 +1,4 @@
>> +include_directories(include)
>> add_subdirectory(include)
>>
>> set(LLVM_LINK_COMPONENTS
>> @@ -6,7 +7,7 @@ set(LLVM_LINK_COMPONENTS
>> )
>>
>> set(LLVM_TARGET_DEFINITIONS mlir/ToyCombine.td)
>> -mlir_tablegen(ToyCombine.inc -gen-rewriters
>> "-I${CMAKE_CURRENT_SOURCE_DIR}/include")
>> +mlir_tablegen(ToyCombine.inc -gen-rewriters)
>> add_public_tablegen_target(ToyCh6CombineIncGen)
>>
>> add_toy_chapter(toyc-ch6
>> @@ -25,7 +26,6 @@ add_toy_chapter(toyc-ch6
>> ToyCh6CombineIncGen
>> )
>>
>> -include_directories(include/)
>> include_directories(${CMAKE_CURRENT_BINARY_DIR})
>> include_directories(${CMAKE_CURRENT_BINARY_DIR}/include/)
>> get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
>>
>> diff --git a/mlir/examples/toy/Ch6/include/toy/CMakeLists.txt
>> b/mlir/examples/toy/Ch6/include/toy/CMakeLists.txt
>> index aecf11fab6c9..c6adf5a15a73 100644
>> --- a/mlir/examples/toy/Ch6/include/toy/CMakeLists.txt
>> +++ b/mlir/examples/toy/Ch6/include/toy/CMakeLists.txt
>> @@ -1,6 +1,6 @@
>> set(LLVM_TARGET_DEFINITIONS Ops.td)
>> -mlir_tablegen(Ops.h.inc -gen-op-decls "-I${CMAKE_CURRENT_SOURCE_DIR}/..")
>> -mlir_tablegen(Ops.cpp.inc -gen-op-defs
>> "-I${CMAKE_CURRENT_SOURCE_DIR}/..")
>> +mlir_tablegen(Ops.h.inc -gen-op-decls)
>> +mlir_tablegen(Ops.cpp.inc -gen-op-defs)
>> add_public_tablegen_target(ToyCh6OpsIncGen)
>>
>> set(LLVM_TARGET_DEFINITIONS ShapeInferenceInterface.td)
>>
>> diff --git a/mlir/examples/toy/Ch7/CMakeLists.txt
>> b/mlir/examples/toy/Ch7/CMakeLists.txt
>> index 760052ee840f..9a9f335d3a92 100644
>> --- a/mlir/examples/toy/Ch7/CMakeLists.txt
>> +++ b/mlir/examples/toy/Ch7/CMakeLists.txt
>> @@ -1,3 +1,4 @@
>> +include_directories(include)
>> add_subdirectory(include)
>>
>> set(LLVM_LINK_COMPONENTS
>> @@ -6,7 +7,7 @@ set(LLVM_LINK_COMPONENTS
>> )
>>
>> set(LLVM_TARGET_DEFINITIONS mlir/ToyCombine.td)
>> -mlir_tablegen(ToyCombine.inc -gen-rewriters
>> "-I${CMAKE_CURRENT_SOURCE_DIR}/include")
>> +mlir_tablegen(ToyCombine.inc -gen-rewriters)
>> add_public_tablegen_target(ToyCh7CombineIncGen)
>>
>> add_toy_chapter(toyc-ch7
>> @@ -25,7 +26,6 @@ add_toy_chapter(toyc-ch7
>> ToyCh7CombineIncGen
>> )
>>
>> -include_directories(include/)
>> include_directories(${CMAKE_CURRENT_BINARY_DIR})
>> include_directories(${CMAKE_CURRENT_BINARY_DIR}/include/)
>> get_property(dialect_libs GLOBAL PROPERTY MLIR_DIALECT_LIBS)
>>
>> diff --git a/mlir/examples/toy/Ch7/include/toy/CMakeLists.txt
>> b/mlir/examples/toy/Ch7/include/toy/CMakeLists.txt
>> index fa30bd2e8e03..43eb23bf93b8 100644
>> --- a/mlir/examples/toy/Ch7/include/toy/CMakeLists.txt
>> +++ b/mlir/examples/toy/Ch7/include/toy/CMakeLists.txt
>> @@ -1,6 +1,6 @@
>> set(LLVM_TARGET_DEFINITIONS Ops.td)
>> -mlir_tablegen(Ops.h.inc -gen-op-decls "-I${CMAKE_CURRENT_SOURCE_DIR}/..")
>> -mlir_tablegen(Ops.cpp.inc -gen-op-defs
>> "-I${CMAKE_CURRENT_SOURCE_DIR}/..")
>> +mlir_tablegen(Ops.h.inc -gen-op-decls)
>> +mlir_tablegen(Ops.cpp.inc -gen-op-defs)
>> add_public_tablegen_target(ToyCh7OpsIncGen)
>>
>> set(LLVM_TARGET_DEFINITIONS ShapeInferenceInterface.td)
>>
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200403/51bd0e66/attachment.html>
More information about the llvm-commits
mailing list