@@ -13,13 +13,28 @@ message("\n project: Kernel Shark: (version: ${KS_VERSION_STRING})\n")
set(KS_DIR ${CMAKE_SOURCE_DIR})
-if (NOT _INSTALL_PREFIX)
+execute_process(COMMAND bash "-c" "echo __LP64__ | ${CMAKE_C_COMPILER} -E -x c - | tail -n 1"
+ OUTPUT_VARIABLE __LP64__)
+
+if (NOT _INSTALL_PREFIX AND NOT _LIBDIR)
+
set(_INSTALL_PREFIX "/usr/local")
-endif (NOT _INSTALL_PREFIX)
-if (NOT _LIBDIR)
- set(_LIBDIR "${_INSTALL_PREFIX}/lib")
-endif (NOT _LIBDIR)
+ if (__LP64__ MATCHES 1)
+ set(_LIBDIR "/usr/local/lib64")
+ else (__LP64__ MATCHES 1)
+ set(_LIBDIR "/usr/local/lib")
+ endif (__LP64__ MATCHES 1)
+
+elseif (NOT _INSTALL_PREFIX)
+
+ set(_INSTALL_PREFIX "/usr/local")
+
+elseif (NOT _LIBDIR)
+
+ set(_LIBDIR "${_INSTALL_PREFIX}/lib")
+
+endif ()
set(CMAKE_MODULE_PATH "${KS_DIR}/build")
find_package(TraceEvent REQUIRED)
@@ -71,7 +86,8 @@ set(KS_ICON_FIN KS_icon_fin.svg)
set(KS_LOGO KS_logo_symbol.svg)
set(KS_LOGO_LABEL KS_logo_horizontal.svg)
-set(CMAKE_INSTALL_RPATH "${_LIBDIR}/${KS_APP_NAME}/")
+set(CMAKE_INSTALL_RPATH "${_LIBDIR}")
+set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
if (CMAKE_BUILD_TYPE MATCHES Package)
@@ -17,7 +17,7 @@ target_link_libraries(kshark trace::cmd
set_target_properties(kshark PROPERTIES SUFFIX ".so.${KS_VERSION_STRING}")
-install(TARGETS kshark LIBRARY DESTINATION ${_LIBDIR}/${KS_APP_NAME})
+install(TARGETS kshark LIBRARY DESTINATION ${_LIBDIR})
if (OPENGL_FOUND)
@@ -31,7 +31,7 @@ if (OPENGL_FOUND)
set_target_properties(kshark-plot PROPERTIES SUFFIX ".so.${KS_VERSION_STRING}")
- install(TARGETS kshark-plot LIBRARY DESTINATION ${_LIBDIR}/${KS_APP_NAME})
+ install(TARGETS kshark-plot LIBRARY DESTINATION ${_LIBDIR})
endif (OPENGL_FOUND)
@@ -84,7 +84,7 @@ if (Qt5Widgets_FOUND AND Qt5Network_FOUND)
install(TARGETS ${KS_APP_NAME} kshark-record kshark-gui
RUNTIME DESTINATION ${_INSTALL_PREFIX}/bin/
- LIBRARY DESTINATION ${_LIBDIR}/${KS_APP_NAME}/)
+ LIBRARY DESTINATION ${_LIBDIR})
install(FILES "${KS_DIR}/${KS_APP_NAME}.desktop"
DESTINATION ${_INSTALL_PREFIX}/share/applications/)
The default installation path for the KernelShark libraries changes from /usr/local/lib/kernelshark/ to /usr/local/lib64 (or /usr/local/lib on 32 but systems). This is done in order to be consistent with the install locations of libtraceevent, libtracefs and libtracecmd. Signed-off-by: Yordan Karadzhov (VMware) <y.karadz@gmail.com> --- CMakeLists.txt | 28 ++++++++++++++++++++++------ src/CMakeLists.txt | 6 +++--- 2 files changed, 25 insertions(+), 9 deletions(-)