Updated perfetto's GN build files to support traced compilation in QNX

Created new argument 'is_qnx' to handle all QNX-specific compilation
steps in GN build system. Currently, compilation for QNX is only
supported via perfetto's standalone builds. Also, updated the perfetto's
codebase to avoid running Linux-specific code in QNX. When compiling for
QNX the PERFETTO_OS_LINUX flag is still set to keep the QNX build as
compatible as possible with the Linux build.

With this change, one can build the QNX target of traced by compiling
with the following args.gn file:
'''
target_os = "qnx"
target_cpu = "arm64"
'''

Only arm64 architecture is supported and one needs to setup the QNX
developer environment before being able to compile.

NOTE: traced_relay compiles but still does not run with this change.

Test: tools/ninja -C out/qnx traced traced_relay perfetto
Bug: 382283537
Change-Id: I08bd3672a60b69cb92ba87eaeda9cec5b893afbc
26 files changed
tree: 25a094dc903644b8912598b6edd50d9c8c491ea0
  1. .github/
  2. bazel/
  3. build_overrides/
  4. buildtools/
  5. debian/
  6. docs/
  7. examples/
  8. gn/
  9. include/
  10. infra/
  11. protos/
  12. python/
  13. src/
  14. test/
  15. third_party/
  16. tools/
  17. ui/
  18. .bazelignore
  19. .bazelrc
  20. .clang-format
  21. .clang-tidy
  22. .git-blame-ignore-revs
  23. .gitattributes
  24. .gitignore
  25. .gn
  26. .style.yapf
  27. Android.bp
  28. Android.bp.extras
  29. BUILD
  30. BUILD.extras
  31. BUILD.gn
  32. CHANGELOG
  33. codereview.settings
  34. DIR_METADATA
  35. heapprofd.rc
  36. LICENSE
  37. meson.build
  38. METADATA
  39. MODULE_LICENSE_APACHE2
  40. OWNERS
  41. perfetto.rc
  42. PerfettoIntegrationTests.xml
  43. persistent_cfg.pbtxt
  44. PRESUBMIT.py
  45. README.chromium
  46. README.md
  47. TEST_MAPPING
  48. traced_perf.rc
  49. WATCHLISTS
  50. WORKSPACE
README.md

Perfetto - System profiling, app tracing and trace analysis

Perfetto is a production-grade open-source stack for performance instrumentation and trace analysis. It offers services and libraries and for recording system-level and app-level traces, native + java heap profiling, a library for analyzing traces using SQL and a web-based UI to visualize and explore multi-GB traces.

See https://perfetto.dev/docs or the /docs/ directory for documentation.