Install *ui.rc files in KXMLGUI_INSTALL_DIR.
[kdbg.git] / kdbg / CMakeLists.txt
blobcb67c75b0e0068eca9b2cf41d1f22837f7257758
1 add_subdirectory(doc)
2 add_subdirectory(pics)
3 add_subdirectory(typetables)
5 include(CheckFunctionExists)
6 include(CheckIncludeFiles)
7 include(CheckLibraryExists)
8 include(ECMAddAppIcon)
10 CHECK_INCLUDE_FILES(pty.h HAVE_PTY_H)
11 CHECK_INCLUDE_FILES(libutil.h HAVE_LIBUTIL_H)
12 CHECK_INCLUDE_FILES(util.h HAVE_UTIL_H)
13 CHECK_LIBRARY_EXISTS(util openpty "" HAVE_LIB_UTIL)
14 if (HAVE_LIB_UTIL)
15     set(CMAKE_REQUIRED_LIBRARIES util)
16 endif (HAVE_LIB_UTIL)
17 CHECK_FUNCTION_EXISTS(openpty HAVE_FUNC_OPENPTY)
19 message("-- Looking for a suitable 'ps' invocation")
20 FIND_PROGRAM(PROG_PS ps)
21 IF (PROG_PS)
22     set(PS_ARGS -eo pid,ppid,uid,vsz,etime,time,args)
23     execute_process(COMMAND ${PROG_PS} ${PS_ARGS}
24                 RESULT_VARIABLE PS_FAILED
25                 OUTPUT_QUIET ERROR_QUIET)
26     IF (NOT PS_FAILED)
27         execute_process(
28                 COMMAND ${PROG_PS} ${PS_ARGS}
29                 COMMAND sed -e "s/  */ /g" -e 1q
30                 OUTPUT_VARIABLE PS_HEADER)
31         string(STRIP "${PS_HEADER}" PS_HEADER)
32         IF (PS_HEADER STREQUAL "PID PPID UID VSZ ELAPSED TIME COMMAND")
33             # enclose arguments in double-quotes
34             set(PS_COMMAND \"${PROG_PS}\")
35             set(PS_MSG ${PROG_PS})
36             foreach (I ${PS_ARGS})
37                 set(PS_COMMAND ${PS_COMMAND},\"${I}\")
38                 set(PS_MSG "${PS_MSG} ${I}")
39             endforeach (I)
40             message("-- Found 'ps' command: ${PS_MSG}")
41         ENDIF (PS_HEADER STREQUAL "PID PPID UID VSZ ELAPSED TIME COMMAND")
42     ENDIF (NOT PS_FAILED)
43 ENDIF (PROG_PS)
44 IF (NOT PS_COMMAND)
45     message("-- Looking for a suitable 'ps' invocation - not found")
46 ENDIF (NOT PS_COMMAND)
48 configure_file(${CMAKE_CURRENT_SOURCE_DIR}/config.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
50 set(kdbg_SRCS
51     pgmargs.cpp
52     procattach.cpp
53     debugger.cpp
54     dbgdriver.cpp
55     gdbdriver.cpp
56     xsldbgdriver.cpp
57     brkpt.cpp
58     exprwnd.cpp
59     regwnd.cpp
60     memwindow.cpp
61     threadlist.cpp
62     sourcewnd.cpp
63     winstack.cpp
64     ttywnd.cpp
65     typetable.cpp
66     prefdebugger.cpp
67     prefmisc.cpp
68     pgmsettings.cpp
69     watchwindow.cpp
70     dbgmainwnd.cpp
71     main.cpp
74 set(kdbg_UI
75     brkptbase.ui
76     brkptcondition.ui
77     pgmargsbase.ui
78     procattachbase.ui
81 ki18n_wrap_ui(kdbg_SRCS ${kdbg_UI})
83 file(GLOB ICONS_SRCS "${CMAKE_CURRENT_SOURCE_DIR}/pics/*-apps-kdbg.png")
84 ecm_add_app_icon(kdbg_SRCS ICONS ${ICONS_SRCS})
85 add_executable(kdbg ${kdbg_SRCS})
87 IF (HAVE_LIB_UTIL)
88     set(LIB_UTIL util)
89 ENDIF (HAVE_LIB_UTIL)
91 target_link_libraries(kdbg
92     KF5::KDELibs4Support
93     ${LIB_UTIL}
96 install(TARGETS kdbg ${INSTALL_TARGETS_DEFAULT_ARGS})
97 install(FILES kdbg.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
98 install(FILES kdbgrc DESTINATION ${CONFIG_INSTALL_DIR})
99 install(FILES kdbgui.rc DESTINATION ${KXMLGUI_INSTALL_DIR}/kdbg)