aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYordan Karadzhov <ykaradzhov@vmware.com>2019-05-15 12:09:06 -0700
committerSteven Rostedt (VMware) <rostedt@goodmis.org>2019-05-21 09:53:31 -0400
commita45ab5a4413768f609d62f8cedc2e81be89f38f6 (patch)
tree626dcb2e257352ec631ad81ab398a99cb5ec820a
parentd140ccdd01f93fc0860b40279e5e58957efa34f3 (diff)
downloadtrace-cmd-a45ab5a4413768f609d62f8cedc2e81be89f38f6.tar.gz
kernel-shark: Remove hard-coded install paths
The definitions of KS_APP_NAME and KS_ICON are used to derive standard installation paths for the KernelShark libraries, plugins and icons. The patch combines improvements suggested by Troy Engel and Bas van Dijk. Link: http://lore.kernel.org/linux-trace-devel/20190515190911.20755-2-ykaradzhov@vmware.com Suggested-by: Troy Engel <troyengel@gmail.com> Suggested-by: Bas van Dijk <v.dijk.bas@gmail.com> Signed-off-by: Yordan Karadzhov <ykaradzhov@vmware.com> Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
-rw-r--r--kernel-shark/CMakeLists.txt8
-rw-r--r--kernel-shark/build/deff.h.cmake3
-rw-r--r--kernel-shark/build/ks.desktop.cmake4
-rw-r--r--kernel-shark/src/CMakeLists.txt19
-rw-r--r--kernel-shark/src/KsUtils.cpp4
-rw-r--r--kernel-shark/src/plugins/CMakeLists.txt3
6 files changed, 25 insertions, 16 deletions
diff --git a/kernel-shark/CMakeLists.txt b/kernel-shark/CMakeLists.txt
index ac17642c..52e4a296 100644
--- a/kernel-shark/CMakeLists.txt
+++ b/kernel-shark/CMakeLists.txt
@@ -4,6 +4,7 @@ cmake_minimum_required(VERSION 2.8.11 FATAL_ERROR)
# Set the name and version of the project
project(kernel-shark)
+set(KS_APP_NAME "kernelshark")
set(KS_VERSION_MAJOR 0)
set(KS_VERSION_MINOR 9)
set(KS_VERSION_PATCH 8)
@@ -39,6 +40,9 @@ if(NOT _INSTALL_PREFIX)
set(_INSTALL_PREFIX "/usr/local")
endif()
+set(KS_PLUGIN_INSTALL_PREFIX ${_INSTALL_PREFIX}/lib/${KS_APP_NAME}/plugins/)
+set(KS_ICON ksharkicon.png)
+
if (NOT _DEBUG)
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2")
@@ -46,7 +50,7 @@ if (NOT _DEBUG)
endif (NOT _DEBUG)
-SET(CMAKE_INSTALL_RPATH "${_INSTALL_PREFIX}/lib/kshark/")
+SET(CMAKE_INSTALL_RPATH "${_INSTALL_PREFIX}/lib/${KS_APP_NAME}/")
SET(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
include_directories(${KS_DIR}/src/
@@ -79,7 +83,7 @@ if (_DOXYGEN_DOC AND DOXYGEN_FOUND)
endif ()
configure_file( ${KS_DIR}/build/ks.desktop.cmake
- ${KS_DIR}/kernelshark.desktop)
+ ${KS_DIR}/${KS_APP_NAME}.desktop)
configure_file( ${KS_DIR}/build/org.freedesktop.kshark-record.policy.cmake
${KS_DIR}/org.freedesktop.kshark-record.policy)
diff --git a/kernel-shark/build/deff.h.cmake b/kernel-shark/build/deff.h.cmake
index 1cf8a80a..efee2a12 100644
--- a/kernel-shark/build/deff.h.cmake
+++ b/kernel-shark/build/deff.h.cmake
@@ -14,6 +14,9 @@
/** KernelShark installation prefix path. */
#cmakedefine _INSTALL_PREFIX "@_INSTALL_PREFIX@"
+/** KernelShark plugins installation prefix path. */
+#cmakedefine KS_PLUGIN_INSTALL_PREFIX "@KS_PLUGIN_INSTALL_PREFIX@"
+
/** Location of the trace-cmd executable. */
#cmakedefine TRACECMD_BIN_DIR "@TRACECMD_BIN_DIR@"
diff --git a/kernel-shark/build/ks.desktop.cmake b/kernel-shark/build/ks.desktop.cmake
index 10e36107..2b02c0db 100644
--- a/kernel-shark/build/ks.desktop.cmake
+++ b/kernel-shark/build/ks.desktop.cmake
@@ -4,7 +4,7 @@ Type=Application
Name=Kernel Shark
GenericName=Kernel Shark
Comment=
-Exec=@_INSTALL_PREFIX@/bin/kernelshark
-Icon=@KS_DIR@/icons/ksharkicon.png
+Exec=@_INSTALL_PREFIX@/bin/@KS_APP_NAME@
+Icon=@_INSTALL_PREFIX@/share/icons/@KS_APP_NAME@/@KS_ICON@
Categories=System;
Terminal=false
diff --git a/kernel-shark/src/CMakeLists.txt b/kernel-shark/src/CMakeLists.txt
index b7dbd7e6..6cbc00fa 100644
--- a/kernel-shark/src/CMakeLists.txt
+++ b/kernel-shark/src/CMakeLists.txt
@@ -69,23 +69,26 @@ if (Qt5Widgets_FOUND AND Qt5Network_FOUND)
set_target_properties(kshark-gui PROPERTIES SUFFIX ".so.${KS_VERSION_STRING}")
- message(STATUS "kernelshark")
- add_executable(kernelshark kernelshark.cpp)
- target_link_libraries(kernelshark kshark-gui)
+ message(STATUS ${KS_APP_NAME})
+ add_executable(${KS_APP_NAME} kernelshark.cpp)
+ target_link_libraries(${KS_APP_NAME} kshark-gui)
message(STATUS "kshark-record")
add_executable(kshark-record kshark-record.cpp)
target_link_libraries(kshark-record kshark-gui)
- install(TARGETS kernelshark kshark-record kshark kshark-plot kshark-gui
+ install(TARGETS ${KS_APP_NAME} kshark-record kshark kshark-plot kshark-gui
RUNTIME DESTINATION ${_INSTALL_PREFIX}/bin/
- LIBRARY DESTINATION ${_INSTALL_PREFIX}/lib/kshark/)
+ LIBRARY DESTINATION ${_INSTALL_PREFIX}/lib/${KS_APP_NAME}/)
- install(FILES "${KS_DIR}/kernelshark.desktop"
- DESTINATION /usr/share/applications/)
+ install(FILES "${KS_DIR}/${KS_APP_NAME}.desktop"
+ DESTINATION ${_INSTALL_PREFIX}/share/applications/)
+
+ install(FILES "${KS_DIR}/icons/${KS_ICON}"
+ DESTINATION ${_INSTALL_PREFIX}/share/icons/${KS_APP_NAME})
install(FILES "${KS_DIR}/org.freedesktop.kshark-record.policy"
- DESTINATION /usr/share/polkit-1/actions/)
+ DESTINATION ${_INSTALL_PREFIX}/share/polkit-1/actions/)
install(PROGRAMS "${KS_DIR}/bin/kshark-su-record"
DESTINATION ${_INSTALL_PREFIX}/bin/)
diff --git a/kernel-shark/src/KsUtils.cpp b/kernel-shark/src/KsUtils.cpp
index 0020bff0..dcedd7b6 100644
--- a/kernel-shark/src/KsUtils.cpp
+++ b/kernel-shark/src/KsUtils.cpp
@@ -619,8 +619,8 @@ char *KsPluginManager::_pluginLibFromName(const QString &plugin, int &n)
n = asprintf(&lib, "%s/plugin-%s.so",
pathStr.c_str(), pluginStr.c_str());
} else {
- n = asprintf(&lib, "%s/lib/kshark/plugins/plugin-%s.so",
- _INSTALL_PREFIX, pluginStr.c_str());
+ n = asprintf(&lib, "%s/plugin-%s.so",
+ KS_PLUGIN_INSTALL_PREFIX, pluginStr.c_str());
}
return lib;
diff --git a/kernel-shark/src/plugins/CMakeLists.txt b/kernel-shark/src/plugins/CMakeLists.txt
index 64cf98d1..6c771792 100644
--- a/kernel-shark/src/plugins/CMakeLists.txt
+++ b/kernel-shark/src/plugins/CMakeLists.txt
@@ -18,7 +18,6 @@ function(BUILD_PLUGIN)
endfunction()
set(PLUGIN_LIST "")
-
BUILD_PLUGIN(NAME sched_events
SOURCE sched_events.c SchedEvents.cpp)
list(APPEND PLUGIN_LIST "sched_events default") # This plugin will be loaded by default
@@ -29,6 +28,6 @@ BUILD_PLUGIN(NAME missed_events
list(APPEND PLUGIN_LIST "missed_events default") # This plugin will be loaded by default
install(TARGETS sched_events missed_events
- LIBRARY DESTINATION ${_INSTALL_PREFIX}/lib/kshark/plugins/)
+ LIBRARY DESTINATION ${KS_PLUGIN_INSTALL_PREFIX})
set(PLUGINS ${PLUGIN_LIST} PARENT_SCOPE)