From 86ac68e67e24e8b5120173571a76d0aead232fa5 Mon Sep 17 00:00:00 2001
From: Erik Strand <erik.strand@cba.mit.edu>
Date: Thu, 16 Apr 2020 23:13:56 -0400
Subject: [PATCH] Remove VISUALIZE def

---
 CMakeLists.txt                | 11 +---------
 cmake/make_plot_target.cmake  | 40 +++++++++++++++++------------------
 optimization/CMakeLists.txt   |  7 +-----
 optimization/utils/vis_only.h | 24 ---------------------
 4 files changed, 21 insertions(+), 61 deletions(-)
 delete mode 100644 optimization/utils/vis_only.h

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8f51bdc..9f9fe5a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -7,13 +7,6 @@ endif()
 message(STATUS "Build type: ${CMAKE_BUILD_TYPE}")
 message(STATUS "C++ compiler: ${CMAKE_CXX_COMPILER}")
 
-option(VISUALIZE "compiles extra code to allow visualization of optimization algorithms" ON)
-if (VISUALIZE)
-    message(STATUS "Visualization tools enabled")
-else()
-    message(STATUS "Visualization tools disabled")
-endif()
-
 find_package (Eigen3 3.3 REQUIRED NO_MODULE)
 include(cmake/shared_settings.cmake)
 include(cmake/make_plot_target.cmake)
@@ -23,6 +16,4 @@ add_subdirectory(optimization)
 add_subdirectory(test)
 add_subdirectory(apps)
 
-if (VISUALIZE)
-    make_meta_plot_target()
-endif()
+make_meta_plot_target()
diff --git a/cmake/make_plot_target.cmake b/cmake/make_plot_target.cmake
index c5fc5a2..6659173 100644
--- a/cmake/make_plot_target.cmake
+++ b/cmake/make_plot_target.cmake
@@ -3,30 +3,28 @@
 # TODO Enable arguments to be passed to the C++ executable
 function(make_plot_target TARGET ID)
     cmake_parse_arguments(PLOT "" "" "ARGS" ${ARGN})
-    if (VISUALIZE)
-        add_custom_command(
-            OUTPUT ${TARGET}_log_${ID}.json ${TARGET}_vis_${ID}.json
-            COMMAND ${TARGET} ${TARGET}_log_${ID}.json ${TARGET}_vis_${ID}.json ${PLOT_ARGS}
-            WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
-            DEPENDS ${TARGET}
-        )
+    add_custom_command(
+        OUTPUT ${TARGET}_log_${ID}.json ${TARGET}_vis_${ID}.json
+        COMMAND ${TARGET} ${TARGET}_log_${ID}.json ${TARGET}_vis_${ID}.json ${PLOT_ARGS}
+        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+        DEPENDS ${TARGET}
+    )
 
-        add_custom_command(
-            OUTPUT ${TARGET}_plot_${ID}.pdf
-            COMMAND python3 ${CMAKE_SOURCE_DIR}/apps/plots.py ${TARGET}_vis_${ID}.json ${TARGET}_plot_${ID}.pdf
-            WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
-            DEPENDS ${CMAKE_SOURCE_DIR}/apps/plots.py ${TARGET}_vis_${ID}.json
-        )
+    add_custom_command(
+        OUTPUT ${TARGET}_plot_${ID}.pdf
+        COMMAND python3 ${CMAKE_SOURCE_DIR}/apps/plots.py ${TARGET}_vis_${ID}.json ${TARGET}_plot_${ID}.pdf
+        WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+        DEPENDS ${CMAKE_SOURCE_DIR}/apps/plots.py ${TARGET}_vis_${ID}.json
+    )
 
-        add_custom_target(${TARGET}_plot_${ID}
-            DEPENDS ${TARGET}_plot_${ID}.pdf
-        )
+    add_custom_target(${TARGET}_plot_${ID}
+        DEPENDS ${TARGET}_plot_${ID}.pdf
+    )
 
-        #message(STATUS "another one")
-        #list(APPEND PLOT_TARGETS ${TARGET}_plot_${ID})
-        #set(PLOT_TARGETS ${PLOT_TARGETS} PARENT_SCOPE)
-        #message(STATUS ${PLOT_TARGETS})
-    endif()
+    #message(STATUS "another one")
+    #list(APPEND PLOT_TARGETS ${TARGET}_plot_${ID})
+    #set(PLOT_TARGETS ${PLOT_TARGETS} PARENT_SCOPE)
+    #message(STATUS ${PLOT_TARGETS})
 endfunction()
 
 function(make_meta_plot_target)
diff --git a/optimization/CMakeLists.txt b/optimization/CMakeLists.txt
index a35d766..7882754 100644
--- a/optimization/CMakeLists.txt
+++ b/optimization/CMakeLists.txt
@@ -1,10 +1,5 @@
 add_library(optimization_lib INTERFACE)
 target_include_directories(optimization_lib INTERFACE ${CMAKE_CURRENT_SOURCE_DIR})
-target_link_libraries(optimization_lib INTERFACE shared_settings Eigen3::Eigen)
-
-if (VISUALIZE)
-    target_compile_definitions(optimization_lib INTERFACE VISUALIZE)
-endif()
-target_link_libraries(optimization_lib INTERFACE cma-es json)
+target_link_libraries(optimization_lib INTERFACE shared_settings Eigen3::Eigen cma-es json)
 
 add_subdirectory(optimizers)
diff --git a/optimization/utils/vis_only.h b/optimization/utils/vis_only.h
deleted file mode 100644
index 16505ac..0000000
--- a/optimization/utils/vis_only.h
+++ /dev/null
@@ -1,24 +0,0 @@
-#ifndef OPTIMIZATION_UTILS_VIS_ONLY_H
-#define OPTIMIZATION_UTILS_VIS_ONLY_H
-
-//--------------------------------------------------------------------------------------------------
-// Only calls the specified statement if we're compiling with visualization code.
-#ifdef VISUALIZE
-#define VIS_ONLY(X) X
-#else
-// The "do while" ensures this looks like a function call (i.e. should have a semicolon). The
-// "if(0)" ensures that the call is parsed even if it will be optimized away. This helps prevent
-// code rot when vis methods are ignored for long periods of time.
-#define VIS_ONLY(X) do { if (0) { X } } while(0)
-#endif
-
-//--------------------------------------------------------------------------------------------------
-// Makes a method no-op if we're not compiling with visualization code. Used like "void vis_method()
-// VIS_ONLY_METHOD;". When we are compiling with vis code, a definition should follow out of line.
-#ifdef VISUALIZE
-#define VIS_ONLY_METHOD
-#else
-#define VIS_ONLY_METHOD {}
-#endif
-
-#endif
-- 
GitLab