third_party/stm32cube: Support env_setup install
third_party/stm32cube: Support env_setup install

Modifies third_party/stm32cube's GN build rules to use no-op
implementations when dir_pw_third_party_stm32cube == "", matching
the behavior of other third_party modules like freertos.

This allows pw_system dependencies like freertos, nanopb and
stm32cube to be incorporated into a trivially reproducable build
environment using the existing env_setup and .gn mechanisms.

Specifically, now you can add the following to your env_setup json
file:

  "virtualenv": {
    "gn_args": [
      "dir_pw_third_party_stm32cube_f4=\"\""
    ]
  },
  "pw_packages": [
    "nanopb",
    "freertos",
    "stm32cube_f4"
  ]

And the following to your .gn file:
  dir_pw_third_party_nanopb = "//.environment/packages/nanopb"
  dir_pw_third_party_freertos = "//.environment/packages/freertos"
  dir_pw_third_party_stm32cube_f4 =
      "//.environment/packages/stm32cube_f4"

With those in place, users can check out the codebase, source
bootstrap.sh, and then build without any fragile manual steps
configuring 'gn args out'.

Without this change, there is a dependency cycle where env_setup needs
to do a 'gn gen' prior to installing a pw_package, but the stm32cube
rules would fail to gen because the stm32cube install directory is not
yet populated (since the stm32cube pw package hasn't been
installed yet).

Change-Id: Iea4443c97940d6069239f8b78f143fbaa15d3d5c
Reviewed-on: https://pigweed-review.googlesource.com/c/pigweed/pigweed/+/85300
Reviewed-by: Armando Montanez <97ef6fdb231c129ac8827d9f0c4106bfbf57f74f@google.com>
Pigweed-Auto-Submit: Armando Montanez <97ef6fdb231c129ac8827d9f0c4106bfbf57f74f@google.com>
Reviewed-by: Alexei Frolov <a1b001416a8cf9aaea32a3411f8f3c0793ebc0b5@google.com>
Commit-Queue: Auto-Submit <14637eda5603879df170705285bf30f5996692f0@pigweed.google.com.iam.gserviceaccount.com>

google/pigweed,google/pigweed,google/pigweed,google/pigweed,google/pigweed,google/pigweed,google/pigweed,google/pigweed,google/pigweed,google/pigweed