Add st-info to CMakeLists.txt
[fw/stlink] / CMakeLists.txt
1 cmake_minimum_required(VERSION 2.8.11)
2 project(stlink)
3
4 find_package(PkgConfig)
5
6 pkg_check_modules(libusb REQUIRED libusb-1.0)
7 pkg_check_modules(gtk gtk+-3.0)
8
9 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -Wall -Wextra")
10
11 set(HFILES src/stlink-common.h
12            src/stlink-usb.h
13            src/stlink-sg.h
14            src/uglylogging.h
15            src/mmap.h)
16
17 set(CFILES src/stlink-common.c
18            src/stlink-usb.c
19            src/stlink-sg.c
20            src/uglylogging.c
21            src/st-info.c)
22
23 include_directories(${libusb_INCLUDE_DIRS})
24 include_directories(src)
25 include_directories(mingw)
26
27 add_library(stlink STATIC
28             ${HFILES} # header files for ide projects generated by cmake
29             ${CFILES})
30 target_link_libraries(stlink ${libusb_LDFLAGS})
31
32 add_executable(st-flash flash/main.c)
33 target_link_libraries(st-flash stlink)
34
35 add_executable(st-util gdbserver/gdb-remote.c
36                        gdbserver/gdb-remote.h
37                        gdbserver/gdb-server.c
38                        gdbserver/gdb-server.h)
39 target_link_libraries(st-util stlink)
40
41 add_executable(st-info src/st-info.c)
42 target_link_libraries(st-info stlink)
43
44 install(TARGETS  stlink st-flash st-util st-info
45         RUNTIME DESTINATION bin
46         ARCHIVE DESTINATION lib)
47
48 if(NOT MINGW)
49   list(APPEND CFILES src/st-term.c)
50   add_executable(st-term src/st-term.c)
51   target_link_libraries(st-term stlink)
52
53   install(TARGETS st-term
54           RUNTIME DESTINATION bin)
55 endif()
56
57 if(gtk_FOUND)
58   include_directories(${gtk_INCLUDE_DIRS})
59   set(GUI_SOURCES gui/stlink-gui.c
60                   gui/stlink-gui.h)
61
62   add_executable(stlink-gui-local ${GUI_SOURCES})
63   set_target_properties(stlink-gui-local PROPERTIES
64                         COMPILE_FLAGS -DSTLINK_UI_DIR=\\"${CMAKE_CURRENT_SOURCE_DIR}/gui\\")
65   target_link_libraries(stlink-gui-local stlink ${gtk_LDFLAGS})
66
67   set(INSTALLED_UI_DIR ${CMAKE_INSTALL_PREFIX}/share)
68   add_executable(stlink-gui ${GUI_SOURCES})
69   set_target_properties(stlink-gui PROPERTIES
70                         COMPILE_FLAGS -DSTLINK_UI_DIR=\\"${INSTALLED_UI_DIR}\\")
71   target_link_libraries(stlink-gui stlink ${gtk_LDFLAGS})
72
73   install(TARGETS stlink-gui
74           RUNTIME DESTINATION bin)
75   install(FILES gui/stlink-gui.ui
76           DESTINATION ${INSTALLED_UI_DIR})
77 endif()
78