Skip to content

Commit

Permalink
tests: cmake: general update to use main cmakelists file
Browse files Browse the repository at this point in the history
  • Loading branch information
joelguittet committed Jul 29, 2024
1 parent aa00872 commit a7ecef3
Show file tree
Hide file tree
Showing 6 changed files with 37 additions and 95 deletions.
122 changes: 32 additions & 90 deletions tests/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -40,117 +40,59 @@ set(CMAKE_CXX_EXTENSIONS OFF)
set(PROJECT_BASE_NAME mender-mcu-client)
message("Configuring for ${PROJECT_BASE_NAME} - Build type is ${CMAKE_BUILD_TYPE}")

# Flags
if(CMAKE_BUILD_TYPE MATCHES "Debug")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Og -g")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Og -g")
else()
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -O2")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")
endif()
# Define VERSION_NUMBER
file(STRINGS "${CMAKE_CURRENT_LIST_DIR}/../VERSION" VERSION_NUMBER LIMIT_COUNT 1)
set_property(DIRECTORY . APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${CMAKE_CURRENT_LIST_DIR}/../VERSION)
STRING(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)-rc[0-9]+" "\\1.\\2.\\3" VERSION_NUMBER "${VERSION_NUMBER}")

# Define CMAKE_PROJECT_NAME, CMAKE_PROJECT_VERSION and LANGUAGES
project(${PROJECT_BASE_NAME} VERSION ${VERSION_NUMBER} LANGUAGES C ASM)

# Declare the executable first, so that we can add flags and sources later on
set(APP_EXECUTABLE_NAME ${PROJECT_BASE_NAME}.elf)
message("Executable name: ${APP_EXECUTABLE_NAME}")
add_executable(${APP_EXECUTABLE_NAME})
set(EXECUTABLE_NAME ${PROJECT_BASE_NAME}.elf)
message("Executable name: ${EXECUTABLE_NAME}")
add_executable(${EXECUTABLE_NAME})

# Define compile options
if(CMAKE_BUILD_TYPE MATCHES "Debug")
target_compile_definitions(${APP_EXECUTABLE_NAME} PRIVATE DEBUG)
endif()

# Add definitions to configure the client
if(CONFIG_MENDER_SERVER_HOST)
add_compile_definitions(CONFIG_MENDER_SERVER_HOST="${CONFIG_MENDER_SERVER_HOST}")
endif()
if(CONFIG_MENDER_CLIENT_AUTHENTICATION_POLL_INTERVAL)
add_compile_definitions(CONFIG_MENDER_CLIENT_AUTHENTICATION_POLL_INTERVAL=${CONFIG_MENDER_CLIENT_AUTHENTICATION_POLL_INTERVAL})
endif()
if(CONFIG_MENDER_CLIENT_UPDATE_POLL_INTERVAL)
add_compile_definitions(CONFIG_MENDER_CLIENT_UPDATE_POLL_INTERVAL=${CONFIG_MENDER_CLIENT_UPDATE_POLL_INTERVAL})
endif()
if(CONFIG_MENDER_FLASH_PATH)
add_compile_definitions(CONFIG_MENDER_FLASH_PATH="${CONFIG_MENDER_FLASH_PATH}")
endif()
if(CONFIG_MENDER_STORAGE_PATH)
add_compile_definitions(CONFIG_MENDER_STORAGE_PATH="${CONFIG_MENDER_STORAGE_PATH}")
endif()
if(CONFIG_MENDER_CLIENT_ADD_ON_CONFIGURE)
add_compile_definitions(CONFIG_MENDER_CLIENT_ADD_ON_CONFIGURE)
if(CONFIG_MENDER_CLIENT_CONFIGURE_REFRESH_INTERVAL)
add_compile_definitions(CONFIG_MENDER_CLIENT_CONFIGURE_REFRESH_INTERVAL=${CONFIG_MENDER_CLIENT_CONFIGURE_REFRESH_INTERVAL})
endif()
if(CONFIG_MENDER_CLIENT_CONFIGURE_STORAGE)
add_compile_definitions(CONFIG_MENDER_CLIENT_CONFIGURE_STORAGE)
endif()
endif()
if(CONFIG_MENDER_CLIENT_ADD_ON_INVENTORY)
add_compile_definitions(CONFIG_MENDER_CLIENT_ADD_ON_INVENTORY)
if(CONFIG_MENDER_CLIENT_INVENTORY_REFRESH_INTERVAL)
add_compile_definitions(CONFIG_MENDER_CLIENT_INVENTORY_REFRESH_INTERVAL=${CONFIG_MENDER_CLIENT_INVENTORY_REFRESH_INTERVAL})
endif()
endif()
if(CONFIG_MENDER_CLIENT_ADD_ON_TROUBLESHOOT)
add_compile_definitions(CONFIG_MENDER_CLIENT_ADD_ON_TROUBLESHOOT)
endif()

# Add definitions depending of the target
if(CONFIG_MENDER_PLATFORM_NET_TYPE MATCHES "generic/curl")
add_compile_definitions(CONFIG_MENDER_WEBSOCKET_THREAD_STACK_SIZE=64)
add_compile_definitions(CONFIG_MENDER_WEBSOCKET_THREAD_PRIORITY=0)
endif()
if(CONFIG_MENDER_PLATFORM_NET_TYPE MATCHES "zephyr")
add_compile_definitions(CONFIG_NET_SOCKETS_SOCKOPT_TLS)
add_compile_definitions(CONFIG_MENDER_NET_CA_CERTIFICATE_TAG=1)
endif()
if(CONFIG_MENDER_PLATFORM_SCHEDULER_TYPE MATCHES "freertos")
add_compile_definitions(CONFIG_MENDER_SCHEDULER_WORK_QUEUE_STACK_SIZE=20)
add_compile_definitions(CONFIG_MENDER_SCHEDULER_WORK_QUEUE_PRIORITY=5)
add_compile_definitions(CONFIG_MENDER_SCHEDULER_WORK_QUEUE_LENGTH=10)
endif()
if(CONFIG_MENDER_PLATFORM_SCHEDULER_TYPE MATCHES "posix")
add_compile_definitions(CONFIG_MENDER_SCHEDULER_WORK_QUEUE_STACK_SIZE=64)
add_compile_definitions(CONFIG_MENDER_SCHEDULER_WORK_QUEUE_PRIORITY=0)
add_compile_definitions(CONFIG_MENDER_SCHEDULER_WORK_QUEUE_LENGTH=10)
endif()
if(CONFIG_MENDER_PLATFORM_SCHEDULER_TYPE MATCHES "zephyr")
add_compile_definitions(CONFIG_MENDER_SCHEDULER_WORK_QUEUE_STACK_SIZE=12)
add_compile_definitions(CONFIG_MENDER_SCHEDULER_WORK_QUEUE_PRIORITY=5)
endif()
if(CONFIG_MENDER_PLATFORM_STORAGE_TYPE MATCHES "zephyr/nvs")
add_compile_definitions(CONFIG_MENDER_STORAGE_NVS_SECTOR_COUNT=4)
if (CMAKE_BUILD_TYPE MATCHES "Debug")
target_compile_options(${EXECUTABLE_NAME} PRIVATE -O1 -g)
target_compile_definitions(${EXECUTABLE_NAME} PRIVATE DEBUG)
else()
target_compile_options(${EXECUTABLE_NAME} PRIVATE -Os)
endif()

# Add sources
file(GLOB_RECURSE SOURCES_TEMP "${CMAKE_CURRENT_LIST_DIR}/src/*.c")
target_sources(${APP_EXECUTABLE_NAME} PRIVATE ${SOURCES_TEMP})
target_sources(${EXECUTABLE_NAME} PRIVATE ${SOURCES_TEMP})

# Include mocks
include("${CMAKE_CURRENT_LIST_DIR}/mocks/CMakeLists.txt")

# Include mender-mcu-client library
include_directories("${CMAKE_CURRENT_LIST_DIR}/../include")
include("${CMAKE_CURRENT_LIST_DIR}/../CMakeLists.txt")

# Link the executable with the mender-mcu-library
target_link_libraries(${APP_EXECUTABLE_NAME} mender-mcu-client pthread)
# Add definitions to configure the client
if(CONFIG_MENDER_PLATFORM_NET_TYPE MATCHES "zephyr")
target_compile_definitions(mender-mcu-client PRIVATE CONFIG_NET_SOCKETS_SOCKOPT_TLS)
target_compile_definitions(mender-mcu-client PRIVATE CONFIG_MENDER_NET_CA_CERTIFICATE_TAG=1)
endif()
if(CONFIG_MENDER_PLATFORM_STORAGE_TYPE MATCHES "zephyr/nvs")
target_compile_definitions(mender-mcu-client PRIVATE CONFIG_MENDER_STORAGE_NVS_SECTOR_COUNT=4)
endif()

# Link the mender-mcu-client library
if(CONFIG_MENDER_CLIENT_ADD_ON_TROUBLESHOOT)
target_link_libraries(${APP_EXECUTABLE_NAME} msgpack-c)
target_link_libraries(mender-mcu-client msgpack-c)
endif()
if(CONFIG_MENDER_PLATFORM_NET_TYPE MATCHES "generic/curl")
target_link_libraries(${APP_EXECUTABLE_NAME} curl)
target_link_libraries(mender-mcu-client curl)
endif()
if(CONFIG_MENDER_PLATFORM_SCHEDULER_TYPE MATCHES "posix")
target_link_libraries(${APP_EXECUTABLE_NAME} rt)
target_link_libraries(mender-mcu-client rt)
endif()
if(CONFIG_MENDER_PLATFORM_TLS_TYPE MATCHES "generic/cryptoauthlib")
target_link_libraries(${APP_EXECUTABLE_NAME} cryptoauth)
target_link_libraries(mender-mcu-client cryptoauth)
endif()

# Define project LANGUAGES
project(${PROJECT_BASE_NAME} LANGUAGES C ASM)

# Define project VERSION
file(STRINGS "${CMAKE_CURRENT_LIST_DIR}/../VERSION" VERSION_NUMBER LIMIT_COUNT 1)
STRING(REGEX REPLACE "^([0-9]+)\\.([0-9]+)\\.([0-9]+)-rc[0-9]+" "\\1.\\2.\\3" VERSION_NUMBER "${VERSION_NUMBER}")
project(${PROJECT_BASE_NAME} VERSION ${VERSION_NUMBER} LANGUAGES)
# Link the executable with the mender-mcu-client library
target_link_libraries(${EXECUTABLE_NAME} mender-mcu-client pthread)
2 changes: 1 addition & 1 deletion tests/mocks/cjson/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ if(NOT cjson_POPULATED)
endif()

# Add sources
target_sources(${APP_EXECUTABLE_NAME} PRIVATE "${GIT_FOLDER_NAME}/cJSON.c")
target_sources(${EXECUTABLE_NAME} PRIVATE "${GIT_FOLDER_NAME}/cJSON.c")

# Add include directories
include_directories(${GIT_FOLDER_NAME})
2 changes: 1 addition & 1 deletion tests/mocks/esp-idf/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

# Add sources
file(GLOB_RECURSE SOURCES_TEMP "${CMAKE_CURRENT_LIST_DIR}/src/*.c")
target_sources(${APP_EXECUTABLE_NAME} PRIVATE ${SOURCES_TEMP})
target_sources(${EXECUTABLE_NAME} PRIVATE ${SOURCES_TEMP})

# Add include directories
include_directories("${CMAKE_CURRENT_LIST_DIR}/include")
Expand Down
2 changes: 1 addition & 1 deletion tests/mocks/freertos/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ if(NOT freertos_POPULATED)
endif()

# Add sources
target_sources(${APP_EXECUTABLE_NAME} PRIVATE
target_sources(${EXECUTABLE_NAME} PRIVATE
"${GIT_FOLDER_NAME}/croutine.c"
"${GIT_FOLDER_NAME}/event_groups.c"
"${GIT_FOLDER_NAME}/list.c"
Expand Down
2 changes: 1 addition & 1 deletion tests/mocks/mbedtls/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ endif()

# Add sources
file(GLOB_RECURSE SOURCES_TEMP "${GIT_FOLDER_NAME}/library/*.c")
target_sources(${APP_EXECUTABLE_NAME} PRIVATE ${SOURCES_TEMP})
target_sources(${EXECUTABLE_NAME} PRIVATE ${SOURCES_TEMP})

# Add include directories
include_directories("${GIT_FOLDER_NAME}/include")
2 changes: 1 addition & 1 deletion tests/mocks/zephyr/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

# Add sources
file(GLOB_RECURSE SOURCES_TEMP "${CMAKE_CURRENT_LIST_DIR}/src/*.c")
target_sources(${APP_EXECUTABLE_NAME} PRIVATE ${SOURCES_TEMP})
target_sources(${EXECUTABLE_NAME} PRIVATE ${SOURCES_TEMP})

# Add include directories
include_directories("${CMAKE_CURRENT_LIST_DIR}/include")

0 comments on commit a7ecef3

Please sign in to comment.