trace-cmd icon indicating copy to clipboard operation
trace-cmd copied to clipboard

Streamline kernelshark cmake setup

Open dvzrv opened this issue 5 years ago • 0 comments

Makefile: Create a build directory for kernelshark when building it. Provide standardized CMAKE_BUILD_TYPE, CMAKE_INSTALL_PREFIX and CMAKE_INSTALL_BINDIR instead of custom parameters. Instead of calling custom scripts, remove the created build directory in clean target.

kernel-sharek/CMakeLists.txt: Raise minimum required cmake version to 3.4.3 to have some sane default behavior and not support versions of cmake that are not even supported by upstream anymore. Remove all custom variables that can be replaced with standardized cmake specific variables. Use project() to get the name and version of the project. Include GNUInstallDirs for standardized installation directories and variables [1]. Include ../lib/trace-cmd/include/private because trace-filter-hash.h is included by src/libkshark.h. Instead of hardcoding the build directory, rely on CMAKE_CURRENT_BINARY_DIR. Remove empty message() calls. Move documentation related instructions to Documentation/CMakeLists.txt. Replace all custom templated preprocessor definitions (from deff.h.in) with cmake's add_definitions().

kernel-shark/Documentation/doxygen/dox_config: Update paths to images used by doxygen.

kernel-shark/README: Update build and clean instructions.

cmake/*.cmake: Move all actual .cmake files from build/ to cmake/ for clear separation from template files.

build/*.sh: Remove unneeded cleanup and uninstallation scripts.

contrib/*: Introduce a contrib directory for the XDG desktop integration template, all icons (in a subdirectory) and the polkit policy template. Install XDG desktop integration and one scalable icon (the latter to the default hicolor icon theme location). The naming of the XDG desktop file does not yet adhere to the file naming conventions. Install polkit policy to default system-wide location.

contrib/icons/kernelshark.svg: Rename from kernel-shark/icons/KS_icon_shark.svg, as it is much more straight forward to name the icon after the application it is being used for (in an XDG application context).

kernel-shark/bin/CMakeLists.txt: Add specificly included file to install kshark-su-record.

kernel-shark/bin/kshark-su-record: Set shebang to /usr/bin/env bash to be more flexible. Quote variables that may contain spaces.

kernel-shark/src/KsMainWindow.cpp: Remove overly explicit instructions on how to build kernelshark (that may change at any time and are documented in the project) from the source code of the application.

kernel-shark/src/deff.h.in: Remove all in-file definitions (they are added via add_definitions() instead). The plugin list remains, as it is probably not trivial to replace that way.

kernel-shark/src/libkshark.h: Fix include of trace-filter-hash.h, which can be included directly, due to the proper definition of include_directories().

kernel-shark/src/plugins/CMakeLists.txt: Do not use all-caps in function naming.

[1] https://cmake.org/cmake/help/v3.4/module/GNUInstallDirs.html?highlight=gnuinstalldirs

dvzrv avatar Nov 28 '20 23:11 dvzrv