summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt65
1 files changed, 65 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..f46e1b2
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,65 @@
+cmake_minimum_required(VERSION 3.16)
+
+project(lan951x-led-ctl LANGUAGES C)
+
+list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_LIST_DIR}/cmake")
+
+set(CMAKE_INSTALL_PREFIX /usr)
+set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
+
+set(CMAKE_VERBOSE_MAKEFILE ON)
+
+find_package(PkgConfig REQUIRED)
+
+pkg_check_modules(libusb REQUIRED libusb-1.0)
+
+set(HEADERS
+ include/lan951x-led-ctl.h
+)
+
+add_executable(${PROJECT_NAME}
+ ${HEADERS}
+)
+
+target_include_directories(${PROJECT_NAME} PUBLIC
+ ${CMAKE_BINARY_DIR} # HB9HEI - location of generated version.h
+ ${CMAKE_SOURCE_DIR}/include
+)
+
+target_link_libraries(${PROJECT_NAME} PRIVATE
+ usb-1.0
+)
+
+target_sources(${PROJECT_NAME} PRIVATE
+ src/lan951x-led-ctl.c
+)
+
+add_dependencies(${PROJECT_NAME}
+ git-version
+)
+
+add_compile_definitions(
+)
+
+target_compile_options(${PROJECT_NAME} PUBLIC
+ -g
+ -Os
+ -std=c11
+ -fstack-protector-strong
+ -Wall
+ -Wextra
+ -Werror
+ -Wstrict-prototypes
+ -Wconversion
+ -Wmissing-prototypes
+ -Wshadow
+ -Wunused
+)
+
+install(TARGETS ${PROJECT_NAME} DESTINATION bin)
+
+# HB9HEI - custom target that produces version.h (req. cmake 3.0)
+add_custom_target(git-version ALL
+ ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/cmake/gitversion.cmake
+)