CMAKE_MINIMUM_REQUIRED(VERSION 2.6) PROJECT(tota C) SET(SRCS ss_engine/SS_Common.c ss_engine/sha1.c ss_engine/SS_UPI.c ss_engine/SS_FSUpdate.c ss_engine/fota_tar.c ss_engine/SS_ApplyPatch.c ss_engine/SS_PatchDelta.c ss_engine/fota_log.c ss_engine/fota_tar.c bsdiff/ss_bspatch_common.c bsdiff/ss_brotli_patch.c ) SET(HEADERS ss_engine/fota_common.h ss_engine/fota_log.h ss_engine/fota_tar.h ss_engine/SS_Common.h ss_engine/SS_Engine_Errors.h ss_engine/SS_Engine_Update.h ss_engine/SS_FSUpdate.h ss_engine/SS_ImageUpdate.h ss_engine/SS_MultiProcessUpdate.h ss_engine/SS_Nand.h ss_engine/SS_UPI.h ss_engine/ua_types.h ) #SET(EXEC_PREFIX "\${prefix}") SET(PREFIX ${CMAKE_INSTALL_PREFIX}) SET(LIBDIR "${PREFIX}") SET(VERSION_MAJOR 1) SET(VERSION ${VERSION_MAJOR}.0.0) SET(LIBNAME "tota") #INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/ss_engine) INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/bsdiff) INCLUDE(FindPkgConfig) pkg_check_modules(packages REQUIRED liblzma-tool ) FOREACH(flag ${packages_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") ENDFOREACH(flag) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -Wall") SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} -g ") SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS} -fPIC") FIND_PROGRAM(UNAME NAMES uname) EXEC_PROGRAM("${UNAME}" ARGS "-m" OUTPUT_VARIABLE "ARCH") IF("${ARCH}" STREQUAL "arm") ADD_DEFINITIONS("-DTARGET") MESSAGE("add -DTARGET") ENDIF("${ARCH}" STREQUAL "arm") #FIND_PROGRAM(MARSHALTOOL NAMES glib-genmarshal) #FIND_PROGRAM(DBUS_BINDING_TOOL NAMES dbus-binding-tool) SET(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--as-needed") CONFIGURE_FILE(tota.pc.in tota.pc @ONLY) ADD_LIBRARY(${LIBNAME}-object OBJECT ${SRCS}) ADD_LIBRARY(${LIBNAME} SHARED $) TARGET_LINK_LIBRARIES(${LIBNAME} ${packages_LDFLAGS}) SET_TARGET_PROPERTIES(${LIBNAME} PROPERTIES VERSION ${VERSION}) SET_TARGET_PROPERTIES(${LIBNAME} PROPERTIES OUTPUT_NAME ${LIBNAME}) INSTALL(TARGETS ${LIBNAME} DESTINATION ${LIB_INSTALL_DIR}) ADD_LIBRARY(${LIBNAME}-static STATIC $) SET_TARGET_PROPERTIES(${LIBNAME}-static PROPERTIES VERSION ${VERSION}) SET_TARGET_PROPERTIES(${LIBNAME}-static PROPERTIES OUTPUT_NAME ${LIBNAME}) INSTALL(TARGETS ${LIBNAME}-static DESTINATION ${LIB_INSTALL_DIR}) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/tota.pc DESTINATION ${LIB_INSTALL_DIR}/pkgconfig) FOREACH(hfile ${HEADERS}) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${hfile} DESTINATION include) ENDFOREACH(hfile)