You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by ma...@apache.org on 2021/12/23 14:30:51 UTC
[tvm] branch main updated: [CMAKE] Automatically detect newly added source files (#9611)
This is an automated email from the ASF dual-hosted git repository.
masahi pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tvm.git
The following commit(s) were added to refs/heads/main by this push:
new d486e21 [CMAKE] Automatically detect newly added source files (#9611)
d486e21 is described below
commit d486e21ef30990273e789af3ac1dee22f5bcb2d4
Author: Tristan Konolige <tk...@octoml.ai>
AuthorDate: Thu Dec 23 06:30:27 2021 -0800
[CMAKE] Automatically detect newly added source files (#9611)
* [CMAKE] Automatically detect newly added source files
Before this commit, newly added or removed source files were not
detected by cmake. This manifested either as file not found errors from
the compiler (when files were deleted) or packedfuncs not being found
(when files were added). This commit uses the CONFIGURE_DEPENDS option
of cmake's `file(GLOB)` function to ask the build system to check for
new files on every rebuild. Checking for new files adds a slight but
negligible overhead to each build, but is better than unexpected errors.
* remove unnessesary configure_depends
---
CMakeLists.txt | 38 +++++++++++-----------
cmake/libs/Libbacktrace.cmake | 2 +-
cmake/modules/CUDA.cmake | 10 +++---
cmake/modules/Hexagon.cmake | 12 +++----
cmake/modules/HexagonSDK.cmake | 2 +-
cmake/modules/LLVM.cmake | 2 +-
cmake/modules/Metal.cmake | 4 +--
cmake/modules/Micro.cmake | 2 +-
cmake/modules/OpenCL.cmake | 6 ++--
cmake/modules/ROCM.cmake | 6 ++--
cmake/modules/StandaloneCrt.cmake | 6 ++--
cmake/modules/VTA.cmake | 16 ++++-----
cmake/modules/Vulkan.cmake | 4 +--
cmake/modules/contrib/ArmComputeLib.cmake | 6 ++--
cmake/modules/contrib/BNNS.cmake | 4 +--
cmake/modules/contrib/CMSISNN.cmake | 2 +-
cmake/modules/contrib/CODEGENC.cmake | 2 +-
cmake/modules/contrib/CUTLASS.cmake | 2 +-
cmake/modules/contrib/CoreML.cmake | 2 +-
cmake/modules/contrib/DNNL.cmake | 8 ++---
cmake/modules/contrib/EthosN.cmake | 10 +++---
cmake/modules/contrib/EthosU.cmake | 12 +++----
cmake/modules/contrib/ExampleTargetHooks.cmake | 2 +-
cmake/modules/contrib/HybridDump.cmake | 2 +-
cmake/modules/contrib/MicroStandaloneRuntime.cmake | 2 +-
cmake/modules/contrib/NNPack.cmake | 2 +-
cmake/modules/contrib/ONNX.cmake | 2 +-
cmake/modules/contrib/PT_TVMDSOOP.cmake | 2 +-
cmake/modules/contrib/Random.cmake | 2 +-
cmake/modules/contrib/Sort.cmake | 2 +-
cmake/modules/contrib/TFLite.cmake | 4 +--
cmake/modules/contrib/TF_TVMDSOOP.cmake | 2 +-
cmake/modules/contrib/TensorRT.cmake | 6 ++--
cmake/modules/contrib/Verilator.cmake | 4 +--
cmake/modules/contrib/VitisAI.cmake | 8 ++---
cmake/utils/Utils.cmake | 18 ++++++++++
.../hexagon/android/sim/driver/CMakeLists.txt | 2 +-
37 files changed, 118 insertions(+), 100 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 29d2ace..c667750 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -240,13 +240,13 @@ if(BUILD_FOR_ANDROID)
endif()
# add source group
-FILE(GLOB_RECURSE GROUP_SOURCE "src/*.cc")
-FILE(GLOB_RECURSE GROUP_INCLUDE "src/*.h" "include/*.h")
+tvm_file_glob(GLOB_RECURSE GROUP_SOURCE "src/*.cc")
+tvm_file_glob(GLOB_RECURSE GROUP_INCLUDE "src/*.h" "include/*.h")
assign_source_group("Source" ${GROUP_SOURCE})
assign_source_group("Include" ${GROUP_INCLUDE})
# Source file lists
-file(GLOB_RECURSE COMPILER_SRCS
+tvm_file_glob(GLOB_RECURSE COMPILER_SRCS
src/auto_scheduler/*.cc
src/meta_schedule/*.cc
src/node/*.cc
@@ -262,29 +262,29 @@ file(GLOB_RECURSE COMPILER_SRCS
src/support/*.cc
)
-file(GLOB CODEGEN_SRCS
+tvm_file_glob(GLOB CODEGEN_SRCS
src/target/*.cc
src/target/source/*.cc
)
list(APPEND COMPILER_SRCS ${CODEGEN_SRCS})
-file(GLOB_RECURSE RELAY_OP_SRCS
+tvm_file_glob(GLOB_RECURSE RELAY_OP_SRCS
src/relay/op/*.cc
)
-file(GLOB_RECURSE RELAY_PASS_SRCS
+tvm_file_glob(GLOB_RECURSE RELAY_PASS_SRCS
src/relay/analysis/*.cc
src/relay/transforms/*.cc
src/relay/quantize/*.cc
)
-file(GLOB RELAY_BACKEND_SRCS
+tvm_file_glob(GLOB RELAY_BACKEND_SRCS
src/relay/backend/*.cc
src/relay/backend/vm/*.cc
)
-file(GLOB_RECURSE RELAY_IR_SRCS
+tvm_file_glob(GLOB_RECURSE RELAY_IR_SRCS
src/relay/ir/*.cc
)
-file(GLOB_RECURSE RELAY_QNN_SRCS
+tvm_file_glob(GLOB_RECURSE RELAY_QNN_SRCS
src/relay/qnn/*.cc
)
list(APPEND COMPILER_SRCS ${RELAY_OP_SRCS})
@@ -293,11 +293,11 @@ list(APPEND COMPILER_SRCS ${RELAY_BACKEND_SRCS})
list(APPEND COMPILER_SRCS ${RELAY_IR_SRCS})
list(APPEND COMPILER_SRCS ${RELAY_QNN_SRCS})
-file(GLOB DATATYPE_SRCS src/target/datatype/*.cc)
+tvm_file_glob(GLOB DATATYPE_SRCS src/target/datatype/*.cc)
list(APPEND COMPILER_SRCS ${DATATYPE_SRCS})
list(APPEND COMPILER_SRCS "src/target/datatype/myfloat/myfloat.cc")
-file(GLOB RUNTIME_SRCS
+tvm_file_glob(GLOB RUNTIME_SRCS
src/runtime/*.cc
src/runtime/vm/*.cc
)
@@ -333,12 +333,12 @@ endif()
if(USE_RPC)
message(STATUS "Build with RPC support...")
- file(GLOB RUNTIME_RPC_SRCS src/runtime/rpc/*.cc)
+ tvm_file_glob(GLOB RUNTIME_RPC_SRCS src/runtime/rpc/*.cc)
list(APPEND RUNTIME_SRCS ${RUNTIME_RPC_SRCS})
endif(USE_RPC)
-file(GLOB STACKVM_RUNTIME_SRCS src/runtime/stackvm/*.cc)
-file(GLOB STACKVM_CODEGEN_SRCS src/target/stackvm/*.cc)
+tvm_file_glob(GLOB STACKVM_RUNTIME_SRCS src/runtime/stackvm/*.cc)
+tvm_file_glob(GLOB STACKVM_CODEGEN_SRCS src/target/stackvm/*.cc)
list(APPEND COMPILER_SRCS ${STACKVM_CODEGEN_SRCS})
if(USE_STACKVM_RUNTIME)
message(STATUS "Build with stackvm support in runtime...")
@@ -363,7 +363,7 @@ endif(USE_GRAPH_RUNTIME_DEBUG AND NOT DEFINED USE_PROFILER)
if(USE_GRAPH_EXECUTOR)
message(STATUS "Build with Graph Executor support...")
- file(GLOB RUNTIME_GRAPH_EXECUTOR_SRCS src/runtime/graph_executor/*.cc)
+ tvm_file_glob(GLOB RUNTIME_GRAPH_EXECUTOR_SRCS src/runtime/graph_executor/*.cc)
list(APPEND RUNTIME_SRCS ${RUNTIME_GRAPH_EXECUTOR_SRCS})
endif(USE_GRAPH_EXECUTOR)
@@ -383,12 +383,12 @@ endif()
if(USE_PROFILER)
message(STATUS "Build with profiler...")
- file(GLOB RUNTIME_GRAPH_EXECUTOR_DEBUG_SRCS src/runtime/graph_executor/debug/*.cc)
+ tvm_file_glob(GLOB RUNTIME_GRAPH_EXECUTOR_DEBUG_SRCS src/runtime/graph_executor/debug/*.cc)
list(APPEND RUNTIME_SRCS ${RUNTIME_GRAPH_EXECUTOR_DEBUG_SRCS})
set_source_files_properties(${RUNTIME_GRAPH_EXECUTOR_SRCS}
PROPERTIES COMPILE_DEFINITIONS "TVM_GRAPH_EXECUTOR_DEBUG")
- file(GLOB RUNTIME_VM_PROFILER_SRCS src/runtime/vm/profiler/*.cc)
+ tvm_file_glob(GLOB RUNTIME_VM_PROFILER_SRCS src/runtime/vm/profiler/*.cc)
list(APPEND RUNTIME_SRCS ${RUNTIME_VM_PROFILER_SRCS})
endif(USE_PROFILER)
@@ -413,7 +413,7 @@ endif()
if(USE_PIPELINE_EXECUTOR)
message(STATUS "Build with Pipeline Executor support...")
- file(GLOB RUNTIME_PIPELINE_SRCS src/runtime/pipeline/*.cc)
+ tvm_file_glob(GLOB RUNTIME_PIPELINE_SRCS src/runtime/pipeline/*.cc)
list(APPEND RUNTIME_SRCS ${RUNTIME_PIPELINE_SRCS})
endif(USE_PIPELINE_EXECUTOR)
@@ -610,7 +610,7 @@ endif()
# Create the `cpptest` target if we can find GTest. If not, we create dummy
# targets that give the user an informative error message.
if(GTEST_FOUND)
- file(GLOB_RECURSE TEST_SRCS tests/cpp/*.cc)
+ tvm_file_glob(GLOB_RECURSE TEST_SRCS tests/cpp/*.cc)
add_executable(cpptest ${TEST_SRCS})
# include runtime files for unit testing
target_include_directories(cpptest PUBLIC "src/runtime")
diff --git a/cmake/libs/Libbacktrace.cmake b/cmake/libs/Libbacktrace.cmake
index 58eb4e0..cece744 100644
--- a/cmake/libs/Libbacktrace.cmake
+++ b/cmake/libs/Libbacktrace.cmake
@@ -55,7 +55,7 @@ ExternalProject_Add(project_libbacktrace
)
# Custom step to rebuild libbacktrace if any of the source files change
-file(GLOB LIBBACKTRACE_SRCS "${CMAKE_CURRENT_LIST_DIR}/../../3rdparty/libbacktrace/*.c")
+tvm_file_glob(GLOB LIBBACKTRACE_SRCS "${CMAKE_CURRENT_LIST_DIR}/../../3rdparty/libbacktrace/*.c")
ExternalProject_Add_Step(project_libbacktrace checkout
DEPENDERS configure
DEPENDEES download
diff --git a/cmake/modules/CUDA.cmake b/cmake/modules/CUDA.cmake
index 429a5a0..10117aa 100644
--- a/cmake/modules/CUDA.cmake
+++ b/cmake/modules/CUDA.cmake
@@ -29,7 +29,7 @@ if(USE_CUDA)
message(FATAL_ERROR "Cannot find CUDA, USE_CUDA=" ${USE_CUDA})
endif()
message(STATUS "Build with CUDA ${CUDA_VERSION} support")
- file(GLOB RUNTIME_CUDA_SRCS src/runtime/cuda/*.cc)
+ tvm_file_glob(GLOB RUNTIME_CUDA_SRCS src/runtime/cuda/*.cc)
list(APPEND RUNTIME_SRCS ${RUNTIME_CUDA_SRCS})
list(APPEND COMPILER_SRCS src/target/opt/build_cuda_on.cc)
@@ -41,14 +41,14 @@ if(USE_CUDA)
if(USE_CUDNN)
message(STATUS "Build with cuDNN support")
include_directories(SYSTEM ${CUDA_CUDNN_INCLUDE_DIRS})
- file(GLOB CONTRIB_CUDNN_SRCS src/runtime/contrib/cudnn/*.cc)
+ tvm_file_glob(GLOB CONTRIB_CUDNN_SRCS src/runtime/contrib/cudnn/*.cc)
list(APPEND RUNTIME_SRCS ${CONTRIB_CUDNN_SRCS})
list(APPEND TVM_RUNTIME_LINKER_LIBS ${CUDA_CUDNN_LIBRARY})
endif(USE_CUDNN)
if(USE_CUBLAS)
message(STATUS "Build with cuBLAS support")
- file(GLOB CONTRIB_CUBLAS_SRCS src/runtime/contrib/cublas/*.cc)
+ tvm_file_glob(GLOB CONTRIB_CUBLAS_SRCS src/runtime/contrib/cublas/*.cc)
list(APPEND RUNTIME_SRCS ${CONTRIB_CUBLAS_SRCS})
list(APPEND TVM_RUNTIME_LINKER_LIBS ${CUDA_CUBLAS_LIBRARY})
if(NOT CUDA_CUBLASLT_LIBRARY STREQUAL "CUDA_CUBLASLT_LIBRARY-NOTFOUND")
@@ -61,7 +61,7 @@ if(USE_CUDA)
cmake_minimum_required(VERSION 3.13) # to compile CUDA code
enable_language(CUDA)
set(CMAKE_CUDA_FLAGS "${CMAKE_CUDA_FLAGS} --expt-extended-lambda")
- file(GLOB CONTRIB_THRUST_SRC src/runtime/contrib/thrust/*.cu)
+ tvm_file_glob(GLOB CONTRIB_THRUST_SRC src/runtime/contrib/thrust/*.cu)
list(APPEND RUNTIME_SRCS ${CONTRIB_THRUST_SRC})
endif(USE_THRUST)
@@ -73,7 +73,7 @@ if(USE_CUDA)
message(FATAL_ERROR "CUDA Graph requires CUDA 10 or above, got=" ${CUDAToolkit_VERSION})
endif()
message(STATUS "Build with Graph executor with CUDA Graph support...")
- file(GLOB RUNTIME_CUDA_GRAPH_SRCS src/runtime/graph_executor/cuda_graph/*.cc)
+ tvm_file_glob(GLOB RUNTIME_CUDA_GRAPH_SRCS src/runtime/graph_executor/cuda_graph/*.cc)
list(APPEND RUNTIME_SRCS ${RUNTIME_CUDA_GRAPH_SRCS})
endif()
else(USE_CUDA)
diff --git a/cmake/modules/Hexagon.cmake b/cmake/modules/Hexagon.cmake
index 4dd85ed..d982601 100644
--- a/cmake/modules/Hexagon.cmake
+++ b/cmake/modules/Hexagon.cmake
@@ -34,7 +34,7 @@ function(find_hexagon_toolchain)
set(TRY_PATH "${USE_HEXAGON_SDK}")
endif()
message(STATUS "Looking for Hexagon toolchain in ${TRY_PATH}")
- file(GLOB_RECURSE HEXAGON_CLANG "${TRY_PATH}/*/hexagon-clang++")
+ tvm_file_glob(GLOB_RECURSE HEXAGON_CLANG "${TRY_PATH}/*/hexagon-clang++")
if(HEXAGON_CLANG)
# The path is ${HEXAGON_TOOLCHAIN}/bin/hexagon-clang++.
get_filename_component(HEXAGON_TMP0 "${HEXAGON_CLANG}" DIRECTORY)
@@ -309,7 +309,7 @@ endif()
if(USE_HEXAGON_DEVICE STREQUAL "${PICK_SIM}")
find_hexagon_toolchain()
message(STATUS "Hexagon toolchain: ${HEXAGON_TOOLCHAIN}")
- file(GLOB RUNTIME_HEXAGON_SIM_SRCS src/runtime/hexagon/android/sim/*.cc)
+ tvm_file_glob(GLOB RUNTIME_HEXAGON_SIM_SRCS src/runtime/hexagon/android/sim/*.cc)
include_directories(SYSTEM "${HEXAGON_TOOLCHAIN}/include/iss")
link_directories("${HEXAGON_TOOLCHAIN}/lib/iss")
list(APPEND TVM_RUNTIME_LINKER_LIBS "-lwrapper")
@@ -324,7 +324,7 @@ if(USE_HEXAGON_DEVICE STREQUAL "${PICK_SIM}")
elseif(USE_HEXAGON_DEVICE STREQUAL "${PICK_HW}")
find_hexagon_sdk_root("${USE_HEXAGON_SDK}" "${USE_HEXAGON_ARCH}")
find_hexagon_toolchain()
- file(GLOB RUNTIME_HEXAGON_DEVICE_SRCS src/runtime/hexagon/android/target/*.cc)
+ tvm_file_glob(GLOB RUNTIME_HEXAGON_DEVICE_SRCS src/runtime/hexagon/android/target/*.cc)
include_directories(SYSTEM
${HEXAGON_SDK_INCLUDES}
@@ -342,14 +342,14 @@ endif()
set(RUNTIME_HEXAGON_COMMON_SRCS src/runtime/hexagon/hexagon_module.cc)
if (USE_HEXAGON_DEVICE STREQUAL "${PICK_NONE}")
if(BUILD_FOR_HEXAGON)
- file(GLOB RUNTIME_HEXAGON_SRCS src/runtime/hexagon/hexagon/*.cc)
+ tvm_file_glob(GLOB RUNTIME_HEXAGON_SRCS src/runtime/hexagon/hexagon/*.cc)
elseif(BUILD_FOR_ANDROID AND HEXAGON_SDK_PATH_DEFINED)
list(APPEND RUNTIME_HEXAGON_SRCS src/runtime/hexagon/proxy_rpc/device_api.cc)
else()
- file(GLOB RUNTIME_HEXAGON_SRCS src/runtime/hexagon/host/*.cc)
+ tvm_file_glob(GLOB RUNTIME_HEXAGON_SRCS src/runtime/hexagon/host/*.cc)
endif()
else()
- file(GLOB RUNTIME_HEXAGON_SRCS src/runtime/hexagon/android/*.cc)
+ tvm_file_glob(GLOB RUNTIME_HEXAGON_SRCS src/runtime/hexagon/android/*.cc)
endif()
if(USE_HEXAGON_RPC)
diff --git a/cmake/modules/HexagonSDK.cmake b/cmake/modules/HexagonSDK.cmake
index 4278511..e9bc2d2 100644
--- a/cmake/modules/HexagonSDK.cmake
+++ b/cmake/modules/HexagonSDK.cmake
@@ -31,7 +31,7 @@ function(find_hexagon_sdk_root HEXAGON_SDK_PATH HEXAGON_ARCH)
# Initial verification of the Hexagon SDK.
message(STATUS "Checking Hexagon SDK root: ${HEXAGON_SDK_PATH}")
- file(GLOB_RECURSE VERSION_HEADERS "${HEXAGON_SDK_PATH}/*/version.h")
+ tvm_file_glob(GLOB_RECURSE VERSION_HEADERS "${HEXAGON_SDK_PATH}/*/version.h")
if(VERSION_HEADERS)
foreach(HEADER IN LISTS VERSION_HEADERS)
if(HEADER MATCHES "incs/version.h$")
diff --git a/cmake/modules/LLVM.cmake b/cmake/modules/LLVM.cmake
index ac870b1..de5bcb6 100644
--- a/cmake/modules/LLVM.cmake
+++ b/cmake/modules/LLVM.cmake
@@ -35,7 +35,7 @@ if(NOT ${USE_LLVM} MATCHES ${IS_FALSE_PATTERN})
message(STATUS "Set TVM_LLVM_VERSION=" ${TVM_LLVM_VERSION})
# Set flags that are only needed for LLVM target
add_definitions(-DTVM_LLVM_VERSION=${TVM_LLVM_VERSION})
- file(GLOB COMPILER_LLVM_SRCS src/target/llvm/*.cc)
+ tvm_file_glob(GLOB COMPILER_LLVM_SRCS src/target/llvm/*.cc)
list(APPEND TVM_LINKER_LIBS ${LLVM_LIBS})
list(APPEND COMPILER_SRCS ${COMPILER_LLVM_SRCS})
if(NOT MSVC)
diff --git a/cmake/modules/Metal.cmake b/cmake/modules/Metal.cmake
index 7df1b32..d1a695b 100644
--- a/cmake/modules/Metal.cmake
+++ b/cmake/modules/Metal.cmake
@@ -19,12 +19,12 @@ if(USE_METAL)
message(STATUS "Build with Metal support")
find_library(METAL_LIB Metal)
find_library(FOUNDATION_LIB Foundation)
- file(GLOB RUNTIME_METAL_SRCS src/runtime/metal/*.mm)
+ tvm_file_glob(GLOB RUNTIME_METAL_SRCS src/runtime/metal/*.mm)
list(APPEND TVM_RUNTIME_LINKER_LIBS ${METAL_LIB} ${FOUNDATION_LIB})
list(APPEND RUNTIME_SRCS ${RUNTIME_METAL_SRCS})
if(USE_MPS)
- file(GLOB MPS_CONTRIB_SRC src/runtime/contrib/mps/*.mm)
+ tvm_file_glob(GLOB MPS_CONTRIB_SRC src/runtime/contrib/mps/*.mm)
list(APPEND RUNTIME_SRCS ${MPS_CONTRIB_SRC})
find_library(MPS_CONTRIB_LIB MetalPerformanceShaders)
list(APPEND TVM_RUNTIME_LINKER_LIBS ${MPS_CONTRIB_LIB})
diff --git a/cmake/modules/Micro.cmake b/cmake/modules/Micro.cmake
index edb5063..b5898a3 100644
--- a/cmake/modules/Micro.cmake
+++ b/cmake/modules/Micro.cmake
@@ -17,6 +17,6 @@
if(USE_MICRO)
message(STATUS "Build with Micro support")
- file(GLOB RUNTIME_MICRO_SRCS src/runtime/micro/*.cc)
+ tvm_file_glob(GLOB RUNTIME_MICRO_SRCS src/runtime/micro/*.cc)
list(APPEND RUNTIME_SRCS ${RUNTIME_MICRO_SRCS})
endif(USE_MICRO)
diff --git a/cmake/modules/OpenCL.cmake b/cmake/modules/OpenCL.cmake
index a82c080..648e83f 100644
--- a/cmake/modules/OpenCL.cmake
+++ b/cmake/modules/OpenCL.cmake
@@ -26,7 +26,7 @@ endif(OpenCL_FOUND)
if(USE_SDACCEL)
message(STATUS "Build with SDAccel support")
- file(GLOB RUNTIME_SDACCEL_SRCS src/runtime/opencl/sdaccel/*.cc)
+ tvm_file_glob(GLOB RUNTIME_SDACCEL_SRCS src/runtime/opencl/sdaccel/*.cc)
list(APPEND RUNTIME_SRCS ${RUNTIME_SDACCEL_SRCS})
if(NOT USE_OPENCL)
message(STATUS "Enable OpenCL support required for SDAccel")
@@ -38,7 +38,7 @@ endif(USE_SDACCEL)
if(USE_AOCL)
message(STATUS "Build with Intel FPGA SDK for OpenCL support")
- file(GLOB RUNTIME_AOCL_SRCS src/runtime/opencl/aocl/*.cc)
+ tvm_file_glob(GLOB RUNTIME_AOCL_SRCS src/runtime/opencl/aocl/*.cc)
list(APPEND RUNTIME_SRCS ${RUNTIME_AOCL_SRCS})
if(NOT USE_OPENCL)
message(STATUS "Enable OpenCL support required for Intel FPGA SDK for OpenCL")
@@ -53,7 +53,7 @@ if(USE_OPENCL)
find_package(OpenCL REQUIRED)
endif()
message(STATUS "Build with OpenCL support")
- file(GLOB RUNTIME_OPENCL_SRCS src/runtime/opencl/*.cc)
+ tvm_file_glob(GLOB RUNTIME_OPENCL_SRCS src/runtime/opencl/*.cc)
list(APPEND TVM_RUNTIME_LINKER_LIBS ${OpenCL_LIBRARIES})
list(APPEND RUNTIME_SRCS ${RUNTIME_OPENCL_SRCS})
else()
diff --git a/cmake/modules/ROCM.cmake b/cmake/modules/ROCM.cmake
index 8b064d2..37fcd71 100644
--- a/cmake/modules/ROCM.cmake
+++ b/cmake/modules/ROCM.cmake
@@ -31,7 +31,7 @@ if(USE_ROCM)
message(FATAL_ERROR "Cannot find ROCM, USE_ROCM=" ${USE_ROCM})
endif()
message(STATUS "Build with ROCM support")
- file(GLOB RUNTIME_ROCM_SRCS src/runtime/rocm/*.cc)
+ tvm_file_glob(GLOB RUNTIME_ROCM_SRCS src/runtime/rocm/*.cc)
list(APPEND RUNTIME_SRCS ${RUNTIME_ROCM_SRCS})
list(APPEND TVM_RUNTIME_LINKER_LIBS ${ROCM_HIPHCC_LIBRARY})
if (ROCM_HSA_LIBRARY)
@@ -40,14 +40,14 @@ if(USE_ROCM)
if(USE_MIOPEN)
message(STATUS "Build with MIOpen support")
- file(GLOB MIOPEN_CONTRIB_SRCS src/runtime/contrib/miopen/*.cc)
+ tvm_file_glob(GLOB MIOPEN_CONTRIB_SRCS src/runtime/contrib/miopen/*.cc)
list(APPEND RUNTIME_SRCS ${MIOPEN_CONTRIB_SRCS})
list(APPEND TVM_RUNTIME_LINKER_LIBS ${ROCM_MIOPEN_LIBRARY})
endif(USE_MIOPEN)
if(USE_ROCBLAS)
message(STATUS "Build with RocBLAS support")
- file(GLOB ROCBLAS_CONTRIB_SRCS src/runtime/contrib/rocblas/*.cc)
+ tvm_file_glob(GLOB ROCBLAS_CONTRIB_SRCS src/runtime/contrib/rocblas/*.cc)
list(APPEND RUNTIME_SRCS ${ROCBLAS_CONTRIB_SRCS})
list(APPEND TVM_RUNTIME_LINKER_LIBS ${ROCM_ROCBLAS_LIBRARY})
endif(USE_ROCBLAS)
diff --git a/cmake/modules/StandaloneCrt.cmake b/cmake/modules/StandaloneCrt.cmake
index 5d82284..e63521e 100644
--- a/cmake/modules/StandaloneCrt.cmake
+++ b/cmake/modules/StandaloneCrt.cmake
@@ -17,7 +17,7 @@
if(USE_MICRO)
message(STATUS "Build standalone CRT for microTVM")
- file(GLOB crt_srcs src/runtime/crt/**)
+ tvm_file_glob(GLOB crt_srcs src/runtime/crt/**)
function(tvm_crt_define_targets)
# Build an isolated build directory, separate from the TVM tree.
@@ -63,7 +63,7 @@ if(USE_MICRO)
math(EXPR copy_dest_index "${copy_pattern_index} + 2")
list(GET job_spec ${copy_dest_index} copy_dest)
- file(GLOB_RECURSE copy_files
+ tvm_file_glob(GLOB_RECURSE copy_files
RELATIVE "${job_src_base}"
"${job_src_base}/${copy_pattern}")
list(LENGTH copy_files copy_files_length)
@@ -124,7 +124,7 @@ if(USE_MICRO)
# Create the `crttest` target if we can find GTest. If not, we create dummy
# targets that give the user an informative error message.
if(GTEST_FOUND)
- file(GLOB TEST_SRCS ${CMAKE_SOURCE_DIR}/tests/crt/*.cc)
+ tvm_file_glob(GLOB TEST_SRCS ${CMAKE_SOURCE_DIR}/tests/crt/*.cc)
add_executable(crttest ${TEST_SRCS})
target_include_directories(crttest SYSTEM PUBLIC ${CMAKE_CURRENT_BINARY_DIR}/standalone_crt/include ${CMAKE_SOURCE_DIR}/src/runtime/micro)
target_link_libraries(crttest PRIVATE ${cmake_crt_libraries} GTest::GTest GTest::Main pthread dl)
diff --git a/cmake/modules/VTA.cmake b/cmake/modules/VTA.cmake
index 1f9d08b..f3fd473 100644
--- a/cmake/modules/VTA.cmake
+++ b/cmake/modules/VTA.cmake
@@ -52,8 +52,8 @@ elseif(PYTHON)
# Fast simulator driver build
if(USE_VTA_FSIM)
# Add fsim driver sources
- file(GLOB FSIM_RUNTIME_SRCS ${VTA_HW_PATH}/src/*.cc)
- file(GLOB FSIM_RUNTIME_SRCS vta/runtime/*.cc)
+ tvm_file_glob(GLOB FSIM_RUNTIME_SRCS ${VTA_HW_PATH}/src/*.cc)
+ tvm_file_glob(GLOB FSIM_RUNTIME_SRCS vta/runtime/*.cc)
list(APPEND FSIM_RUNTIME_SRCS ${VTA_HW_PATH}/src/sim/sim_driver.cc)
list(APPEND FSIM_RUNTIME_SRCS ${VTA_HW_PATH}/src/sim/sim_tlpp.cc)
list(APPEND FSIM_RUNTIME_SRCS ${VTA_HW_PATH}/src/vmem/virtual_memory.cc)
@@ -85,8 +85,8 @@ elseif(PYTHON)
message(FATAL_ERROR "Cannot find Verilator, VERILATOR_INC_DIR is not defined")
endif()
# Add tsim driver sources
- file(GLOB TSIM_RUNTIME_SRCS ${VTA_HW_PATH}/src/*.cc)
- file(GLOB TSIM_RUNTIME_SRCS vta/runtime/*.cc)
+ tvm_file_glob(GLOB TSIM_RUNTIME_SRCS ${VTA_HW_PATH}/src/*.cc)
+ tvm_file_glob(GLOB TSIM_RUNTIME_SRCS vta/runtime/*.cc)
list(APPEND TSIM_RUNTIME_SRCS ${VTA_HW_PATH}/src/tsim/tsim_driver.cc)
list(APPEND TSIM_RUNTIME_SRCS ${VTA_HW_PATH}/src/dpi/module.cc)
list(APPEND TSIM_RUNTIME_SRCS ${VTA_HW_PATH}/src/vmem/virtual_memory.cc)
@@ -105,8 +105,8 @@ elseif(PYTHON)
# VTA FPGA driver sources
if(USE_VTA_FPGA)
- file(GLOB FSIM_RUNTIME_SRCS ${VTA_HW_PATH}/src/*.cc)
- file(GLOB FPGA_RUNTIME_SRCS vta/runtime/*.cc)
+ tvm_file_glob(GLOB FSIM_RUNTIME_SRCS ${VTA_HW_PATH}/src/*.cc)
+ tvm_file_glob(GLOB FPGA_RUNTIME_SRCS vta/runtime/*.cc)
# Rules for Zynq-class FPGAs with pynq OS support (see pynq.io)
if(${VTA_TARGET} STREQUAL "pynq" OR
${VTA_TARGET} STREQUAL "ultra96")
@@ -114,10 +114,10 @@ elseif(PYTHON)
# Rules for Pynq v2.4
find_library(__cma_lib NAMES cma PATH /usr/lib)
elseif(${VTA_TARGET} STREQUAL "de10nano") # DE10-Nano rules
- file(GLOB DE10_FPGA_RUNTIME_SRCS ${VTA_HW_PATH}/src/de10nano/*.cc ${VTA_HW_PATH}/src/*.cc)
+ tvm_file_glob(GLOB DE10_FPGA_RUNTIME_SRCS ${VTA_HW_PATH}/src/de10nano/*.cc ${VTA_HW_PATH}/src/*.cc)
list(APPEND FPGA_RUNTIME_SRCS ${DE10_FPGA_RUNTIME_SRCS})
elseif(${VTA_TARGET} STREQUAL "intelfocl") # Intel OpenCL for FPGA rules
- file(GLOB FOCL_SRC ${VTA_HW_PATH}/src/oclfpga/*.cc)
+ tvm_file_glob(GLOB FOCL_SRC ${VTA_HW_PATH}/src/oclfpga/*.cc)
list(APPEND FPGA_RUNTIME_SRCS ${FOCL_SRC})
list(APPEND FPGA_RUNTIME_SRCS ${VTA_HW_PATH}/src/vmem/virtual_memory.cc ${VTA_HW_PATH}/src/vmem/virtual_memory.h)
endif()
diff --git a/cmake/modules/Vulkan.cmake b/cmake/modules/Vulkan.cmake
index 3ee13aa..17af5ba 100644
--- a/cmake/modules/Vulkan.cmake
+++ b/cmake/modules/Vulkan.cmake
@@ -24,8 +24,8 @@ if(USE_VULKAN)
endif()
include_directories(SYSTEM ${Vulkan_INCLUDE_DIRS})
message(STATUS "Build with Vulkan support")
- file(GLOB RUNTIME_VULKAN_SRCS src/runtime/vulkan/*.cc)
- file(GLOB COMPILER_VULKAN_SRCS src/target/spirv/*.cc)
+ tvm_file_glob(GLOB RUNTIME_VULKAN_SRCS src/runtime/vulkan/*.cc)
+ tvm_file_glob(GLOB COMPILER_VULKAN_SRCS src/target/spirv/*.cc)
list(APPEND RUNTIME_SRCS ${RUNTIME_VULKAN_SRCS})
list(APPEND COMPILER_SRCS ${COMPILER_VULKAN_SRCS})
list(APPEND TVM_LINKER_LIBS ${Vulkan_SPIRV_TOOLS_LIBRARY})
diff --git a/cmake/modules/contrib/ArmComputeLib.cmake b/cmake/modules/contrib/ArmComputeLib.cmake
index 9f6b9c1..83d5e2d 100644
--- a/cmake/modules/contrib/ArmComputeLib.cmake
+++ b/cmake/modules/contrib/ArmComputeLib.cmake
@@ -20,8 +20,8 @@
# which is common with arm devices, we need to be able to cross-compile
# a relay graph on x86 for AArch and then run the graph on AArch.
if(USE_ARM_COMPUTE_LIB)
- file(GLOB ACL_RELAY_CONTRIB_SRC src/relay/backend/contrib/arm_compute_lib/*.cc)
- file(GLOB ACL_RUNTIME_MODULE src/runtime/contrib/arm_compute_lib/acl_runtime.cc)
+ tvm_file_glob(GLOB ACL_RELAY_CONTRIB_SRC src/relay/backend/contrib/arm_compute_lib/*.cc)
+ tvm_file_glob(GLOB ACL_RUNTIME_MODULE src/runtime/contrib/arm_compute_lib/acl_runtime.cc)
list(APPEND COMPILER_SRCS ${ACL_RELAY_CONTRIB_SRC})
if(NOT USE_ARM_COMPUTE_LIB_GRAPH_EXECUTOR)
@@ -48,7 +48,7 @@ if(USE_ARM_COMPUTE_LIB_GRAPH_EXECUTOR)
set(ACL_PATH ${USE_ARM_COMPUTE_LIB_GRAPH_EXECUTOR})
endif()
- file(GLOB ACL_CONTRIB_SRC src/runtime/contrib/arm_compute_lib/*)
+ tvm_file_glob(GLOB ACL_CONTRIB_SRC src/runtime/contrib/arm_compute_lib/*)
# Cmake needs to find arm_compute, include and support directories
# in the path specified by ACL_PATH.
diff --git a/cmake/modules/contrib/BNNS.cmake b/cmake/modules/contrib/BNNS.cmake
index e14aa28..1adb3ba 100644
--- a/cmake/modules/contrib/BNNS.cmake
+++ b/cmake/modules/contrib/BNNS.cmake
@@ -17,13 +17,13 @@
if(USE_BNNS STREQUAL "ON")
add_definitions(-DUSE_JSON_RUNTIME=1)
- file(GLOB BNNS_RELAY_CONTRIB_SRC src/relay/backend/contrib/bnns/*.cc)
+ tvm_file_glob(GLOB BNNS_RELAY_CONTRIB_SRC src/relay/backend/contrib/bnns/*.cc)
list(APPEND COMPILER_SRCS ${BNNS_RELAY_CONTRIB_SRC})
list(APPEND COMPILER_SRCS ${JSON_RELAY_CONTRIB_SRC})
list(APPEND TVM_RUNTIME_LINKER_LIBS "-framework Accelerate")
- file(GLOB BNNS_CONTRIB_SRC src/runtime/contrib/bnns/*.cc)
+ tvm_file_glob(GLOB BNNS_CONTRIB_SRC src/runtime/contrib/bnns/*.cc)
list(APPEND RUNTIME_SRCS ${BNNS_CONTRIB_SRC})
message(STATUS "Build with BNNS JSON runtime: " ${EXTERN_LIBRARY_BNNS})
endif()
diff --git a/cmake/modules/contrib/CMSISNN.cmake b/cmake/modules/contrib/CMSISNN.cmake
index 4bd0fd8..50a3464 100644
--- a/cmake/modules/contrib/CMSISNN.cmake
+++ b/cmake/modules/contrib/CMSISNN.cmake
@@ -17,6 +17,6 @@
if(USE_CMSISNN)
message(STATUS "Build with CMSIS-NN support")
- file(GLOB RELAY_CONTRIB_CMSISNN_SRCS src/relay/backend/contrib/cmsisnn/*.cc)
+ tvm_file_glob(GLOB RELAY_CONTRIB_CMSISNN_SRCS src/relay/backend/contrib/cmsisnn/*.cc)
list(APPEND COMPILER_SRCS ${RELAY_CONTRIB_CMSISNN_SRCS})
endif(USE_CMSISNN)
diff --git a/cmake/modules/contrib/CODEGENC.cmake b/cmake/modules/contrib/CODEGENC.cmake
index bb53621..275c325 100644
--- a/cmake/modules/contrib/CODEGENC.cmake
+++ b/cmake/modules/contrib/CODEGENC.cmake
@@ -15,6 +15,6 @@
# specific language governing permissions and limitations
# under the License.
-file(GLOB CSOURCE_RELAY_CONTRIB_SRC src/relay/backend/contrib/codegen_c/codegen.cc)
+tvm_file_glob(GLOB CSOURCE_RELAY_CONTRIB_SRC src/relay/backend/contrib/codegen_c/codegen.cc)
list(APPEND COMPILER_SRCS ${CSOURCE_RELAY_CONTRIB_SRC})
diff --git a/cmake/modules/contrib/CUTLASS.cmake b/cmake/modules/contrib/CUTLASS.cmake
index 10309f0..afd5ef5 100644
--- a/cmake/modules/contrib/CUTLASS.cmake
+++ b/cmake/modules/contrib/CUTLASS.cmake
@@ -16,7 +16,7 @@
# under the License.
if(USE_CUDA AND USE_CUTLASS)
- file(GLOB CUTLASS_RELAY_CONTRIB_SRC src/relay/backend/contrib/cutlass/*.cc)
+ tvm_file_glob(GLOB CUTLASS_RELAY_CONTRIB_SRC src/relay/backend/contrib/cutlass/*.cc)
list(APPEND COMPILER_SRCS ${CUTLASS_RELAY_CONTRIB_SRC})
message(STATUS "Build with CUTLASS")
diff --git a/cmake/modules/contrib/CoreML.cmake b/cmake/modules/contrib/CoreML.cmake
index a61e9f6..c530d86 100644
--- a/cmake/modules/contrib/CoreML.cmake
+++ b/cmake/modules/contrib/CoreML.cmake
@@ -19,7 +19,7 @@ if(USE_COREML)
message(STATUS "Build with contrib.coreml")
find_library(FOUNDATION_LIB Foundation)
find_library(COREML_LIB Coreml)
- file(GLOB COREML_CONTRIB_SRC src/runtime/contrib/coreml/*.mm)
+ tvm_file_glob(GLOB COREML_CONTRIB_SRC src/runtime/contrib/coreml/*.mm)
list(APPEND TVM_RUNTIME_LINKER_LIBS ${FOUNDATION_LIB} ${COREML_LIB})
list(APPEND RUNTIME_SRCS ${COREML_CONTRIB_SRC})
endif(USE_COREML)
diff --git a/cmake/modules/contrib/DNNL.cmake b/cmake/modules/contrib/DNNL.cmake
index 85a6bea..9e36f39 100644
--- a/cmake/modules/contrib/DNNL.cmake
+++ b/cmake/modules/contrib/DNNL.cmake
@@ -17,22 +17,22 @@
if((USE_DNNL_CODEGEN STREQUAL "ON") OR (USE_DNNL_CODEGEN STREQUAL "JSON"))
add_definitions(-DUSE_JSON_RUNTIME=1)
- file(GLOB DNNL_RELAY_CONTRIB_SRC src/relay/backend/contrib/dnnl/*.cc)
+ tvm_file_glob(GLOB DNNL_RELAY_CONTRIB_SRC src/relay/backend/contrib/dnnl/*.cc)
list(APPEND COMPILER_SRCS ${DNNL_RELAY_CONTRIB_SRC})
list(APPEND COMPILER_SRCS ${JSON_RELAY_CONTRIB_SRC})
find_library(EXTERN_LIBRARY_DNNL dnnl)
list(APPEND TVM_RUNTIME_LINKER_LIBS ${EXTERN_LIBRARY_DNNL})
- file(GLOB DNNL_CONTRIB_SRC src/runtime/contrib/dnnl/dnnl_json_runtime.cc)
+ tvm_file_glob(GLOB DNNL_CONTRIB_SRC src/runtime/contrib/dnnl/dnnl_json_runtime.cc)
list(APPEND RUNTIME_SRCS ${DNNL_CONTRIB_SRC})
message(STATUS "Build with DNNL JSON runtime: " ${EXTERN_LIBRARY_DNNL})
elseif(USE_DNNL_CODEGEN STREQUAL "C_SRC")
- file(GLOB DNNL_RELAY_CONTRIB_SRC src/relay/backend/contrib/dnnl/*.cc)
+ tvm_file_glob(GLOB DNNL_RELAY_CONTRIB_SRC src/relay/backend/contrib/dnnl/*.cc)
list(APPEND COMPILER_SRCS ${DNNL_RELAY_CONTRIB_SRC})
find_library(EXTERN_LIBRARY_DNNL dnnl)
list(APPEND TVM_RUNTIME_LINKER_LIBS ${EXTERN_LIBRARY_DNNL})
- file(GLOB DNNL_CONTRIB_SRC src/runtime/contrib/dnnl/dnnl.cc)
+ tvm_file_glob(GLOB DNNL_CONTRIB_SRC src/runtime/contrib/dnnl/dnnl.cc)
list(APPEND RUNTIME_SRCS ${DNNL_CONTRIB_SRC})
message(STATUS "Build with DNNL C source module: " ${EXTERN_LIBRARY_DNNL})
endif()
diff --git a/cmake/modules/contrib/EthosN.cmake b/cmake/modules/contrib/EthosN.cmake
index cc4d836..244f461 100644
--- a/cmake/modules/contrib/EthosN.cmake
+++ b/cmake/modules/contrib/EthosN.cmake
@@ -29,13 +29,13 @@ if(NOT USE_ETHOSN STREQUAL "OFF")
message(STATUS "Build with Arm(R) Ethos(TM)-N ${ETHOSN_PACKAGE_VERSION}")
- file(GLOB ETHOSN_RUNTIME_CONTRIB_SRC
- CONFIGURE_DEPENDS src/runtime/contrib/ethosn/ethosn_runtime.cc
- CONFIGURE_DEPENDS src/runtime/contrib/ethosn/ethosn_device.cc)
+ tvm_file_glob(GLOB ETHOSN_RUNTIME_CONTRIB_SRC
+ src/runtime/contrib/ethosn/ethosn_runtime.cc
+ src/runtime/contrib/ethosn/ethosn_device.cc)
list(APPEND RUNTIME_SRCS ${ETHOSN_RUNTIME_CONTRIB_SRC})
- file(GLOB COMPILER_ETHOSN_SRCS
- CONFIGURE_DEPENDS src/relay/backend/contrib/ethosn/*)
+ tvm_file_glob(GLOB COMPILER_ETHOSN_SRCS
+ src/relay/backend/contrib/ethosn/*)
list(APPEND COMPILER_SRCS ${COMPILER_ETHOSN_SRCS})
list(APPEND TVM_LINKER_LIBS ${ETHOSN_COMPILER_LIBRARY}
diff --git a/cmake/modules/contrib/EthosU.cmake b/cmake/modules/contrib/EthosU.cmake
index f437975..7af7b48 100644
--- a/cmake/modules/contrib/EthosU.cmake
+++ b/cmake/modules/contrib/EthosU.cmake
@@ -16,14 +16,14 @@
# under the License.
if(USE_ETHOSU)
- file(GLOB COMPILER_ETHOSU_SRCS
- CONFIGURE_DEPENDS src/relay/backend/contrib/ethosu/*
- CONFIGURE_DEPENDS src/contrib/ethosu/cascader/*)
+ tvm_file_glob(GLOB COMPILER_ETHOSU_SRCS
+ src/relay/backend/contrib/ethosu/*
+ src/contrib/ethosu/cascader/*)
list(APPEND COMPILER_SRCS ${COMPILER_ETHOSU_SRCS})
else()
# Keeping just utils.cc because it has Object definitions
# used by python side
- file(GLOB COMPILER_ETHOSU_SRCS
- CONFIGURE_DEPENDS src/relay/backend/contrib/ethosu/utils.cc)
+ tvm_file_glob(GLOB COMPILER_ETHOSU_SRCS
+ src/relay/backend/contrib/ethosu/utils.cc)
list(APPEND COMPILER_SRCS ${COMPILER_ETHOSU_SRCS})
-endif(USE_ETHOSU)
\ No newline at end of file
+endif(USE_ETHOSU)
diff --git a/cmake/modules/contrib/ExampleTargetHooks.cmake b/cmake/modules/contrib/ExampleTargetHooks.cmake
index e9003b0..8803572 100644
--- a/cmake/modules/contrib/ExampleTargetHooks.cmake
+++ b/cmake/modules/contrib/ExampleTargetHooks.cmake
@@ -15,5 +15,5 @@
# specific language governing permissions and limitations
# under the License.
-file(GLOB EXAMPLE_TARGET_HOOKS_SRC src/relay/backend/contrib/example_target_hooks/*.cc)
+tvm_file_glob(GLOB EXAMPLE_TARGET_HOOKS_SRC src/relay/backend/contrib/example_target_hooks/*.cc)
list(APPEND COMPILER_SRCS ${EXAMPLE_TARGET_HOOKS_SRC})
diff --git a/cmake/modules/contrib/HybridDump.cmake b/cmake/modules/contrib/HybridDump.cmake
index f8de20a..156325d 100644
--- a/cmake/modules/contrib/HybridDump.cmake
+++ b/cmake/modules/contrib/HybridDump.cmake
@@ -16,5 +16,5 @@
# under the License.
message(STATUS "Build with contrib.hybriddump")
-file(GLOB HYBRID_CONTRIB_SRC src/contrib/hybrid/*.cc)
+tvm_file_glob(GLOB HYBRID_CONTRIB_SRC src/contrib/hybrid/*.cc)
list(APPEND COMPILER_SRCS ${HYBRID_CONTRIB_SRC})
diff --git a/cmake/modules/contrib/MicroStandaloneRuntime.cmake b/cmake/modules/contrib/MicroStandaloneRuntime.cmake
index 221ab32..4bf3545 100644
--- a/cmake/modules/contrib/MicroStandaloneRuntime.cmake
+++ b/cmake/modules/contrib/MicroStandaloneRuntime.cmake
@@ -17,7 +17,7 @@
if(USE_MICRO_STANDALONE_RUNTIME)
message(STATUS "Build with micro.standalone_runtime")
- file(GLOB MICRO_STANDALONE_RUNTIME_SRC src/runtime/micro/standalone/*.cc)
+ tvm_file_glob(GLOB MICRO_STANDALONE_RUNTIME_SRC src/runtime/micro/standalone/*.cc)
list(APPEND RUNTIME_SRCS ${MICRO_STANDALONE_RUNTIME_SRC})
add_definitions(-DUSE_MICRO_STANDALONE_RUNTIME=1)
endif(USE_MICRO_STANDALONE_RUNTIME)
diff --git a/cmake/modules/contrib/NNPack.cmake b/cmake/modules/contrib/NNPack.cmake
index 46693fc..7030333 100644
--- a/cmake/modules/contrib/NNPack.cmake
+++ b/cmake/modules/contrib/NNPack.cmake
@@ -20,7 +20,7 @@ if(USE_NNPACK)
set(NNPACK_PATH ${CMAKE_CURRENT_SOURCE_DIR}/NNPack)
endif()
set(PTHREAD_POOL_PATH ${NNPACK_PATH}/deps/pthreadpool)
- file(GLOB NNPACK_CONTRIB_SRC src/runtime/contrib/nnpack/*.cc)
+ tvm_file_glob(GLOB NNPACK_CONTRIB_SRC src/runtime/contrib/nnpack/*.cc)
list(APPEND RUNTIME_SRCS ${NNPACK_CONTRIB_SRC})
include_directories(${NNPACK_PATH}/include)
include_directories(${PTHREAD_POOL_PATH}/include)
diff --git a/cmake/modules/contrib/ONNX.cmake b/cmake/modules/contrib/ONNX.cmake
index 2462980..55405f3 100644
--- a/cmake/modules/contrib/ONNX.cmake
+++ b/cmake/modules/contrib/ONNX.cmake
@@ -17,6 +17,6 @@
if(USE_TARGET_ONNX)
message(STATUS "Build with contrib.codegen_onnx")
- file(GLOB ONNX_CONTRIB_SRC src/runtime/contrib/onnx/onnx_module.cc)
+ tvm_file_glob(GLOB ONNX_CONTRIB_SRC src/runtime/contrib/onnx/onnx_module.cc)
list(APPEND RUNTIME_SRCS ${ONNX_CONTRIB_SRC})
endif(USE_TARGET_ONNX)
diff --git a/cmake/modules/contrib/PT_TVMDSOOP.cmake b/cmake/modules/contrib/PT_TVMDSOOP.cmake
index 7ff8869..4e228c9 100644
--- a/cmake/modules/contrib/PT_TVMDSOOP.cmake
+++ b/cmake/modules/contrib/PT_TVMDSOOP.cmake
@@ -44,7 +44,7 @@ if(NOT USE_PT_TVMDSOOP STREQUAL "OFF")
set(LIBRARY_NAME pt_tvmdsoop)
- file(GLOB_RECURSE PTTVM_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/src/contrib/torch/**/*.cc)
+ tvm_file_glob(GLOB_RECURSE PTTVM_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/src/contrib/torch/**/*.cc)
add_library(${LIBRARY_NAME} SHARED ${PTTVM_SRCS})
set(PTTVM_LINK_FLAGS -ltvm -L${CMAKE_CURRENT_BINARY_DIR})
diff --git a/cmake/modules/contrib/Random.cmake b/cmake/modules/contrib/Random.cmake
index dae2807..a003de1 100644
--- a/cmake/modules/contrib/Random.cmake
+++ b/cmake/modules/contrib/Random.cmake
@@ -17,6 +17,6 @@
if(USE_RANDOM)
message(STATUS "Build with contrib.random")
- file(GLOB RANDOM_CONTRIB_SRC src/runtime/contrib/random/random.cc)
+ tvm_file_glob(GLOB RANDOM_CONTRIB_SRC src/runtime/contrib/random/random.cc)
list(APPEND RUNTIME_SRCS ${RANDOM_CONTRIB_SRC})
endif(USE_RANDOM)
diff --git a/cmake/modules/contrib/Sort.cmake b/cmake/modules/contrib/Sort.cmake
index 5537e48..4e4c978 100644
--- a/cmake/modules/contrib/Sort.cmake
+++ b/cmake/modules/contrib/Sort.cmake
@@ -17,6 +17,6 @@
if(USE_SORT)
message(STATUS "Build with contrib.sort")
- file(GLOB SORT_CONTRIB_SRC src/runtime/contrib/sort/*.cc)
+ tvm_file_glob(GLOB SORT_CONTRIB_SRC src/runtime/contrib/sort/*.cc)
list(APPEND RUNTIME_SRCS ${SORT_CONTRIB_SRC})
endif(USE_SORT)
diff --git a/cmake/modules/contrib/TFLite.cmake b/cmake/modules/contrib/TFLite.cmake
index c16a76d..3159710 100644
--- a/cmake/modules/contrib/TFLite.cmake
+++ b/cmake/modules/contrib/TFLite.cmake
@@ -21,14 +21,14 @@ if(NOT USE_TFLITE STREQUAL "OFF")
set(USE_TENSORFLOW_PATH ${CMAKE_CURRENT_SOURCE_DIR}/tensorflow)
endif()
- file(GLOB TFLITE_CONTRIB_SRC src/runtime/contrib/tflite/*.cc)
+ tvm_file_glob(GLOB TFLITE_CONTRIB_SRC src/runtime/contrib/tflite/*.cc)
list(APPEND RUNTIME_SRCS ${TFLITE_CONTRIB_SRC})
include_directories(${USE_TENSORFLOW_PATH})
# Additional EdgeTPU libs
if (NOT USE_EDGETPU STREQUAL "OFF")
message(STATUS "Build with contrib.edgetpu")
- file(GLOB EDGETPU_CONTRIB_SRC src/runtime/contrib/edgetpu/*.cc)
+ tvm_file_glob(GLOB EDGETPU_CONTRIB_SRC src/runtime/contrib/edgetpu/*.cc)
list(APPEND RUNTIME_SRCS ${EDGETPU_CONTRIB_SRC})
include_directories(${USE_EDGETPU}/libedgetpu)
list(APPEND TVM_RUNTIME_LINKER_LIBS ${USE_EDGETPU}/libedgetpu/direct/aarch64/libedgetpu.so.1)
diff --git a/cmake/modules/contrib/TF_TVMDSOOP.cmake b/cmake/modules/contrib/TF_TVMDSOOP.cmake
index 1509e83..86b1474 100644
--- a/cmake/modules/contrib/TF_TVMDSOOP.cmake
+++ b/cmake/modules/contrib/TF_TVMDSOOP.cmake
@@ -42,7 +42,7 @@ if(NOT USE_TF_TVMDSOOP STREQUAL "OFF")
set(OP_LIBRARY_NAME tvm_dso_op)
- file(GLOB_RECURSE TFTVM_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/src/contrib/tf_op/*.cc)
+ tvm_file_glob(GLOB_RECURSE TFTVM_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/src/contrib/tf_op/*.cc)
add_library(${OP_LIBRARY_NAME} SHARED ${TFTVM_SRCS})
set(TFTVM_LINK_FLAGS -ltvm -L${CMAKE_CURRENT_BINARY_DIR})
diff --git a/cmake/modules/contrib/TensorRT.cmake b/cmake/modules/contrib/TensorRT.cmake
index 218f0b2..696108b 100644
--- a/cmake/modules/contrib/TensorRT.cmake
+++ b/cmake/modules/contrib/TensorRT.cmake
@@ -23,9 +23,9 @@ include (FindPackageHandleStandardArgs)
if(USE_TENSORRT_CODEGEN)
message(STATUS "Build with TensorRT codegen")
- file(GLOB COMPILER_TENSORRT_SRCS src/relay/backend/contrib/tensorrt/*.cc)
+ tvm_file_glob(GLOB COMPILER_TENSORRT_SRCS src/relay/backend/contrib/tensorrt/*.cc)
set_source_files_properties(${COMPILER_TENSORRT_SRCS} PROPERTIES COMPILE_FLAGS "-Wno-deprecated-declarations")
- file(GLOB RUNTIME_TENSORRT_SRCS src/runtime/contrib/tensorrt/tensorrt_runtime.cc)
+ tvm_file_glob(GLOB RUNTIME_TENSORRT_SRCS src/runtime/contrib/tensorrt/tensorrt_runtime.cc)
set_source_files_properties(${RUNTIME_TENSORRT_SRCS} PROPERTIES COMPILE_FLAGS "-Wno-deprecated-declarations")
list(APPEND COMPILER_SRCS ${COMPILER_TENSORRT_SRCS})
if(NOT USE_TENSORRT_RUNTIME)
@@ -50,7 +50,7 @@ if(USE_TENSORRT_RUNTIME)
list(APPEND TVM_RUNTIME_LINKER_LIBS ${TENSORRT_LIB_DIR})
# TRT runtime sources
- file(GLOB RUNTIME_TENSORRT_SRCS src/runtime/contrib/tensorrt/*.cc)
+ tvm_file_glob(GLOB RUNTIME_TENSORRT_SRCS src/runtime/contrib/tensorrt/*.cc)
set_source_files_properties(${RUNTIME_TENSORRT_SRCS} PROPERTIES COMPILE_FLAGS "-Wno-deprecated-declarations")
list(APPEND RUNTIME_SRCS ${RUNTIME_TENSORRT_SRCS})
diff --git a/cmake/modules/contrib/Verilator.cmake b/cmake/modules/contrib/Verilator.cmake
index 4947d44..e74e582 100644
--- a/cmake/modules/contrib/Verilator.cmake
+++ b/cmake/modules/contrib/Verilator.cmake
@@ -16,8 +16,8 @@
# under the License.
if(USE_VERILATOR STREQUAL "ON")
- file(GLOB VERILATOR_RELAY_CONTRIB_SRC src/relay/backend/contrib/verilator/codegen.cc)
- file(GLOB VERILATOR_CONTRIB_SRC src/runtime/contrib/verilator/verilator_runtime.cc)
+ tvm_file_glob(GLOB VERILATOR_RELAY_CONTRIB_SRC src/relay/backend/contrib/verilator/codegen.cc)
+ tvm_file_glob(GLOB VERILATOR_CONTRIB_SRC src/runtime/contrib/verilator/verilator_runtime.cc)
list(APPEND COMPILER_SRCS ${VERILATOR_RELAY_CONTRIB_SRC})
list(APPEND RUNTIME_SRCS ${VERILATOR_CONTRIB_SRC})
endif()
diff --git a/cmake/modules/contrib/VitisAI.cmake b/cmake/modules/contrib/VitisAI.cmake
index 083bd6d..282e196 100644
--- a/cmake/modules/contrib/VitisAI.cmake
+++ b/cmake/modules/contrib/VitisAI.cmake
@@ -36,10 +36,10 @@ if(USE_VITIS_AI)
message(FATAL_ERROR "Can't build TVM with Vitis-AI because PyXIR can't be found")
endif()
message(STATUS "Build with contrib.vitisai")
- include_directories(${PYXIR_INCLUDE_DIR})
- file(GLOB VAI_CONTRIB_SRC src/runtime/contrib/vitis_ai/*.cc)
- file(GLOB COMPILER_VITIS_AI_SRCS
- CONFIGURE_DEPENDS src/relay/backend/contrib/vitis_ai/*)
+ include_directories(${PYXIR_INCLUDE_DIR})
+ tvm_file_glob(GLOB VAI_CONTRIB_SRC src/runtime/contrib/vitis_ai/*.cc)
+ tvm_file_glob(GLOB COMPILER_VITIS_AI_SRCS
+ src/relay/backend/contrib/vitis_ai/*)
list(APPEND COMPILER_SRCS ${COMPILER_VITIS_AI_SRCS})
link_directories(${PYXIR_LIB_DIR})
list(APPEND TVM_RUNTIME_LINKER_LIBS "pyxir")
diff --git a/cmake/utils/Utils.cmake b/cmake/utils/Utils.cmake
index cb3345a..3267d61 100644
--- a/cmake/utils/Utils.cmake
+++ b/cmake/utils/Utils.cmake
@@ -100,3 +100,21 @@ set(MICROTVM_TEMPLATE_PROJECTS "${CMAKE_CURRENT_BINARY_DIR}/microtvm_template_pr
# cmake's regex is weak
set(IS_FALSE_PATTERN "^[Oo][Ff][Ff]$|^0$|^[Ff][Aa][Ll][Ss][Ee]$|^[Nn][Oo]$|^[Nn][Oo][Tt][Ff][Oo][Uu][Nn][Dd]$|.*-[Nn][Oo][Tt][Ff][Oo][Uu][Nn][Dd]$|^$")
set(IS_TRUE_PATTERN "^[Oo][Nn]$|^[1-9][0-9]*$|^[Tt][Rr][Uu][Ee]$|^[Yy][Ee][Ss]$|^[Yy]$")
+
+# Custom file() macro that automatically uses CONFIGURE_DEPENDS if cmake
+# supports it. CONFIGURE_DEPENDS scans the globbed directories on each build to
+# check if any files have been added/removed. This has a small build overhead,
+# but ensures that you don't manually have to rerun cmake if files were added.
+# The macro should be used like so:
+# tvm_file_glob(GLOB VARIABLE_NAME dir/*.cc dir/*c)
+# or
+# tvm_file_glob(GLOB_RECURSE VARIABLE_NAME dir/*/*.cc)
+if(${CMAKE_VERSION} VERSION_GREATER_EQUAL "3.12.0")
+ macro(tvm_file_glob glob variable)
+ file(${glob} ${variable} CONFIGURE_DEPENDS ${ARGN})
+ endmacro()
+else()
+ macro(tvm_file_glob)
+ file(${glob} ${variable} ${ARGN})
+ endmacro()
+endif()
diff --git a/src/runtime/hexagon/android/sim/driver/CMakeLists.txt b/src/runtime/hexagon/android/sim/driver/CMakeLists.txt
index ddcec91..8b57cec 100644
--- a/src/runtime/hexagon/android/sim/driver/CMakeLists.txt
+++ b/src/runtime/hexagon/android/sim/driver/CMakeLists.txt
@@ -56,7 +56,7 @@ set(CMAKE_EXE_LINKER_FLAGS "${EXTRA_LINK_FLAGS_STR} ${CMAKE_EXE_LINKER_FLAGS}")
# Set project properties.
-file(GLOB SOURCE_FILES "*.cc")
+tvm_file_glob(GLOB SOURCE_FILES "*.cc")
add_executable(sim_dev ${SOURCE_FILES})
target_include_directories(sim_dev
PUBLIC "."