diff --git a/src/Builder/CMakeLists.txt b/src/Builder/CMakeLists.txt index bf89da7..d42a867 100644 --- a/src/Builder/CMakeLists.txt +++ b/src/Builder/CMakeLists.txt @@ -23,12 +23,15 @@ target_include_directories(OMBuilder ${ONNX_MLIR_SRC_ROOT}/third_party/onnx ${ONNX_MLIR_SRC_ROOT}/third_party/variant ${ONNX_MLIR_SRC_ROOT}) + # If you add onnx here, it will also cause onnx to be built. However, some # variable definitions when building onnx such as -DONNX_ML=1 -DONNX_NAMESPACE=onnx # will NOT be carried over when compiling FrontendDialectHelper.cpp, etc. so # the compilation will fail. +add_dependencies(OMBuilder OMONNXOpsInc) add_dependencies(OMBuilder OMONNXOps OMResultTypeInferenceOpInterface) if (INCLUDE_ONNX_ML) + add_dependencies(OMBuilder OMMLONNXOpsInc) add_dependencies(OMBuilder OMMLONNXOps) endif() diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 9f93e29..9a92f3c 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -63,9 +63,11 @@ target_link_libraries(MainUtils OMONNXRewrite ${MLIRLibs} ${CMAKE_DL_LIBS}) +add_dependencies(onnx-mlir OMKrnlOpsInc OMONNXOpsInc) if (INCLUDE_ONNX_ML) target_link_libraries(MainUtils OMMLONNXOps) + add_dependencies(MainUtils OMMLONNXOpsInc) endif() target_include_directories(onnx-mlir PRIVATE ${ONNX_MLIR_SRC_ROOT}) diff --git a/src/Conversion/ONNXToKrnl/CMakeLists.txt b/src/Conversion/ONNXToKrnl/CMakeLists.txt index aa2859c..27d6580 100644 --- a/src/Conversion/ONNXToKrnl/CMakeLists.txt +++ b/src/Conversion/ONNXToKrnl/CMakeLists.txt @@ -29,6 +29,7 @@ target_include_directories(OMONNXToKrnl ${ONNX_MLIR_BIN_ROOT} ${ONNX_MLIR_SRC_ROOT}) -# Linking dependencies: -add_dependencies(OMONNXToKrnl - OMKrnlOps) +# Header dependencies +add_dependencies(OMONNXToKrnl OMKrnlOpsInc OMONNXOpsInc) +# Linking dependencies +add_dependencies(OMONNXToKrnl OMKrnlOps) diff --git a/src/Dialect/Krnl/CMakeLists.txt b/src/Dialect/Krnl/CMakeLists.txt index b1dd052..eddd504 100644 --- a/src/Dialect/Krnl/CMakeLists.txt +++ b/src/Dialect/Krnl/CMakeLists.txt @@ -3,6 +3,10 @@ onnx_mlir_tablegen(KrnlOps.hpp.inc -gen-op-decls) onnx_mlir_tablegen(KrnlOps.cpp.inc -gen-op-defs) add_public_tablegen_target(OMKrnlOpsIncGen) +# Header dependencies target for KrnOps.hpp +add_custom_target(OMKrnlOpsInc + DEPENDS OMKrnlOpsIncGen) + add_library(OMKrnlOps KrnlOps.hpp KrnlOps.cpp @@ -15,4 +19,4 @@ target_include_directories(OMKrnlOps ${ONNX_MLIR_SRC_ROOT} ${ONNX_MLIR_BIN_ROOT} ${ONNX_MLIR_SRC_ROOT}) -add_dependencies(OMKrnlOps OMKrnlOpsIncGen) \ No newline at end of file +add_dependencies(OMKrnlOps OMKrnlOpsInc) diff --git a/src/Dialect/MLONNX/CMakeLists.txt b/src/Dialect/MLONNX/CMakeLists.txt index 6f50aea..7b29c75 100644 --- a/src/Dialect/MLONNX/CMakeLists.txt +++ b/src/Dialect/MLONNX/CMakeLists.txt @@ -5,6 +5,13 @@ onnx_mlir_tablegen(MLONNXOps.cpp.inc -gen-op-defs "-I${ONNX_MLIR_SRC_ROOT}/compi set(GEN_DOC_FILE ${CMAKE_BINARY_DIR}/docs/Dialects/mlonnx.md) add_public_tablegen_target(OMMLONNXOpsIncGen) +# Header dependencies target for MLONNXOps.hpp +add_custom_target(OMMLONNXOpsInc + DEPENDS OMMLONNXOpsIncGen + OMPromotableConstOperandsOpInterfaceIncGen + OMResultTypeInferenceOpInterfaceIncGen + ShapeInferenceOpInterfaceIncGen) + add_library(OMMLONNXOps MLONNXOps.cpp MLONNXOps.hpp) @@ -13,8 +20,9 @@ target_include_directories(OMMLONNXOps ${ONNX_MLIR_SRC_ROOT} ${ONNX_MLIR_BIN_ROOT} ${ONNX_MLIR_SRC_ROOT}) -add_dependencies(OMMLONNXOps OMMLONNXOpsIncGen) -# Linking dependencies: +# Header dependencies +add_dependencies(OMMLONNXOps OMMLONNXOpsInc) +# Linking dependencies add_dependencies(OMMLONNXOps OMPromotableConstOperandsOpInterface OMResultTypeInferenceOpInterface diff --git a/src/Dialect/ONNX/CMakeLists.txt b/src/Dialect/ONNX/CMakeLists.txt index cf9acfa..f22ded0 100644 --- a/src/Dialect/ONNX/CMakeLists.txt +++ b/src/Dialect/ONNX/CMakeLists.txt @@ -4,6 +4,13 @@ onnx_mlir_tablegen(ONNXOps.cpp.inc -gen-op-defs "-I${ONNX_MLIR_SRC_ROOT}/compile set(GEN_DOC_FILE ${CMAKE_BINARY_DIR}/docs/Dialects/onnx.md) add_public_tablegen_target(OMONNXOpsIncGen) +# Header dependencies target for ONNXOps.hpp +add_custom_target(OMONNXOpsInc + DEPENDS OMONNXOpsIncGen + OMPromotableConstOperandsOpInterfaceIncGen + OMResultTypeInferenceOpInterfaceIncGen + ShapeInferenceOpInterfaceIncGen) + add_library(OMONNXOps ONNXOps.cpp ONNXOps.hpp @@ -14,9 +21,10 @@ target_include_directories(OMONNXOps ${ONNX_MLIR_SRC_ROOT} ${ONNX_MLIR_BIN_ROOT} ${ONNX_MLIR_SRC_ROOT}) + +add_dependencies(OMONNXOps OMONNXOpsIncGen) target_link_libraries(OMONNXOps onnx) -add_dependencies(OMONNXOps OMONNXOpsIncGen) # Linking dependencies: add_dependencies(OMONNXOps OMPromotableConstOperandsOpInterface diff --git a/src/Tool/ONNXMLIROpt/CMakeLists.txt b/src/Tool/ONNXMLIROpt/CMakeLists.txt index d135c21..5de897b 100644 --- a/src/Tool/ONNXMLIROpt/CMakeLists.txt +++ b/src/Tool/ONNXMLIROpt/CMakeLists.txt @@ -1,5 +1,5 @@ add_executable(onnx-mlir-opt ONNXMLIROpt.cpp) -add_dependencies(onnx-mlir-opt OMKrnlOpsIncGen) +add_dependencies(onnx-mlir-opt OMKrnlOpsInc OMONNXOpsInc) target_include_directories(onnx-mlir-opt PRIVATE ${ONNX_MLIR_SRC_ROOT}) target_include_directories(onnx-mlir-opt PRIVATE ${ONNX_MLIR_BIN_ROOT}) diff --git a/src/Transform/CMakeLists.txt b/src/Transform/CMakeLists.txt index f3e2105..64a28ab 100644 --- a/src/Transform/CMakeLists.txt +++ b/src/Transform/CMakeLists.txt @@ -5,11 +5,10 @@ target_include_directories(OMKrnlToAffine ${ONNX_MLIR_SRC_ROOT} ${ONNX_MLIR_BIN_ROOT} ${ONNX_MLIR_SRC_ROOT}) - -# Linking dependencies: -add_dependencies(OMKrnlToAffine - OMKrnlOps - OMONNXOps) +# Header dependencies +add_dependencies(OMKrnlToAffine OMKrnlOpsInc) +# Linking dependencies +add_dependencies(OMKrnlToAffine OMKrnlOps) add_library(OMKrnlToLLVM LowerToLLVM.cpp) @@ -18,14 +17,15 @@ target_include_directories(OMKrnlToLLVM ${ONNX_MLIR_SRC_ROOT} ${ONNX_MLIR_BIN_ROOT} ${ONNX_MLIR_SRC_ROOT}) + +# Header dependencies +add_dependencies(OMKrnlToLLVM OMKrnlOpsInc OMONNXOpsInc) +# Linking dependencies +add_dependencies(OMKrnlToLLVM OMKrnlOps OMONNXOps) + target_link_libraries(OMKrnlToLLVM onnx) -#Linking dependencies: -add_dependencies(OMKrnlToLLVM - OMKrnlOps - OMONNXOps) - add_library(OMElideKrnlGlobalConstants ElideKrnlGlobalConstants.cpp) target_include_directories(OMElideKrnlGlobalConstants @@ -33,8 +33,9 @@ target_include_directories(OMElideKrnlGlobalConstants ${ONNX_MLIR_SRC_ROOT} ${ONNX_MLIR_BIN_ROOT} ${ONNX_MLIR_SRC_ROOT}) -add_dependencies(OMElideKrnlGlobalConstants - OMKrnlOps - OMONNXOps) +# Header dependencies +add_dependencies(OMElideKrnlGlobalConstants OMKrnlOpsInc) +# Linking dependencies +add_dependencies(OMElideKrnlGlobalConstants OMKrnlOps) add_subdirectory(ONNX) diff --git a/src/Transform/ONNX/CMakeLists.txt b/src/Transform/ONNX/CMakeLists.txt index 1f7f896..b243b17 100644 --- a/src/Transform/ONNX/CMakeLists.txt +++ b/src/Transform/ONNX/CMakeLists.txt @@ -3,8 +3,10 @@ add_library(OMAttributePromotion target_include_directories(OMAttributePromotion PRIVATE ${ONNX_MLIR_SRC_ROOT} ${ONNX_MLIR_BIN_ROOT} ${ONNF_MLIR_SRC_ROOT}) - -# Linking dependencies: +# Header dependencies +add_dependencies(OMAttributePromotion + OMONNXOpsInc OMPromotableConstOperandsOpInterfaceIncGen) +# Linking dependencies add_dependencies(OMAttributePromotion OMPromotableConstOperandsOpInterface) target_link_libraries(OMAttributePromotion @@ -16,8 +18,11 @@ target_include_directories(OMElideConstants PRIVATE ${ONNX_MLIR_SRC_ROOT} ${ONNX_MLIR_BIN_ROOT} ${ONNF_MLIR_SRC_ROOT}) -add_dependencies(OMElideConstants - OMONNXOps) +# Header dependencies +add_dependencies(OMElideConstants OMONNXOpsInc) +# Linking dependencies +add_dependencies(OMElideConstants OMONNXOps) + target_link_libraries(OMElideConstants onnx) @@ -45,14 +50,16 @@ add_library(OMONNXRewrite target_include_directories(OMONNXRewrite PRIVATE ${ONNX_MLIR_SRC_ROOT} ${ONNX_MLIR_BIN_ROOT} ${ONNF_MLIR_SRC_ROOT}) +# Header dependencies add_dependencies(OMONNXRewrite + OMONNXOpsInc OMONNXRewriteIncGen OMONNXDecomposeIncGen OMONNXCombineIncGen OMONNXConstPropIncGen) -# Linking dependencies: -add_dependencies(OMONNXRewrite - OMONNXOps) + +# Linking dependencies +add_dependencies(OMONNXRewrite OMONNXOps) target_link_libraries(OMONNXRewrite onnx) @@ -60,7 +67,7 @@ add_library(OMShapeInference ShapeInferencePass.cpp) target_include_directories(OMShapeInference PRIVATE ${ONNX_MLIR_SRC_ROOT} ${ONNX_MLIR_BIN_ROOT} ${ONNX_MLIR_SRC_ROOT}) +# Header dependencies add_dependencies(OMShapeInference ShapeInferenceOpInterfaceIncGen) -# Linking dependencies: -add_dependencies(OMShapeInference - OMShapeInferenceOpInterface) +# Linking dependencies +add_dependencies(OMShapeInference OMShapeInferenceOpInterface)