mirror of
https://github.com/nasa/fprime.git
synced 2025-12-10 00:44:37 -06:00
* Add register_fprime_* tracking to CMake * Add deployment dependency tracking * Add deployment convienence target * Bump to fprime tools release that supports external checks * Fix UT roll-up when no deployment UTs exist * Restore --all functionality of root directory * Fix check all
68 lines
2.6 KiB
CMake
68 lines
2.6 KiB
CMake
####
|
|
# fprime-util.cmake:
|
|
#
|
|
# This file contains utility functions for writing the metadata used by `fprime-util` for supporting the standard
|
|
# fprime development process.
|
|
####
|
|
include_guard()
|
|
|
|
set(FPRIME__INTERNAL_UTILITY_SUFFIX "fprime-util")
|
|
set(FPRIME__INTERNAL_UTILITY_BUILD_TARGETS_FILE "build-targets.${FPRIME__INTERNAL_UTILITY_SUFFIX}")
|
|
set(FPRIME__INTERNAL_UTILITY_SUBDIRECTORY_FILE "sub-directories.${FPRIME__INTERNAL_UTILITY_SUFFIX}")
|
|
set(FPRIME__INTERNAL_UTILITY_TESTS_FILE "tests.${FPRIME__INTERNAL_UTILITY_SUFFIX}")
|
|
|
|
####
|
|
# Function `fprime_util_metadata_clear`:
|
|
#
|
|
# Clears all metadata files written to a subdirectory. This is expected to be called when the subdirectory is added and
|
|
# removes all files written to this directory.
|
|
#
|
|
# **Parameters:**
|
|
# - `CHILD_DIRECTORY`: directory to clear metadata from
|
|
####
|
|
function(fprime_util_metadata_clear CHILD_DIRECTORY)
|
|
file(WRITE "${CHILD_DIRECTORY}/${FPRIME__INTERNAL_UTILITY_BUILD_TARGETS_FILE}" "")
|
|
file(WRITE "${CHILD_DIRECTORY}/${FPRIME__INTERNAL_UTILITY_SUBDIRECTORY_FILE}" "")
|
|
file(WRITE "${CHILD_DIRECTORY}/${FPRIME__INTERNAL_UTILITY_TESTS_FILE}" "")
|
|
endfunction()
|
|
|
|
####
|
|
# Function `fprime_util_metadata_add_subdirectory`:
|
|
#
|
|
# This adds a new subdirectory from a metadata perspective by performing several steps:
|
|
# 1. Clears the metadata for the subdirectory
|
|
# 2. Adds the subdirectory to the current directory's subdirectory list
|
|
#
|
|
# **Parameters:**
|
|
# - `CHILD_SOURCE_DIRECTORY`: source directory of the subdirectory
|
|
# - `CHILD_BINARY_DIRECTORY`: binary directory of the subdirectory
|
|
####
|
|
function(fprime_util_metadata_add_subdirectory CHILD_SOURCE_DIRECTORY CHILD_BINARY_DIRECTORY)
|
|
fprime_util_metadata_clear("${CHILD_BINARY_DIRECTORY}")
|
|
file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/${FPRIME__INTERNAL_UTILITY_SUBDIRECTORY_FILE}" "${CHILD_SOURCE_DIRECTORY}\n")
|
|
endfunction()
|
|
|
|
####
|
|
# Function `fprime_util_metadata_add_build_target`:
|
|
#
|
|
# This adds a new build target from a metadata perspective by adding it to the list in the current directory.
|
|
#
|
|
# **Parameters:**
|
|
# - `BUILD_TARGET`: name of the build target to add
|
|
####
|
|
function(fprime_util_metadata_add_build_target BUILD_TARGET)
|
|
file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/${FPRIME__INTERNAL_UTILITY_BUILD_TARGETS_FILE}" "${BUILD_TARGET}\n")
|
|
endfunction()
|
|
|
|
####
|
|
# Function `fprime_util_metadata_add_test`:
|
|
#
|
|
# This adds a new test from a metadata perspective by adding it to the list in the current directory.
|
|
#
|
|
# **Parameters:**
|
|
# - `TEST_NAME`: name of the test to add
|
|
####
|
|
function(fprime_util_metadata_add_test TEST_NAME)
|
|
file(APPEND "${CMAKE_CURRENT_BINARY_DIR}/${FPRIME__INTERNAL_UTILITY_TESTS_FILE}" "${TEST_NAME}\n")
|
|
endfunction()
|