From 4ac236eebaf124b3a00b7c063a0f9d82bf1a466f Mon Sep 17 00:00:00 2001
From: Markus Pilman <markus.pilman@snowflake.com>
Date: Mon, 27 Jun 2022 19:20:18 -0600
Subject: [PATCH] fdbcli compiling

---
 contrib/CMakeLists.txt                        |  1 +
 contrib/linenoise/CMakeLists.txt              |  2 +
 .../linenoise/include}/linenoise/linenoise.h  |  0
 {fdbcli => contrib}/linenoise/linenoise.c     |  2 +-
 fdbcli/CMakeLists.txt                         | 45 +++----------------
 fdbcli/FlowLineNoise.actor.cpp                |  2 +-
 fdbcli/fdbcli.actor.cpp                       |  2 +-
 fdbcli/{ => include/fdbcli}/FlowLineNoise.h   |  0
 fdbcli/{ => include/fdbcli}/fdbcli.actor.h    |  0
 9 files changed, 13 insertions(+), 41 deletions(-)
 create mode 100644 contrib/linenoise/CMakeLists.txt
 rename {fdbcli => contrib/linenoise/include}/linenoise/linenoise.h (100%)
 rename {fdbcli => contrib}/linenoise/linenoise.c (99%)
 rename fdbcli/{ => include/fdbcli}/FlowLineNoise.h (100%)
 rename fdbcli/{ => include/fdbcli}/fdbcli.actor.h (100%)

diff --git a/contrib/CMakeLists.txt b/contrib/CMakeLists.txt
index 1f47d60369..b66780d09a 100644
--- a/contrib/CMakeLists.txt
+++ b/contrib/CMakeLists.txt
@@ -8,6 +8,7 @@ add_subdirectory(sqlite)
 add_subdirectory(SimpleOpt)
 add_subdirectory(fmt-8.1.1)
 if(NOT WIN32)
+  add_subdirectory(linenoise)
   add_subdirectory(debug_determinism)
   add_subdirectory(monitoring)
   add_subdirectory(TraceLogHelper)
diff --git a/contrib/linenoise/CMakeLists.txt b/contrib/linenoise/CMakeLists.txt
new file mode 100644
index 0000000000..52487a6f22
--- /dev/null
+++ b/contrib/linenoise/CMakeLists.txt
@@ -0,0 +1,2 @@
+add_library(linenoise STATIC linenoise.c)
+target_include_directories(linenoise PUBLIC "${CMAKE_CURRENT_SOURCE_DIR}/include")
diff --git a/fdbcli/linenoise/linenoise.h b/contrib/linenoise/include/linenoise/linenoise.h
similarity index 100%
rename from fdbcli/linenoise/linenoise.h
rename to contrib/linenoise/include/linenoise/linenoise.h
diff --git a/fdbcli/linenoise/linenoise.c b/contrib/linenoise/linenoise.c
similarity index 99%
rename from fdbcli/linenoise/linenoise.c
rename to contrib/linenoise/linenoise.c
index df0bcb10c7..df2b3b0e72 100644
--- a/fdbcli/linenoise/linenoise.c
+++ b/contrib/linenoise/linenoise.c
@@ -115,7 +115,7 @@
 #include <sys/types.h>
 #include <sys/ioctl.h>
 #include <unistd.h>
-#include "linenoise.h"
+#include "linenoise/linenoise.h"
 
 #define LINENOISE_DEFAULT_HISTORY_MAX_LEN 100
 #define LINENOISE_MAX_LINE 4096
diff --git a/fdbcli/CMakeLists.txt b/fdbcli/CMakeLists.txt
index 00d37067e0..aff53b1f63 100644
--- a/fdbcli/CMakeLists.txt
+++ b/fdbcli/CMakeLists.txt
@@ -1,43 +1,12 @@
-set(FDBCLI_SRCS
-  fdbcli.actor.cpp
-  fdbcli.actor.h
-  AdvanceVersionCommand.actor.cpp
-  BlobRangeCommand.actor.cpp
-  CacheRangeCommand.actor.cpp
-  ConfigureCommand.actor.cpp
-  ConsistencyCheckCommand.actor.cpp
-  CoordinatorsCommand.actor.cpp
-  DataDistributionCommand.actor.cpp
-  ExcludeCommand.actor.cpp
-  ExpensiveDataCheckCommand.actor.cpp
-  FileConfigureCommand.actor.cpp
-  FlowLineNoise.actor.cpp
-  FlowLineNoise.h
-  ForceRecoveryWithDataLossCommand.actor.cpp
-  IncludeCommand.actor.cpp
-  KillCommand.actor.cpp
-  LockCommand.actor.cpp
-  ChangeFeedCommand.actor.cpp
-  MaintenanceCommand.actor.cpp
-  ProfileCommand.actor.cpp
-  SetClassCommand.actor.cpp
-  SnapshotCommand.actor.cpp
-  StatusCommand.actor.cpp
-  SuspendCommand.actor.cpp
-  TenantCommands.actor.cpp
-  ThrottleCommand.actor.cpp
-  TriggerDDTeamInfoLogCommand.actor.cpp
-  TssqCommand.actor.cpp
-  Util.actor.cpp
-  VersionEpochCommand.actor.cpp
-  linenoise/linenoise.h)
-
-if(NOT WIN32)
-  list(APPEND FDBCLI_SRCS linenoise/linenoise.c)
-endif()
+fdb_find_sources(FDBCLI_SRCS)
 
 add_flow_target(EXECUTABLE NAME fdbcli SRCS ${FDBCLI_SRCS})
-target_link_libraries(fdbcli PRIVATE fdbclient)
+target_include_directories(fdbcli PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}/include" "${CMAKE_CURRENT_BINARY_DIR}/include")
+target_link_libraries(fdbcli PRIVATE fdbclient SimpleOpt)
+
+if(NOT WIN32)
+  target_link_libraries(fdbcli PRIVATE linenoise)
+endif()
 
 if(NOT OPEN_FOR_IDE)
   if(GENERATE_DEBUG_PACKAGES)
diff --git a/fdbcli/FlowLineNoise.actor.cpp b/fdbcli/FlowLineNoise.actor.cpp
index 1029de30b4..7d4dd9d1e9 100644
--- a/fdbcli/FlowLineNoise.actor.cpp
+++ b/fdbcli/FlowLineNoise.actor.cpp
@@ -30,7 +30,7 @@
 
 #if __unixish__
 #define HAVE_LINENOISE 1
-#include "fdbcli/linenoise/linenoise.h"
+#include "linenoise/linenoise.h"
 #else
 #define HAVE_LINENOISE 0
 #endif
diff --git a/fdbcli/fdbcli.actor.cpp b/fdbcli/fdbcli.actor.cpp
index 4fa425dc25..b296d42739 100644
--- a/fdbcli/fdbcli.actor.cpp
+++ b/fdbcli/fdbcli.actor.cpp
@@ -63,7 +63,7 @@
 
 #ifdef __unixish__
 #include <stdio.h>
-#include "fdbcli/linenoise/linenoise.h"
+#include "linenoise/linenoise.h"
 #endif
 
 #include "fdbclient/versions.h"
diff --git a/fdbcli/FlowLineNoise.h b/fdbcli/include/fdbcli/FlowLineNoise.h
similarity index 100%
rename from fdbcli/FlowLineNoise.h
rename to fdbcli/include/fdbcli/FlowLineNoise.h
diff --git a/fdbcli/fdbcli.actor.h b/fdbcli/include/fdbcli/fdbcli.actor.h
similarity index 100%
rename from fdbcli/fdbcli.actor.h
rename to fdbcli/include/fdbcli/fdbcli.actor.h