Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Streamline kernelshark cmake setup #18

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

dvzrv
Copy link

@dvzrv dvzrv commented Nov 28, 2020

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

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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant