leo hendrickson / Mbed OS example-Ethernet-mbed-Cloud-connect
Committer:
leothedragon
Date:
Tue May 04 08:55:12 2021 +0000
Revision:
0:8f0bb79ddd48
nmn

Who changed what in which revision?

UserRevisionLine numberNew contents of line
leothedragon 0:8f0bb79ddd48 1 INCLUDE(CMakeForceCompiler)
leothedragon 0:8f0bb79ddd48 2 # CROSS COMPILER SETTING
leothedragon 0:8f0bb79ddd48 3 cmake_minimum_required (VERSION 2.8)
leothedragon 0:8f0bb79ddd48 4 SET(CMAKE_SYSTEM_NAME Generic)
leothedragon 0:8f0bb79ddd48 5
leothedragon 0:8f0bb79ddd48 6 SET(UPDATE_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR})
leothedragon 0:8f0bb79ddd48 7
leothedragon 0:8f0bb79ddd48 8 project(update-client)
leothedragon 0:8f0bb79ddd48 9
leothedragon 0:8f0bb79ddd48 10 # Add just the base of update-client and the shared part of modules to global include path.
leothedragon 0:8f0bb79ddd48 11 # This helps a lot in keeping the global include path small as the global includes really
leothedragon 0:8f0bb79ddd48 12 # are given to every single source module, even though the include files themselves really
leothedragon 0:8f0bb79ddd48 13 # are accessed by update-client with very clean and precise manner.
leothedragon 0:8f0bb79ddd48 14 ADD_GLOBALDIR(${UPDATE_SOURCE_DIR})
leothedragon 0:8f0bb79ddd48 15 ADD_GLOBALDIR(${UPDATE_SOURCE_DIR}/modules/atomic-queue)
leothedragon 0:8f0bb79ddd48 16 ADD_GLOBALDIR(${UPDATE_SOURCE_DIR}/modules/common)
leothedragon 0:8f0bb79ddd48 17 ADD_GLOBALDIR(${UPDATE_SOURCE_DIR}/modules/metadata-header)
leothedragon 0:8f0bb79ddd48 18 ADD_GLOBALDIR(${UPDATE_SOURCE_DIR}/modules/control-center)
leothedragon 0:8f0bb79ddd48 19 ADD_GLOBALDIR(${UPDATE_SOURCE_DIR}/modules/lwm2m-mbed)
leothedragon 0:8f0bb79ddd48 20 ADD_GLOBALDIR(${UPDATE_SOURCE_DIR}/modules/monitor)
leothedragon 0:8f0bb79ddd48 21 ADD_GLOBALDIR(${UPDATE_SOURCE_DIR}/modules/paal)
leothedragon 0:8f0bb79ddd48 22 ADD_GLOBALDIR(${UPDATE_SOURCE_DIR}/modules/source)
leothedragon 0:8f0bb79ddd48 23 ADD_GLOBALDIR(${UPDATE_SOURCE_DIR}/modules/source-http)
leothedragon 0:8f0bb79ddd48 24
leothedragon 0:8f0bb79ddd48 25 include_directories(${UPDATE_SOURCE_DIR}/update-client-hub)
leothedragon 0:8f0bb79ddd48 26 include_directories(${UPDATE_SOURCE_DIR}/modules/atomic-queue/atomic-queue)
leothedragon 0:8f0bb79ddd48 27 include_directories(${UPDATE_SOURCE_DIR}/modules/common/update-client-common)
leothedragon 0:8f0bb79ddd48 28 include_directories(${UPDATE_SOURCE_DIR}/modules/metadata-header/update-client-metadata-header)
leothedragon 0:8f0bb79ddd48 29 include_directories(${UPDATE_SOURCE_DIR}/modules/resume-engine)
leothedragon 0:8f0bb79ddd48 30 include_directories(${UPDATE_SOURCE_DIR}/modules/resume-engine/resume-engine)
leothedragon 0:8f0bb79ddd48 31 include_directories(${UPDATE_SOURCE_DIR}/modules/control-center/update-client-control-center)
leothedragon 0:8f0bb79ddd48 32 include_directories(${UPDATE_SOURCE_DIR}/modules/device-identity)
leothedragon 0:8f0bb79ddd48 33 include_directories(${UPDATE_SOURCE_DIR}/modules/device-identity/pal4life-device-identity)
leothedragon 0:8f0bb79ddd48 34 include_directories(${UPDATE_SOURCE_DIR}/modules/firmware-manager)
leothedragon 0:8f0bb79ddd48 35 include_directories(${UPDATE_SOURCE_DIR}/modules/firmware-manager/update-client-firmware-manager)
leothedragon 0:8f0bb79ddd48 36 include_directories(${UPDATE_SOURCE_DIR}/modules/lwm2m-mbed/update-client-lwm2m)
leothedragon 0:8f0bb79ddd48 37 include_directories(${UPDATE_SOURCE_DIR}/modules/manifest-manager)
leothedragon 0:8f0bb79ddd48 38 include_directories(${UPDATE_SOURCE_DIR}/modules/manifest-manager/update-client-manifest-manager)
leothedragon 0:8f0bb79ddd48 39 include_directories(${UPDATE_SOURCE_DIR}/modules/manifest-manager/source)
leothedragon 0:8f0bb79ddd48 40 include_directories(${UPDATE_SOURCE_DIR}/modules/monitor/update-client-monitor)
leothedragon 0:8f0bb79ddd48 41 include_directories(${UPDATE_SOURCE_DIR}/modules/paal-update-api)
leothedragon 0:8f0bb79ddd48 42 include_directories(${UPDATE_SOURCE_DIR}/modules/paal-update-api/paal-update-api)
leothedragon 0:8f0bb79ddd48 43 include_directories(${UPDATE_SOURCE_DIR}/modules/source/update-client-source)
leothedragon 0:8f0bb79ddd48 44 include_directories(${UPDATE_SOURCE_DIR}/modules/source-http/update-client-source-http)
leothedragon 0:8f0bb79ddd48 45 include_directories(${UPDATE_SOURCE_DIR}/modules/source-http-socket)
leothedragon 0:8f0bb79ddd48 46 include_directories(${UPDATE_SOURCE_DIR}/modules/source-http-socket/update-client-source-http-socket)
leothedragon 0:8f0bb79ddd48 47 include_directories(${UPDATE_SOURCE_DIR}/modules/source-manager)
leothedragon 0:8f0bb79ddd48 48 include_directories(${UPDATE_SOURCE_DIR}/modules/source-manager/update-client-source-manager)
leothedragon 0:8f0bb79ddd48 49 include_directories(${UPDATE_SOURCE_DIR}/modules/paal/update-client-paal)
leothedragon 0:8f0bb79ddd48 50 include_directories(${UPDATE_SOURCE_DIR}/modules/pal-filesystem)
leothedragon 0:8f0bb79ddd48 51 include_directories(${UPDATE_SOURCE_DIR}/modules/pal-filesystem/update-client-pal-filesystem)
leothedragon 0:8f0bb79ddd48 52 include_directories(${UPDATE_SOURCE_DIR}/modules/pal-flashiap)
leothedragon 0:8f0bb79ddd48 53 include_directories(${UPDATE_SOURCE_DIR}/modules/pal-flashiap/update-client-pal-flashiap)
leothedragon 0:8f0bb79ddd48 54 include_directories(${UPDATE_SOURCE_DIR}/modules/pal-linux)
leothedragon 0:8f0bb79ddd48 55 include_directories(${UPDATE_SOURCE_DIR}/modules/pal-linux/update-client-pal-linux)
leothedragon 0:8f0bb79ddd48 56
leothedragon 0:8f0bb79ddd48 57 # XXX: currently only the Linux target builds out of the cmake environments, so
leothedragon 0:8f0bb79ddd48 58 # let's ignore most of the code on other OS'.
leothedragon 0:8f0bb79ddd48 59 #
leothedragon 0:8f0bb79ddd48 60 # Note: the library needs to have _some_ source file in it, so on else branch
leothedragon 0:8f0bb79ddd48 61 # the most generic ones are added to it.
leothedragon 0:8f0bb79ddd48 62 #
leothedragon 0:8f0bb79ddd48 63 # Note2: the created library is not really useful, but with it, the consumer side,
leothedragon 0:8f0bb79ddd48 64 # eg. mbed-cloud-client and re-use the include declarations the library has and
leothedragon 0:8f0bb79ddd48 65 # it does not need to have local include_directories() statements for cases when
leothedragon 0:8f0bb79ddd48 66 # the update client is not really functional.
leothedragon 0:8f0bb79ddd48 67 if (${OS_BRAND} MATCHES "Linux")
leothedragon 0:8f0bb79ddd48 68 FILE(GLOB UPDATE_SRC
leothedragon 0:8f0bb79ddd48 69 "${UPDATE_SOURCE_DIR}/source/*.c"
leothedragon 0:8f0bb79ddd48 70 "${UPDATE_SOURCE_DIR}/modules/atomic-queue/source/*.c"
leothedragon 0:8f0bb79ddd48 71 "${UPDATE_SOURCE_DIR}/modules/common/source/*.c"
leothedragon 0:8f0bb79ddd48 72 "${UPDATE_SOURCE_DIR}/modules/metadata-header/source/*.c"
leothedragon 0:8f0bb79ddd48 73 "${UPDATE_SOURCE_DIR}/modules/resume-engine/source/*.c"
leothedragon 0:8f0bb79ddd48 74 "${UPDATE_SOURCE_DIR}/modules/control-center/source/*.c"
leothedragon 0:8f0bb79ddd48 75 "${UPDATE_SOURCE_DIR}/modules/device-identity/source/*.c"
leothedragon 0:8f0bb79ddd48 76 "${UPDATE_SOURCE_DIR}/modules/firmware-manager/source/*.c"
leothedragon 0:8f0bb79ddd48 77 "${UPDATE_SOURCE_DIR}/modules/lwm2m-mbed/source/*.cpp"
leothedragon 0:8f0bb79ddd48 78 "${UPDATE_SOURCE_DIR}/modules/lwm2m-mbed/source/*.c"
leothedragon 0:8f0bb79ddd48 79 "${UPDATE_SOURCE_DIR}/modules/manifest-manager/source/*.c"
leothedragon 0:8f0bb79ddd48 80 "${UPDATE_SOURCE_DIR}/modules/source-http/source/*.c"
leothedragon 0:8f0bb79ddd48 81 "${UPDATE_SOURCE_DIR}/modules/source-http-socket/source/*.c"
leothedragon 0:8f0bb79ddd48 82 "${UPDATE_SOURCE_DIR}/modules/source-manager/source/*.c"
leothedragon 0:8f0bb79ddd48 83 "${UPDATE_SOURCE_DIR}/modules/paal/source/*.c"
leothedragon 0:8f0bb79ddd48 84 "${UPDATE_SOURCE_DIR}/modules/pal-filesystem/source/*.c"
leothedragon 0:8f0bb79ddd48 85 "${UPDATE_SOURCE_DIR}/modules/pal-flashiap/source/*.c"
leothedragon 0:8f0bb79ddd48 86 "${UPDATE_SOURCE_DIR}/modules/pal-flashiap/source/*.cpp"
leothedragon 0:8f0bb79ddd48 87 "${UPDATE_SOURCE_DIR}/modules/pal-linux/source/*.c"
leothedragon 0:8f0bb79ddd48 88 )
leothedragon 0:8f0bb79ddd48 89 else()
leothedragon 0:8f0bb79ddd48 90 FILE(GLOB UPDATE_SRC
leothedragon 0:8f0bb79ddd48 91 "${UPDATE_SOURCE_DIR}/source/*.c"
leothedragon 0:8f0bb79ddd48 92 )
leothedragon 0:8f0bb79ddd48 93 endif()
leothedragon 0:8f0bb79ddd48 94
leothedragon 0:8f0bb79ddd48 95 # log the source list as other components do. Sometimes this is useful.
leothedragon 0:8f0bb79ddd48 96 message("update-client = ${UPDATE_SRC}")
leothedragon 0:8f0bb79ddd48 97
leothedragon 0:8f0bb79ddd48 98 # create a library and describe its dependencies
leothedragon 0:8f0bb79ddd48 99 add_library(update-client STATIC "${UPDATE_SRC}")
leothedragon 0:8f0bb79ddd48 100 add_dependencies(update-client mbedclient mbedTrace mbedcrypto mbedx509)
leothedragon 0:8f0bb79ddd48 101 target_link_libraries(update-client mbedclient mbedTrace mbedcrypto mbedx509)
leothedragon 0:8f0bb79ddd48 102
leothedragon 0:8f0bb79ddd48 103 # add pal dependency only for full client builds
leothedragon 0:8f0bb79ddd48 104 if (NOT ${BUILD_TYPE} STREQUAL "client-lite")
leothedragon 0:8f0bb79ddd48 105 add_dependencies(update-client pal)
leothedragon 0:8f0bb79ddd48 106 target_link_libraries(update-client pal)
leothedragon 0:8f0bb79ddd48 107 endif()