From ddaf99c9d4f6d2db4814459c09860a343b09e189 Mon Sep 17 00:00:00 2001 From: Ronald Cron Date: Fri, 19 Jun 2020 11:27:26 +0200 Subject: [PATCH] build: Add top-level mbedtls_test target In preparation of linking common test objects in programs, add the top-level mbedtls_test target. This target consists of the common test objects. It is necessary to declare it at the top-level as both tests and programs will depend on it and it is necessary to synchronize the compilation of those objects for tests and programs for the case of parallel building. Signed-off-by: Ronald Cron --- CMakeLists.txt | 9 +++++++++ Makefile | 7 +++++-- tests/CMakeLists.txt | 7 ------- tests/Makefile | 2 ++ 4 files changed, 16 insertions(+), 9 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 783852549..af7400c9f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -238,6 +238,15 @@ list(APPEND libs ${thirdparty_lib}) add_subdirectory(library) +if(ENABLE_TESTING OR ENABLE_PROGRAMS) + file(GLOB MBEDTLS_TEST_FILES ${CMAKE_CURRENT_SOURCE_DIR}/tests/src/*.c) + add_library(mbedtls_test OBJECT ${MBEDTLS_TEST_FILES}) + target_include_directories(mbedtls_test + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/tests/include + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include + PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/library) +endif() + if(ENABLE_PROGRAMS) add_subdirectory(programs) endif() diff --git a/Makefile b/Makefile index 5ac5a53f6..d00183e5a 100644 --- a/Makefile +++ b/Makefile @@ -10,15 +10,18 @@ all: programs tests no_test: programs -programs: lib +programs: lib mbedtls_test $(MAKE) -C programs lib: $(MAKE) -C library -tests: lib +tests: lib mbedtls_test $(MAKE) -C tests +mbedtls_test: + $(MAKE) -C tests mbedtls_test + ifndef WINDOWS install: no_test mkdir -p $(DESTDIR)/include/mbedtls diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index ce608c3a2..8a74c6bfb 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -69,13 +69,6 @@ if(MSVC) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /WX-") endif(MSVC) -file(GLOB MBEDTLS_TEST_FILES ${CMAKE_CURRENT_SOURCE_DIR}/src/*.c) -add_library(mbedtls_test OBJECT ${MBEDTLS_TEST_FILES}) -target_include_directories(mbedtls_test - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../include - PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/../library) - add_test_suite(aes aes.cbc) add_test_suite(aes aes.cfb) add_test_suite(aes aes.ecb) diff --git a/tests/Makefile b/tests/Makefile index 68f85d2d3..80c84fa19 100644 --- a/tests/Makefile +++ b/tests/Makefile @@ -79,6 +79,8 @@ $(MBEDLIBS): MBEDTLS_TEST_OBJS=$(patsubst %.c,%.o,$(wildcard src/*.c)) +mbedtls_test: $(MBEDTLS_TEST_OBJS) + # Rule to compile common test C files in src folder src/%.o : src/%.c echo " CC $<"