Example

Dependencies:   FXAS21002 FXOS8700Q

Committer:
maygup01
Date:
Tue Nov 19 09:49:38 2019 +0000
Revision:
0:11cc2b7889af
Example

Who changed what in which revision?

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