Skip to content

Commit

Permalink
cmake simplifications
Browse files Browse the repository at this point in the history
  • Loading branch information
facontidavide committed Jun 13, 2021
1 parent f18ca4c commit c74f07b
Show file tree
Hide file tree
Showing 13 changed files with 99 additions and 200 deletions.
38 changes: 31 additions & 7 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -131,27 +131,43 @@ include_directories(
./3rdparty/liblsl/include
)

######################### BASE library ####################################

qt5_wrap_cpp(PLOTJUGGLER_BASE_MOCS
plotjuggler_base/include/PlotJuggler/dataloader_base.h
plotjuggler_base/include/PlotJuggler/datastreamer_base.h
plotjuggler_base/include/PlotJuggler/statepublisher_base.h
plotjuggler_base/include/PlotJuggler/transform_function.h
)

add_library( plotjuggler_plugin_base STATIC ${PLOTJUGGLER_BASE_MOCS} )

######################### INSTALL ####################################

if(COMPILING_WITH_CATKIN)

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_LIB_DESTINATION})
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_BIN_DESTINATION})
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CATKIN_DEVEL_PREFIX}/${CATKIN_PACKAGE_BIN_DESTINATION})
set(PJ_PLUGIN_INSTALL_DIRECTORY ${CATKIN_PACKAGE_BIN_DESTINATION} )

elseif(COMPILING_WITH_AMENT)

find_package(ament_cmake REQUIRED)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(PJ_PLUGIN_INSTALL_DIRECTORY lib/${PROJECT_NAME} )

ament_export_targets(export_plotjuggler_plugin_base HAS_LIBRARY_TARGET)
ament_package()

else()
set(CMAKE_INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX})

set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin)
set(PJ_PLUGIN_INSTALL_DIRECTORY bin)

endif()

set(DESKTOP_ICON_DIR "${CMAKE_INSTALL_PREFIX}/share/icons")
Expand All @@ -162,6 +178,16 @@ install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/PlotJuggler.desktop
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/plotjuggler.svg
DESTINATION ${DESKTOP_ICON_DIR} )

install(
TARGETS plotjuggler_plugin_base
EXPORT export_plotjuggler_plugin_base
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib
RUNTIME DESTINATION bin
INCLUDES DESTINATION include )

install(DIRECTORY plotjuggler_base/include/ DESTINATION include )

######################## Main App, Libraries amd Plugins ###################################

if (NOT WIN32)
Expand Down Expand Up @@ -203,20 +229,19 @@ if(EXISTS "${PROJECT_SOURCE_DIR}/3rdparty/paho.mqtt.c/CMakeLists.txt")

SET(CMAKE_INSTALL_INCLUDEDIR )

add_subdirectory( 3rdparty/paho.mqtt.c EXCLUDE_FROM_ALL)
add_subdirectory( plotjuggler_plugins/DataStreamMQTT )
#add_subdirectory( 3rdparty/paho.mqtt.c EXCLUDE_FROM_ALL)
#add_subdirectory( plotjuggler_plugins/DataStreamMQTT )
endif()

if(EXISTS "${PROJECT_SOURCE_DIR}/3rdparty/liblsl/CMakeLists.txt" AND NOT WIN32)
SET(LSL_ENABLE_TESTING FALSE CACHE BOOL "Build tests and run" FORCE)
SET(LSL_ENABLE_CPACK FALSE CACHE BOOL "Enable CPack" FORCE)
SET(LSL_BUILD_STATIC TRUE CACHE BOOL "Build static library" FORCE)
SET(LSL_BUILD_SHARED FALSE CACHE BOOL "Build shared library" FORCE)
add_subdirectory( 3rdparty/liblsl )
add_subdirectory( plotjuggler_plugins/DataStreamLSL )
#add_subdirectory( 3rdparty/liblsl )
#add_subdirectory( plotjuggler_plugins/DataStreamLSL )
endif()

add_subdirectory( plotjuggler_base )
add_subdirectory( plotjuggler_app )

add_subdirectory( plotjuggler_plugins/DataLoadCSV )
Expand All @@ -226,7 +251,6 @@ add_subdirectory( plotjuggler_plugins/DataStreamWebsocket )
add_subdirectory( plotjuggler_plugins/DataStreamUDP )
add_subdirectory( plotjuggler_plugins/StatePublisherCSV )


if( ZMQ_FOUND )
add_subdirectory( plotjuggler_plugins/DataStreamZMQ )
endif()
Expand Down
2 changes: 1 addition & 1 deletion datasamples/motor_data.csv
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
t,Velocity,Motor Speed,I_req,I,Vbat,Torque,Force to Carpet,Accel,Down Force Req (lbf),Vacuum Req
t,velocity,motor_speed,I_req,I,V_bat,torque,force,accel,down_force_req,vacuum_req
0,0.000,0.0,1685.2,330.0,8.9,0.7,434.9,54.1,108.6,50.6
0.001,0.054,18.6,1680.4,330.0,8.9,0.7,434.9,54.1,108.6,50.6
0.002,0.108,37.2,1675.5,330.0,8.9,0.7,434.9,54.1,108.6,50.6
Expand Down
111 changes: 55 additions & 56 deletions plotjuggler_app/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,63 +57,7 @@
#include <ament_index_cpp/get_package_share_directory.hpp>
#endif

void MainWindow::loadAllPlugins(QStringList command_line_plugin_folders)
{
QSettings settings;
QStringList loaded;
QStringList plugin_folders;
QStringList builtin_folders;

plugin_folders += command_line_plugin_folders;
plugin_folders += settings.value("Preferences::plugin_folders", QStringList()).toStringList();

builtin_folders += QCoreApplication::applicationDirPath();

try {
#ifdef COMPILED_WITH_CATKIN
const char * env = std::getenv("CMAKE_PREFIX_PATH");
if (env) {
QString env_catkin_paths = QString::fromStdString( env );
env_catkin_paths.replace(";",":"); // for windows
auto catkin_paths = env_catkin_paths.split(":");

for(const auto& path: catkin_paths)
{
builtin_folders += path + "/lib/plotjuggler_ros";
}
}
builtin_folders += QCoreApplication::applicationDirPath() + "_ros";
#endif
#ifdef COMPILED_WITH_AMENT
auto ros2_path = QString::fromStdString(ament_index_cpp::get_package_prefix("plotjuggler_ros"));
ros2_path += "/lib/plotjuggler_ros";
loaded += initializePlugins(ros2_path);
#endif
} catch (...) {

QMessageBox::warning(nullptr, "Missing package [plotjuggler-ros]",
"If you just upgraded from PlotJuggler 2.x to 3.x , try installing this package:\n\n"
"sudo apt install ros-${ROS_DISTRO}-plotjuggler-ros",
QMessageBox::Cancel, QMessageBox::Cancel);
}

#ifdef Q_OS_LINUX
builtin_folders += "/opt/plotjuggler";
#endif

builtin_folders += QStandardPaths::writableLocation( QStandardPaths::GenericDataLocation) + "/PlotJuggler";
builtin_folders.removeDuplicates();

plugin_folders += builtin_folders;
plugin_folders.removeDuplicates();

for(const auto& folder: plugin_folders)
{
loaded += initializePlugins(folder);
}

settings.setValue("Preferences::builtin_plugin_folders", builtin_folders);
}

MainWindow::MainWindow(const QCommandLineParser& commandline_parser, QWidget* parent)
: QMainWindow(parent)
Expand Down Expand Up @@ -513,6 +457,61 @@ void MainWindow::initializeActions()
updateRecentLayoutMenu(settings.value("MainWindow.recentlyLoadedLayout").toStringList());
}

void MainWindow::loadAllPlugins(QStringList command_line_plugin_folders)
{
QSettings settings;
QStringList loaded;
QStringList plugin_folders;
QStringList builtin_folders;

plugin_folders += command_line_plugin_folders;
plugin_folders += settings.value("Preferences::plugin_folders", QStringList()).toStringList();

builtin_folders += QCoreApplication::applicationDirPath();

try {
#ifdef COMPILED_WITH_CATKIN
builtin_folders += QCoreApplication::applicationDirPath() + "_ros";

const char * env = std::getenv("CMAKE_PREFIX_PATH");
if (env) {
QString env_catkin_paths = QString::fromStdString( env );
env_catkin_paths.replace(";",":"); // for windows
auto catkin_paths = env_catkin_paths.split(":");

for(const auto& path: catkin_paths)
{
builtin_folders += path + "/lib/plotjuggler_ros";
}
}
#endif
#ifdef COMPILED_WITH_AMENT
auto ros2_path = QString::fromStdString(ament_index_cpp::get_package_prefix("plotjuggler_ros"));
ros2_path += "/lib/plotjuggler_ros";
loaded += initializePlugins(ros2_path);
#endif
} catch (...) {

QMessageBox::warning(nullptr, "Missing package [plotjuggler-ros]",
"If you just upgraded from PlotJuggler 2.x to 3.x , try installing this package:\n\n"
"sudo apt install ros-${ROS_DISTRO}-plotjuggler-ros",
QMessageBox::Cancel, QMessageBox::Cancel);
}

builtin_folders += QStandardPaths::writableLocation( QStandardPaths::GenericDataLocation) + "/PlotJuggler";
builtin_folders.removeDuplicates();

plugin_folders += builtin_folders;
plugin_folders.removeDuplicates();

for(const auto& folder: plugin_folders)
{
loaded += initializePlugins(folder);
}

settings.setValue("Preferences::builtin_plugin_folders", builtin_folders);
}

QStringList MainWindow::initializePlugins(QString directory_name)
{
static std::set<QString> loaded_plugins;
Expand Down
30 changes: 0 additions & 30 deletions plotjuggler_base/CMakeLists.txt

This file was deleted.

14 changes: 3 additions & 11 deletions plotjuggler_plugins/DataLoadCSV/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,6 @@ target_link_libraries(DataLoadCSV
${Qt5Xml_LIBRARIES}
plotjuggler_plugin_base)

if(COMPILING_WITH_CATKIN)
install(TARGETS DataLoadCSV
ARCHIVE DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )
elseif(COMPILING_WITH_AMENT)
install(TARGETS DataLoadCSV
DESTINATION lib/${PROJECT_NAME} )
else()
install(TARGETS DataLoadCSV DESTINATION bin )
endif()

install(TARGETS DataLoadCSV DESTINATION ${PJ_PLUGIN_INSTALL_DIRECTORY} )

13 changes: 2 additions & 11 deletions plotjuggler_plugins/DataLoadULog/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,5 @@ target_link_libraries(DataLoadULog
${Qt5Xml_LIBRARIES}
plotjuggler_plugin_base)

if(COMPILING_WITH_CATKIN)
install(TARGETS DataLoadULog
ARCHIVE DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )
elseif(COMPILING_WITH_AMENT)
install(TARGETS DataLoadULog
DESTINATION lib/${PROJECT_NAME} )
else()
install(TARGETS DataLoadULog DESTINATION bin )
endif()
install(TARGETS DataLoadULog DESTINATION ${PJ_PLUGIN_INSTALL_DIRECTORY} )

14 changes: 1 addition & 13 deletions plotjuggler_plugins/DataStreamLSL/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,5 @@ target_link_libraries(DataStreamLSL
lslboost
)


if(COMPILING_WITH_CATKIN)
install(TARGETS DataStreamLSL
ARCHIVE DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )
elseif(COMPILING_WITH_AMENT)
install(TARGETS DataStreamLSL
DESTINATION lib/${PROJECT_NAME} )
else()
install(TARGETS DataStreamLSL DESTINATION bin )
endif()

install(TARGETS DataStreamLSL DESTINATION ${PJ_PLUGIN_INSTALL_DIRECTORY} )

13 changes: 1 addition & 12 deletions plotjuggler_plugins/DataStreamMQTT/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -24,18 +24,7 @@ else()
paho-mqtt3a-static)
endif()


if(COMPILING_WITH_CATKIN)
install(TARGETS DataStreamMQTT
ARCHIVE DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )
elseif(COMPILING_WITH_AMENT)
install(TARGETS DataStreamMQTT
DESTINATION lib/${PROJECT_NAME} )
else()
install(TARGETS DataStreamMQTT DESTINATION bin )
endif()
install(TARGETS DataStreamMQTT DESTINATION ${PJ_PLUGIN_INSTALL_DIRECTORY} )



Expand Down
12 changes: 1 addition & 11 deletions plotjuggler_plugins/DataStreamSample/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,4 @@ target_link_libraries(DataStreamSample
${Qt5Xml_LIBRARIES}
plotjuggler_plugin_base)

if(COMPILING_WITH_CATKIN)
install(TARGETS DataStreamSample
ARCHIVE DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )
elseif(COMPILING_WITH_AMENT)
install(TARGETS DataStreamSample
DESTINATION lib/${PROJECT_NAME} )
else()
install(TARGETS DataStreamSample DESTINATION bin )
endif()
install(TARGETS DataStreamSample DESTINATION ${PJ_PLUGIN_INSTALL_DIRECTORY} )
13 changes: 1 addition & 12 deletions plotjuggler_plugins/DataStreamUDP/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,6 @@ target_link_libraries(DataStreamUDP
plotjuggler_plugin_base
)


if(COMPILING_WITH_CATKIN)
install(TARGETS DataStreamUDP
ARCHIVE DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )
elseif(COMPILING_WITH_AMENT)
install(TARGETS DataStreamUDP
DESTINATION lib/${PROJECT_NAME} )
else()
install(TARGETS DataStreamUDP DESTINATION bin )
endif()
install(TARGETS DataStreamUDP DESTINATION ${PJ_PLUGIN_INSTALL_DIRECTORY} )


12 changes: 1 addition & 11 deletions plotjuggler_plugins/DataStreamWebsocket/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -22,17 +22,7 @@ else()
Qt5::WebSockets
plotjuggler_plugin_base )

if(COMPILING_WITH_CATKIN)
install(TARGETS DataStreamWebSocket
ARCHIVE DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
LIBRARY DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION}
RUNTIME DESTINATION ${CATKIN_PACKAGE_BIN_DESTINATION} )
elseif(COMPILING_WITH_AMENT)
install(TARGETS DataStreamWebSocket
DESTINATION lib/${PROJECT_NAME} )
else()
install(TARGETS DataStreamWebSocket DESTINATION bin )
endif()
install(TARGETS DataStreamWebSocket DESTINATION ${PJ_PLUGIN_INSTALL_DIRECTORY} )

endif()

Expand Down
Loading

0 comments on commit c74f07b

Please sign in to comment.