By default the "Last session" configuration file will be saved in ${HOME}/.cache/kernelshark After applying this patch you may need to clean the CMAKE cache. This can be done by: cd kernel-shark/build/;./cmake_clean.sh; cd - make gui Suggested-by: Steven Rostedt (VMware) <rostedt@xxxxxxxxxxx> Signed-off-by: Yordan Karadzhov <ykaradzhov@xxxxxxxxxx> --- Makefile | 5 ++++- kernel-shark/CMakeLists.txt | 13 ++++++++----- kernel-shark/README | 8 +++++++- kernel-shark/build/deff.h.cmake | 4 ++-- kernel-shark/src/KsMainWindow.cpp | 4 ++-- 5 files changed, 23 insertions(+), 11 deletions(-) diff --git a/Makefile b/Makefile index cde45f8..d9b0c0e 100644 --- a/Makefile +++ b/Makefile @@ -254,7 +254,10 @@ all_cmd: $(CMD_TARGETS) CMAKE_COMMAND = /usr/bin/cmake $(kshark-dir)/build/Makefile: $(kshark-dir)/CMakeLists.txt - $(Q) cd $(kshark-dir)/build && $(CMAKE_COMMAND) -D_INSTALL_PREFIX=$(prefix) .. + + $(Q) cd $(kshark-dir)/build && $(CMAKE_COMMAND) \ + -D_KS_CACHE_DIR=$(HOME)/.cache/kernelshark \ + -D_INSTALL_PREFIX=$(prefix) .. gui: force $(CMD_TARGETS) $(kshark-dir)/build/Makefile $(Q)$(MAKE) $(S) -C $(kshark-dir)/build diff --git a/kernel-shark/CMakeLists.txt b/kernel-shark/CMakeLists.txt index 8858eb7..14d73f5 100644 --- a/kernel-shark/CMakeLists.txt +++ b/kernel-shark/CMakeLists.txt @@ -12,10 +12,12 @@ message("\n project: Kernel Shark: (version: ${KS_VERSION_STRING})\n") set(KS_DIR ${CMAKE_SOURCE_DIR}) -# Make a directory to hold configuration files. To change this do: -# cmake .. -DKS_CONF_DIR=/your/preferred/path -set(KS_CONF_DIR "${KS_DIR}/.ksconf" CACHE STRING "Directory for configuration files.") -file(MAKE_DIRECTORY ${KS_CONF_DIR}) +# Make a directory to hold cached configuration files. To change this do: +# cmake .. -D_KS_CACHE_DIR=/your/preferred/path +set(_KS_CACHE_DIR "$ENV{HOME}/.cache/kernelshark" + CACHE STRING "Directory for cached configuration files.") + +file(MAKE_DIRECTORY ${_KS_CACHE_DIR}) include(${KS_DIR}/build/FindTraceCmd.cmake) include(${KS_DIR}/build/FindJSONC.cmake) @@ -66,7 +68,8 @@ include_directories(${KS_DIR}/src/ message("") message(STATUS "C flags : " ${CMAKE_C_FLAGS}) message(STATUS "CXX flags : " ${CMAKE_CXX_FLAGS}) -message(STATUS "Linker flags : " ${CMAKE_EXE_LINKER_FLAGS}) +message(STATUS "Linker flags : " ${CMAKE_EXE_LINKER_FLAGS}\n) +message(STATUS "config. files saved in ${_KS_CACHE_DIR}") add_subdirectory(${KS_DIR}/src) add_subdirectory(${KS_DIR}/examples) diff --git a/kernel-shark/README b/kernel-shark/README index 9f7db26..a75b08b 100644 --- a/kernel-shark/README +++ b/kernel-shark/README @@ -52,8 +52,14 @@ as a CMake Command-Line option. 2.1.3 By default, installation prefix is "/usr/local". It can be changed using -D_INSTALL_PREFIX= as a CMake Command-Line option. -Example: +2.1.4 By default, the directory that holds cached configuration files is +${HOME}/.cache/kernelshark/ .It can be changed using -D_KS_CACHE_DIR= +as a CMake Command-Line option. Use only absolute paths for this option. + + +Examples: cmake -D_DOXYGEN_DOC=1 -D_DEBUG=1 -D_INSTALL_PREFIX=/usr ../ + cmake -D_KS_CACHE_DIR=${PWD}../.kscache ../ 2.2.1 Use "make clean" if you want to delete all already compiled objects. diff --git a/kernel-shark/build/deff.h.cmake b/kernel-shark/build/deff.h.cmake index 80d624c..f1f6a35 100644 --- a/kernel-shark/build/deff.h.cmake +++ b/kernel-shark/build/deff.h.cmake @@ -14,8 +14,8 @@ /** KernelShark source code path. */ #cmakedefine KS_DIR "@KS_DIR@" -/** KernelShark configuration directory path. */ -#cmakedefine KS_CONF_DIR "@KS_CONF_DIR@" +/** KernelShark cache directory path. */ +#cmakedefine _KS_CACHE_DIR "@_KS_CACHE_DIR@" /** Location of the trace-cmd executable. */ #cmakedefine TRACECMD_BIN_DIR "@TRACECMD_BIN_DIR@" diff --git a/kernel-shark/src/KsMainWindow.cpp b/kernel-shark/src/KsMainWindow.cpp index 7afb721..d07a89d 100644 --- a/kernel-shark/src/KsMainWindow.cpp +++ b/kernel-shark/src/KsMainWindow.cpp @@ -133,7 +133,7 @@ KsMainWindow::KsMainWindow(QWidget *parent) KsMainWindow::~KsMainWindow() { kshark_context *kshark_ctx(nullptr); - QString file = KS_CONF_DIR; + QString file = _KS_CACHE_DIR; file += "/lastsession.json"; @@ -370,7 +370,7 @@ void KsMainWindow::_open() void KsMainWindow::_restoreSession() { - QString file = KS_CONF_DIR; + QString file = _KS_CACHE_DIR; file += "/lastsession.json"; loadSession(file); -- 2.19.1