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 bsdiff/ss_bspatch_common.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 ) #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 libsmack lib7zip ) 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}") 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}-shared SHARED ${SRCS}) TARGET_LINK_LIBRARIES(${LIBNAME}-shared ${packages_LDFLAGS}) SET_TARGET_PROPERTIES(${LIBNAME}-shared PROPERTIES VERSION ${VERSION}) SET_TARGET_PROPERTIES(${LIBNAME}-shared PROPERTIES OUTPUT_NAME ${LIBNAME}) INSTALL(TARGETS ${LIBNAME}-shared DESTINATION ${LIB_INSTALL_DIR}) ADD_LIBRARY(${LIBNAME} STATIC ${SRCS}) TARGET_LINK_LIBRARIES(${LIBNAME} ${packages_LDFLAGS}) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/libtota.a DESTINATION ${LIB_INSTALL_DIR}) #CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/modulename-api.pc.in ${CMAKE_CURRENT_BINARY_DIR}/modulename-api.pc @ONLY) #INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/modulename-api.pc DESTINATION lib/pkgconfig) INSTALL(FILES ${CMAKE_CURRENT_BINARY_DIR}/tota.pc DESTINATION lib/pkgconfig) FOREACH(hfile ${HEADERS}) INSTALL(FILES ${CMAKE_CURRENT_SOURCE_DIR}/${hfile} DESTINATION include) ENDFOREACH(hfile) ADD_SUBDIRECTORY(bsdiff)