Skip to content
Snippets Groups Projects
Commit 86ac68e6 authored by Erik Strand's avatar Erik Strand
Browse files

Remove VISUALIZE def

parent cdacf1a3
Branches cleanup
No related tags found
No related merge requests found
......@@ -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()
......@@ -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)
......
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)
#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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment