diff --git a/llvm/tools/hpvm/CMakeLists.txt b/llvm/tools/hpvm/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..3ea7a4199b2556b83820e4d8711d95f11c318795
--- /dev/null
+++ b/llvm/tools/hpvm/CMakeLists.txt
@@ -0,0 +1 @@
+add_subdirectory(lib)
diff --git a/llvm/tools/hpvm/lib/CMakeLists.txt b/llvm/tools/hpvm/lib/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..e31af32661164a7b68a765a6eaff0af7797550d2
--- /dev/null
+++ b/llvm/tools/hpvm/lib/CMakeLists.txt
@@ -0,0 +1 @@
+add_subdirectory(Transforms)
diff --git a/llvm/tools/hpvm/lib/Transforms/CMakeLists.txt b/llvm/tools/hpvm/lib/Transforms/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..2983462d1eb028c49647accc9ac81a9ac5582f4d
--- /dev/null
+++ b/llvm/tools/hpvm/lib/Transforms/CMakeLists.txt
@@ -0,0 +1,7 @@
+add_subdirectory(BuildDFG)
+add_subdirectory(ClearDFG)
+add_subdirectory(DFG2LLVM_NVPTX)
+add_subdirectory(DFG2LLVM_SPIR)
+add_subdirectory(DFG2LLVM_X86)
+add_subdirectory(GenVISC)
+add_subdirectory(LocalMem)