diff --git a/Svc/ComQueue/CMakeLists.txt b/Svc/ComQueue/CMakeLists.txt index b5874cfac0..2fa95e605a 100644 --- a/Svc/ComQueue/CMakeLists.txt +++ b/Svc/ComQueue/CMakeLists.txt @@ -7,26 +7,27 @@ # Note: using PROJECT_NAME as EXECUTABLE_NAME #### -set(MOD_DEPS - Utils/Types - Fw/Buffer - Fw/Types - ) -set(SOURCE_FILES - "${CMAKE_CURRENT_LIST_DIR}/ComQueue.fpp" - "${CMAKE_CURRENT_LIST_DIR}/ComQueue.cpp" - ) -register_fprime_module() +register_fprime_library( + SOURCES + "${CMAKE_CURRENT_LIST_DIR}/ComQueue.cpp" + AUTOCODER_INPUTS + "${CMAKE_CURRENT_LIST_DIR}/ComQueue.fpp" + DEPENDS + Fw_Types + Utils_Types + Fw_Buffer +) ### UTs ### -set(UT_SOURCE_FILES - "${CMAKE_CURRENT_LIST_DIR}/ComQueue.fpp" - "${CMAKE_CURRENT_LIST_DIR}/test/ut/ComQueueTestMain.cpp" - "${CMAKE_CURRENT_LIST_DIR}/test/ut/ComQueueTester.cpp" - ) +register_fprime_ut( + SOURCES + "${CMAKE_CURRENT_LIST_DIR}/test/ut/ComQueueTestMain.cpp" + "${CMAKE_CURRENT_LIST_DIR}/test/ut/ComQueueTester.cpp" + AUTOCODER_INPUTS + "${CMAKE_CURRENT_LIST_DIR}/ComQueue.fpp" + UT_AUTO_HELPERS +) -set(UT_AUTO_HELPERS ON) -register_fprime_ut() set (UT_TARGET_NAME "${FPRIME_CURRENT_MODULE}_ut_exe") if (TARGET "${UT_TARGET_NAME}") target_compile_options("${UT_TARGET_NAME}" PRIVATE -Wno-conversion) diff --git a/cmake/API.cmake b/cmake/API.cmake index 7bcd6cd74c..189c7eb76d 100644 --- a/cmake/API.cmake +++ b/cmake/API.cmake @@ -534,7 +534,7 @@ endfunction(register_fprime_ut) # #### function(fprime_add_unit_test_build_target) - fprime__internal_add_build_target("Unit Test" "INCLUDE_GTEST" ${ARGN}) + fprime__internal_add_build_target("Unit Test" "INCLUDE_GTEST;UT_AUTO_HELPERS" ${ARGN}) clear_historical_variables() set(INTERNAL_MODULE_NAME "${INTERNAL_MODULE_NAME}" PARENT_SCOPE) endfunction() diff --git a/cmake/autocoder/ai_ut.cmake b/cmake/autocoder/ai_ut.cmake index 0c8531f198..e02a9ceb51 100644 --- a/cmake/autocoder/ai_ut.cmake +++ b/cmake/autocoder/ai_ut.cmake @@ -45,6 +45,7 @@ function(ai_ut_setup_autocode MODULE_NAME AC_INPUT_FILE) list(APPEND REMOVALS "${CMAKE_CURRENT_BINARY_DIR}/GTestBase.cpp" "${CMAKE_CURRENT_BINARY_DIR}/GTestBase.hpp") endif() # Extra test helpers file + get_target_property(UT_AUTO_HELPERS "${MODULE_NAME}" FPRIME_UT_AUTO_HELPERS) if (DEFINED UT_AUTO_HELPERS AND UT_AUTO_HELPERS) list(APPEND AUTOCODER_GENERATED "${CMAKE_CURRENT_BINARY_DIR}/TesterHelpers.cpp") else() diff --git a/cmake/autocoder/ai_ut_impl.cmake b/cmake/autocoder/ai_ut_impl.cmake index 5938315426..9befd1f788 100644 --- a/cmake/autocoder/ai_ut_impl.cmake +++ b/cmake/autocoder/ai_ut_impl.cmake @@ -42,6 +42,7 @@ function(ai_ut_impl_setup_autocode MODULE_NAME AC_INPUT_FILE) "${CMAKE_CURRENT_SOURCE_DIR}/GTestBase.hpp" "${CMAKE_CURRENT_SOURCE_DIR}/GTestBase.cpp") # Extra test helpers file + get_target_property(UT_AUTO_HELPERS "${MODULE_NAME}" FPRIME_UT_AUTO_HELPERS) if (NOT DEFINED UT_AUTO_HELPERS OR NOT UT_AUTO_HELPERS) list(APPEND AUTOCODER_GENERATED "${CMAKE_CURRENT_SOURCE_DIR}/TesterHelpers.cpp") else() diff --git a/cmake/autocoder/fpp_ut.cmake b/cmake/autocoder/fpp_ut.cmake index 108bf34762..f3b2982fc0 100644 --- a/cmake/autocoder/fpp_ut.cmake +++ b/cmake/autocoder/fpp_ut.cmake @@ -49,6 +49,7 @@ function(fpp_ut_setup_autocode MODULE_NAME AC_INPUT_FILES) endif() endforeach() set(CLI_ARGS ${FPP_TO_CPP} "-u" "-d" "${CMAKE_CURRENT_BINARY_DIR}" ${IMPORTS} ${AC_INPUT_FILES} "-p" "${FPRIME_BUILD_LOCATIONS_COMMA_SEP},${CMAKE_BINARY_DIR}") + get_target_property(UT_AUTO_HELPERS "${MODULE_NAME}" FPRIME_UT_AUTO_HELPERS) if (UT_AUTO_HELPERS) list(APPEND CLI_ARGS "-a") else() diff --git a/cmake/module.cmake b/cmake/module.cmake index 32c2784c2b..b62120ac0d 100644 --- a/cmake/module.cmake +++ b/cmake/module.cmake @@ -199,6 +199,11 @@ function(fprime__internal_add_build_target_helper TARGET_NAME TYPE SOURCES AUTOC else() fprime_cmake_fatal_error("Cannot register compilation target of type ${TYPE}") endif() + if (TYPE STREQUAL "Unit Test" AND INTERNAL_UT_AUTO_HELPERS) + set_target_properties("${TARGET_NAME}" PROPERTIES + FPRIME_UT_AUTO_HELPERS TRUE + ) + endif() # Use the appropriate link type for the target get_target_property(CMAKE_LIBRARY_TYPE "${TARGET_NAME}" TYPE) if (CMAKE_LIBRARY_TYPE MATCHES "INTERFACE_LIBRARY") diff --git a/cmake/target/ut.cmake b/cmake/target/ut.cmake index 1ba59fc463..cd9852a725 100644 --- a/cmake/target/ut.cmake +++ b/cmake/target/ut.cmake @@ -80,6 +80,7 @@ function(ut_setup_unit_test_include_directories UT_EXE_NAME SOURCE_FILES) set(UT_INCLUDE_DIRECTORIES "${CMAKE_CURRENT_BINARY_DIR}") # When running with auto-helpers, we need to include the .hpp directories as things are imported without path # e.g. "#include " and there is no guarantee for the location of these files + get_target_property(UT_AUTO_HELPERS "${UT_EXE_NAME}" FPRIME_UT_AUTO_HELPERS) if (DEFINED UT_AUTO_HELPERS AND UT_AUTO_HELPERS) foreach(SOURCE_FILE IN LISTS SOURCE_FILES) get_filename_component(SOURCE_EXT "${SOURCE_FILE}" LAST_EXT)