wds: cast pdp_type enum to int to avoid clang considering the range check tautological
[project/uqmi.git] / CMakeLists.txt
1 cmake_minimum_required(VERSION 2.6)
2
3 PROJECT(uqmi C)
4
5 OPTION(BUILD_STATIC OFF)
6
7 ADD_DEFINITIONS(-Os -ggdb -Wall -Werror --std=gnu99 -Wmissing-declarations -Wno-enum-conversion)
8
9 SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")
10
11 SET(SOURCES main.c dev.c commands.c qmi-message.c)
12
13 IF(BUILD_STATIC)
14   FIND_LIBRARY(json NAMES libjson.a libjson-c.a)
15   FIND_LIBRARY(blobmsg_json NAMES libblobmsg_json.a)
16   FIND_LIBRARY(ubox NAMES libubox.a)
17 ELSE(BUILD_STATIC)
18   FIND_LIBRARY(json NAMES json-c json)
19   FIND_LIBRARY(blobmsg_json NAMES blobmsg_json)
20   FIND_LIBRARY(ubox NAMES ubox)
21 ENDIF(BUILD_STATIC)
22
23 SET(LIBS ${ubox} ${blobmsg_json} ${json})
24
25 IF(DEBUG_PACKET)
26   ADD_DEFINITIONS(-DDEBUG_PACKET)
27 ENDIF()
28
29 IF(DEBUG)
30   ADD_DEFINITIONS(-DDEBUG -g3)
31 ENDIF()
32
33 SET(service_headers)
34 SET(service_sources)
35 FOREACH(service ctl dms nas pds wds wms wda)
36         ADD_CUSTOM_COMMAND(
37                 OUTPUT qmi-message-${service}.h
38                 COMMAND ./data/gen-header.pl ${service}_ ./data/qmi-service-${service}.json > qmi-message-${service}.h
39                 DEPENDS ./data/gen-header.pl ./data/qmi-service-${service}.json ./data/gen-common.pm
40         )
41         SET(service_headers ${service_headers} qmi-message-${service}.h)
42         ADD_CUSTOM_COMMAND(
43                 OUTPUT qmi-message-${service}.c
44                 COMMAND ./data/gen-code.pl ${service}_ ./data/qmi-service-${service}.json > qmi-message-${service}.c
45                 DEPENDS ./data/gen-code.pl ./data/qmi-service-${service}.json ./data/gen-common.pm
46         )
47         SET(service_sources ${service_sources} qmi-message-${service}.c)
48         set_property(SOURCE qmi-message-${service}.c PROPERTY COMPILE_FLAGS "-Wno-unused")
49 ENDFOREACH()
50
51 ADD_CUSTOM_COMMAND(
52         OUTPUT qmi-errors.c
53         COMMAND ./data/gen-error-list.pl ./qmi-errors.h > qmi-errors.c
54         DEPENDS ./data/gen-error-list.pl ./qmi-errors.h
55 )
56 ADD_CUSTOM_TARGET(gen-errors DEPENDS qmi-errors.c)
57 ADD_CUSTOM_TARGET(gen-headers DEPENDS ${service_headers})
58
59 ADD_EXECUTABLE(uqmi ${SOURCES} ${service_sources})
60 ADD_DEPENDENCIES(uqmi gen-headers gen-errors)
61
62 TARGET_LINK_LIBRARIES(uqmi ${LIBS})
63
64 INSTALL(TARGETS uqmi
65         RUNTIME DESTINATION sbin
66 )