uqmi: Added CMake option BUILD_STATIC for a static uqmi build
[project/uqmi.git] / CMakeLists.txt
index 612cfaa..4a11544 100644 (file)
@@ -1,14 +1,26 @@
 cmake_minimum_required(VERSION 2.6)
 
 PROJECT(uqmi C)
-ADD_DEFINITIONS(-Os -ggdb -Wall -Werror --std=gnu99 -Wmissing-declarations -Wno-unused)
+
+OPTION(BUILD_STATIC OFF)
+
+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 NAMES json-c json)
-SET(LIBS ubox ubus ${json} blobmsg_json)
+IF(BUILD_STATIC)
+  FIND_LIBRARY(json NAMES libjson.a libjson-c.a)
+  FIND_LIBRARY(blobmsg_json NAMES libblobmsg_json.a)
+  FIND_LIBRARY(ubox NAMES libubox.a)
+ELSE(BUILD_STATIC)
+  FIND_LIBRARY(json NAMES json-c json)
+  FIND_LIBRARY(blobmsg_json NAMES blobmsg_json)
+  FIND_LIBRARY(ubox NAMES ubox)
+ENDIF(BUILD_STATIC)
+
+SET(LIBS ${ubox} ${blobmsg_json} ${json})
 
 IF(DEBUG_PACKET)
   ADD_DEFINITIONS(-DDEBUG_PACKET)
@@ -20,7 +32,7 @@ ENDIF()
 
 SET(service_headers)
 SET(service_sources)
-FOREACH(service ctl dms nas pds wds wms)
+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
@@ -33,12 +45,19 @@ FOREACH(service ctl dms nas pds wds wms)
                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)
+ADD_DEPENDENCIES(uqmi gen-headers gen-errors)
 
 TARGET_LINK_LIBRARIES(uqmi ${LIBS})