Extend copyright to 2018.
[kdbg.git] / kdbg / CMakeLists.txt
bloba976c5aa07c8701f26e61c05843c0448be9de489
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::I18n
93     KF5::ConfigCore
94     KF5::IconThemes
95     KF5::XmlGui
96     KF5::WindowSystem
97     ${LIB_UTIL}
100 install(TARGETS kdbg ${INSTALL_TARGETS_DEFAULT_ARGS})
101 install(FILES kdbg.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
102 install(FILES kdbgrc DESTINATION ${CONFIG_INSTALL_DIR})
103 install(FILES kdbgui.rc DESTINATION ${KXMLGUI_INSTALL_DIR}/kdbg)