1 cmake_minimum_required(VERSION 2.8.11)
4 find_package(PkgConfig)
6 pkg_check_modules(libusb REQUIRED libusb-1.0)
7 pkg_check_modules(gtk gtk+-3.0)
9 set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -Wall -Wextra")
11 set(HFILES src/stlink-common.h
17 set(CFILES src/stlink-common.c
23 include_directories(${libusb_INCLUDE_DIRS})
24 include_directories(src)
25 include_directories(mingw)
27 add_library(stlink STATIC
28 ${HFILES} # header files for ide projects generated by cmake
30 target_link_libraries(stlink ${libusb_LDFLAGS})
32 add_executable(st-flash flash/main.c)
33 target_link_libraries(st-flash stlink)
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)
41 install(TARGETS stlink st-flash st-util
42 RUNTIME DESTINATION bin
43 ARCHIVE DESTINATION lib)
46 list(APPEND CFILES src/st-term.c)
47 add_executable(st-term src/st-term.c)
48 target_link_libraries(st-term stlink)
50 install(TARGETS st-term
51 RUNTIME DESTINATION bin)
55 include_directories(${gtk_INCLUDE_DIRS})
56 set(GUI_SOURCES gui/stlink-gui.c
59 add_executable(stlink-gui-local ${GUI_SOURCES})
60 set_target_properties(stlink-gui-local PROPERTIES
61 COMPILE_FLAGS -DSTLINK_UI_DIR=\\"${CMAKE_CURRENT_SOURCE_DIR}/gui\\")
62 target_link_libraries(stlink-gui-local stlink ${gtk_LDFLAGS})
64 set(INSTALLED_UI_DIR ${CMAKE_INSTALL_PREFIX}/share)
65 add_executable(stlink-gui ${GUI_SOURCES})
66 set_target_properties(stlink-gui PROPERTIES
67 COMPILE_FLAGS -DSTLINK_UI_DIR=\\"${INSTALLED_UI_DIR}\\")
68 target_link_libraries(stlink-gui stlink ${gtk_LDFLAGS})
70 install(TARGETS stlink-gui
71 RUNTIME DESTINATION bin)
72 install(FILES gui/stlink-gui.ui
73 DESTINATION ${INSTALLED_UI_DIR})