From d4d28e401f219aaa2941a1fe92777208a99b6e2f Mon Sep 17 00:00:00 2001 From: Josh Bialkowski Date: Mon, 16 Nov 2015 16:50:08 -0800 Subject: [PATCH] first stab at a cmake build --- CMakeLists.txt | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 CMakeLists.txt diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..6fbb3ba --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,75 @@ +cmake_minimum_required(VERSION 2.8.11) +project(stlink) + +find_package(PkgConfig) + +pkg_check_modules(libusb REQUIRED libusb-1.0) +pkg_check_modules(gtk gtk+-3.0) + +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -std=gnu99 -Wall -Wextra") + +set(HFILES src/stlink-common.h + src/stlink-usb.h + src/stlink-sg.h + src/uglylogging.h + src/mmap.h) + +set(CFILES src/stlink-common.c + src/stlink-usb.c + src/stlink-sg.c + src/uglylogging.c + src/st-info.c) + +include_directories(${libusb_INCLUDE_DIRS}) +include_directories(src) +include_directories(mingw) + +add_library(stlink STATIC + ${HFILES} # header files for ide projects generated by cmake + ${CFILES}) +target_link_libraries(stlink ${libusb_LDFLAGS}) + +add_executable(st-flash flash/main.c) +target_link_libraries(st-flash stlink) + +add_executable(st-util gdbserver/gdb-remote.c + gdbserver/gdb-remote.h + gdbserver/gdb-server.c + gdbserver/gdb-server.h) +target_link_libraries(st-util stlink) + +install(TARGETS stlink st-flash st-util + RUNTIME DESTINATION bin + ARCHIVE DESTINATION lib) + +if(NOT ${MINGW}) + list(APPEND CFILES src/st-term.c) + add_executable(st-term src/st-term.c) + target_link_libraries(st-term stlink) + + install(TARGETS st-term + RUNTIME DESTINATION bin) +endif() + +if(gtk_FOUND) + include_directories(${gtk_INCLUDE_DIRS}) + set(GUI_SOURCES gui/stlink-gui.c + gui/stlink-gui.h) + + add_executable(stlink-gui-local ${GUI_SOURCES}) + set_target_properties(stlink-gui-local PROPERTIES + COMPILE_FLAGS -DSTLINK_UI_DIR=\\"${CMAKE_CURRENT_SOURCE_DIR}/gui\\") + target_link_libraries(stlink-gui-local stlink ${gtk_LDFLAGS}) + + set(INSTALLED_UI_DIR ${CMAKE_INSTALL_PREFIX}/share) + add_executable(stlink-gui ${GUI_SOURCES}) + set_target_properties(stlink-gui PROPERTIES + COMPILE_FLAGS -DSTLINK_UI_DIR=\\"${INSTALLED_UI_DIR}\\") + target_link_libraries(stlink-gui stlink ${gtk_LDFLAGS}) + + install(TARGETS stlink-gui + RUNTIME DESTINATION bin) + install(FILES gui/stlink-gui.ui + DESTINATION ${INSTALLED_UI_DIR}) +endif() + -- 2.30.2