Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CMake: Pass application/test name to post build operation #14378

Merged
merged 4 commits into from
Mar 5, 2021

Conversation

LDong-Arm
Copy link
Contributor

@LDong-Arm LDong-Arm commented Mar 4, 2021

Summary of changes

Pass the exact application (main CMake target) name to the post-build hook, when an application's or test's CMakeLists.txt calls mbed_set_post_build(). The interface is CMake's built-in mechanism:

  • set_target_properties() to set a property (e.g. application name) on the customer target
  • $<TARGET_PROPERTY:target,property> to query the property

This removes the need to use "glob" to find binaries, which is less reliable. The PR refactors existing targets (Cypress, NXP) to use the new mechanism.

Additionally, this PR forces the regeneration of raw application binaries on rebuild, to avoid having the post build running again on an already treated binary from a previous build.

Impact of changes

Migration actions required

Documentation

None.


Pull request type

[x] Patch update (Bug fix / Target update / Docs update / Test update / Refactor)
[] Feature update (New feature / Functionality change / New API)
[] Major update (Breaking change E.g. Return code change / API behaviour change)

Test results

[] No Tests required for this change (E.g docs only update)
[x] Covered by existing mbed-os tests (Greentea or Unittest)
[x] Tests / results supplied as part of this PR

Manually tested mbed-os-example-blinky and Greentea test compilation on CYTFM_064B0S2_4343W (Cypress) and ARCH_PRO (NXP).


Reviewers

@hugueskamba @0xc0170 @rajkan01 @rwalton-arm


If a target has a post binary hook, we should force regenerate
the application binaries every time so that the hook is run on a
raw binary rather than a previous build that already went through
the post-build process once.
Pass the exact name to the post-build hook, when an application's
or test's `CMakeLists.txt` calls `mbed_set_post_build()`. The
interface is CMake's built-in mechanism:
* `set_target_properties()` to set a property, e.g. application name
* `$<TARGET_PROPERTY:target,property>` to query a property at run time
@ciarmcom ciarmcom added the release-type: patch Indentifies a PR as containing just a patch label Mar 4, 2021
@ciarmcom
Copy link
Member

ciarmcom commented Mar 4, 2021

@LDong-Arm, thank you for your changes.
@rajkan01 @rwalton-arm @hugueskamba @0xc0170 @ARMmbed/mbed-os-maintainers please review.

This removes the need to use "glob" a file extension, and uses
precise application names.
This removes the need to use "glob" a file extension, and uses
precise application names.
@0xc0170
Copy link
Contributor

0xc0170 commented Mar 5, 2021

CI started

@mergify mergify bot added needs: CI and removed needs: review labels Mar 5, 2021
@mbed-ci
Copy link

mbed-ci commented Mar 5, 2021

Jenkins CI Test : ✔️ SUCCESS

Build Number: 1 | 🔒 Jenkins CI Job | 🌐 Logs & Artifacts

CLICK for Detailed Summary

jobs Status
jenkins-ci/mbed-os-ci_unittests ✔️
jenkins-ci/mbed-os-ci_cmake-example-ARM ✔️
jenkins-ci/mbed-os-ci_cmake-example-GCC_ARM ✔️
jenkins-ci/mbed-os-ci_build-example-ARM ✔️
jenkins-ci/mbed-os-ci_build-cloud-example-ARM ✔️
jenkins-ci/mbed-os-ci_build-example-GCC_ARM ✔️
jenkins-ci/mbed-os-ci_build-cloud-example-GCC_ARM ✔️
jenkins-ci/mbed-os-ci_build-greentea-GCC_ARM ✔️
jenkins-ci/mbed-os-ci_build-greentea-ARM ✔️
jenkins-ci/mbed-os-ci_greentea-test ✔️
jenkins-ci/mbed-os-ci_cmake-example-test ✔️

@mbedmain mbedmain added release-version: 6.9.0 Release-pending and removed release-type: patch Indentifies a PR as containing just a patch Release-pending labels Mar 15, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

6 participants