summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
blob: 3f676525473e48fff5bd5e8fe8cf365b3899c680 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
cmake_minimum_required(VERSION 2.6)

PROJECT(uqmi C)
ADD_DEFINITIONS(-Os -ggdb -Wall -Werror --std=gnu99 -Wmissing-declarations -Wno-enum-conversion)

SET(CMAKE_SHARED_LIBRARY_LINK_C_FLAGS "")

SET(SOURCES main.c dev.c commands.c qmi-message.c)

FIND_LIBRARY(json json-c json)
SET(LIBS ubox blobmsg_json ${json})

IF(DEBUG_PACKET)
  ADD_DEFINITIONS(-DDEBUG_PACKET)
ENDIF()

IF(DEBUG)
  ADD_DEFINITIONS(-DDEBUG -g3)
ENDIF()

SET(service_headers)
SET(service_sources)
FOREACH(service ctl dms nas pds wds wms wda)
	ADD_CUSTOM_COMMAND(
		OUTPUT qmi-message-${service}.h
		COMMAND ./data/gen-header.pl ${service}_ ./data/qmi-service-${service}.json > qmi-message-${service}.h
		DEPENDS ./data/gen-header.pl ./data/qmi-service-${service}.json ./data/gen-common.pm
	)
	SET(service_headers ${service_headers} qmi-message-${service}.h)
	ADD_CUSTOM_COMMAND(
		OUTPUT qmi-message-${service}.c
		COMMAND ./data/gen-code.pl ${service}_ ./data/qmi-service-${service}.json > qmi-message-${service}.c
		DEPENDS ./data/gen-code.pl ./data/qmi-service-${service}.json ./data/gen-common.pm
	)
	SET(service_sources ${service_sources} qmi-message-${service}.c)
	set_property(SOURCE qmi-message-${service}.c PROPERTY COMPILE_FLAGS "-Wno-unused")
ENDFOREACH()

ADD_CUSTOM_COMMAND(
	OUTPUT qmi-errors.c
	COMMAND ./data/gen-error-list.pl ./qmi-errors.h > qmi-errors.c
	DEPENDS ./data/gen-error-list.pl ./qmi-errors.h
)
ADD_CUSTOM_TARGET(gen-errors DEPENDS qmi-errors.c)
ADD_CUSTOM_TARGET(gen-headers DEPENDS ${service_headers})

ADD_EXECUTABLE(uqmi ${SOURCES} ${service_sources})
ADD_DEPENDENCIES(uqmi gen-headers gen-errors)

TARGET_LINK_LIBRARIES(uqmi ${LIBS})

INSTALL(TARGETS uqmi
	RUNTIME DESTINATION sbin
)