Skip to content

docs: add QNX toolchain integration contract#99

Merged
nradakovic merged 4 commits into
mainfrom
nira_add_qnx_integration_docs
Jul 14, 2026
Merged

docs: add QNX toolchain integration contract#99
nradakovic merged 4 commits into
mainfrom
nira_add_qnx_integration_docs

Conversation

@nradakovic

Copy link
Copy Markdown
Member

Document QNX SDP acquisition, local installation layout, required environment variables, Bazel configuration (.bazelrc), sandbox writable paths, and verification procedures for QNX toolchain setup.

resolves #96

@nradakovic nradakovic self-assigned this Jul 9, 2026
Copilot AI review requested due to automatic review settings July 9, 2026 14:40
@nradakovic nradakovic requested a review from antonkri as a code owner July 9, 2026 14:40
@nradakovic nradakovic added the documentation Improvements or additions to documentation label Jul 9, 2026
@nradakovic nradakovic added the p4 Negligible impact - improvements and/or cosmetic features. label Jul 9, 2026
@nradakovic nradakovic force-pushed the nira_add_qnx_integration_docs branch from 9f528a1 to 6046f7c Compare July 9, 2026 14:44

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds an “Integration Contract” guide to document how to acquire, install, configure, and verify a local QNX SDP + licensing setup so Bazel workspaces can use the QNX toolchains provided by this repository (addresses #96).

Changes:

  • Added step-by-step instructions for obtaining QNX SDP and licenses, and expected local installation layout.
  • Documented environment variables, .bazelrc setup, sandbox writable paths, and verification build steps.
  • Added troubleshooting guidance for common setup failures.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/qnx_integration.md Outdated
Comment on lines +43 to +44
The license is typically a file that must be accessible at runtime. See
[License Configuration](#license-configuration) for how to configure the license path.
Comment thread docs/qnx_integration.md Outdated
Comment on lines +144 to +147
- **`license_path`**: Path to the QNX license file directory
(default: `/opt/score_qnx/license/licenses`)
- **`license_info_variable`**: Custom environment variable name for license configuration
- **`license_info_value`**: Custom value for license environment variable
Comment thread docs/qnx_integration.md Outdated
Comment on lines +200 to +201
# Or use the explicit toolchain:
bazel build --extra_toolchains=@qnx_toolchain//:x86_64-qnx-gcc_8.0.0 //:hello_qnx
Comment thread docs/qnx_integration.md Outdated

#### 5. Troubleshooting

- **License not found**: Ensure `QNXLM_LICENSE_FILE` is set and points to a valid license file
Comment thread docs/qnx_integration.md Outdated
Comment on lines +86 to +94
The following environment variable is commonly used for QNX license configuration:

- **`QNXLM_LICENSE_FILE`**: Path to the QNX license file. If the license is
installed in the default location, this may not need to be set explicitly.

Example:
```bash
export QNXLM_LICENSE_FILE=/opt/score_qnx/license/licenses
```
Comment thread docs/qnx_integration.md Outdated
Comment on lines +105 to +118
# Enable the QNX toolchain
--extra_toolchains=@{repository_name}//:x86_64-qnx-gcc_8.0.0
# Or for ARM64:
--extra_toolchains=@{repository_name}//:aarch64-qnx-gcc_8.0.0

# Configure QNX license location (if not in default path)
# If QNXLM_LICENSE_FILE is set in your environment, this may not be needed
build --action_env=QNXLM_LICENSE_FILE=/opt/score_qnx/license/licenses

# Allow Bazel to write temporary files to /var/tmp for QNX compiler configuration
build --sandbox_writable_path=/var/tmp

# If using the credential helper for authenticated downloads:
common --credential_helper=*.qnx.com=/path/to/qnx_credential_helper.py
Comment thread docs/qnx_integration.md Outdated
Comment thread docs/qnx_integration.md Outdated
Comment thread docs/qnx_integration.md Outdated
@nradakovic nradakovic force-pushed the nira_add_qnx_integration_docs branch 2 times, most recently from 4ebbe5a to 1e0140d Compare July 9, 2026 14:47
@nradakovic nradakovic requested a review from Copilot July 9, 2026 15:05

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 9 comments.

Comment thread docs/qnx_integration.md Outdated
Comment thread docs/qnx_integration.md Outdated
Comment thread docs/qnx_integration.md
Comment thread docs/qnx_integration.md Outdated
Comment thread docs/qnx_integration.md
Comment thread docs/qnx_integration.md
Comment thread docs/qnx_integration.md
Comment thread docs/qnx_integration.md Outdated
Comment thread docs/qnx_integration.md Outdated
Document QNX SDP acquisition, local installation layout, required
environment variables, Bazel configuration (.bazelrc), sandbox writable
paths, and verification procedures for QNX toolchain setup.

resolves #96
@nradakovic nradakovic force-pushed the nira_add_qnx_integration_docs branch from 1e0140d to 3facac9 Compare July 9, 2026 15:26
The latest module version is 0.5.4, not 0.4.0.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated 3 comments.

Comment thread docs/qnx_integration.md
Comment thread docs/qnx_integration.md
Comment thread docs/qnx_integration.md Outdated
Small fixes for QNX integration docs to increase clarity and
avoid possible issues during QNX integration.

resolves #96
@4og

4og commented Jul 10, 2026

Copy link
Copy Markdown
Member

Hi @nradakovic, great guide!

I would maybe split it in two parts:

  • a guide for maintainers who want to add QNX support in their bazel modules.
  • a user guide for those who want to contribute to an open-source bazel module that already has the QNX toolchain configured.

The second one should be as straightforward as possible, ideally a step-by step guide that would explain what needs to be done locally to be able to run bazel build & bazel test after cloning a repository.

@nradakovic nradakovic force-pushed the nira_add_qnx_integration_docs branch 6 times, most recently from aaf0a23 to 9c4ce80 Compare July 10, 2026 09:36
@nradakovic nradakovic force-pushed the nira_add_qnx_integration_docs branch 3 times, most recently from 412bfd7 to e670e22 Compare July 10, 2026 10:19
The documentation is split with clear focus topics for maintainers
and for users.
@nradakovic nradakovic force-pushed the nira_add_qnx_integration_docs branch from e670e22 to 03b0ba8 Compare July 10, 2026 10:20
@4og 4og requested a review from Copilot July 10, 2026 14:00

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 3 out of 4 changed files in this pull request and generated 3 comments.

Comment thread docs/qnx_integration.md

- [ ] **Replace SDP version**: Update `8.0.0` to your module's target SDP version
- [ ] **Update paths**: Adapt default paths and examples to your environment conventions
- [ ] **Update configuration variables**: Adapt configuration variables to your moodule configurations
Comment thread docs/qnx_integration.md
Comment on lines +409 to +416
gcc.toolchain(
name = "qnx_toolchain",
target_cpu = "x86_64",
target_os = "qnx",
sdp_version = "8.0.0",
use_default_package = True,
license_path = "/path/to/your/license/file",
)
Comment thread docs/qnx_integration.md
Comment on lines +425 to +433
gcc.toolchain(
name = "qnx_toolchain",
target_cpu = "x86_64",
target_os = "qnx",
sdp_version = "8.0.0",
use_default_package = True,
license_path = "/path/to/your/license/file",
license_info_url = "https://your-license-server.com/qnx-license",
)
Comment thread docs/qnx_integration.md
Comment on lines +104 to +107
bazel test --config=x86_64-qnx //...
```

> NOTE: For running tests, host platform must be QNX or use `--run_under=`. Check Bazel documentation for details.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The part about tests won't work out of the box. Users have to integrate https://github.com/eclipse-score/qnx_unit_tests and configure it properly.

Same applies to bazel test occurrences below in this md.
Maybe simply adding a sentence to refer to that module if one wants to execute unit tests?

@nradakovic nradakovic Jul 10, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

On top it says:

Example for GitHub Actions

I do not want to depend on documentation from another module, plus the toolchain will be used beyond S-CORE (at least that's the idea). So for S-CORE QNX Integration, it make sense to mention it. For toolchain setup example, not so much.

Comment thread docs/qnx_integration.md
Comment on lines +126 to +127
sdp_version = "7.1.0",
use_default_package = True,

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

does default package work for qnx7?

I would completely skip mentioning version 7

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It does if you set it. QORIX is using QNX7 internally. In the end it, it's module responsability to ensure which SDP version they want to support. Toolchain can do whatever.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And this is just an example. The goal of this section is to present posibilites. When it comes to supported platforms on S-CORE, that on reference integration to define. Doesn't make too much sense that toolchain configuration dictates which platform project supports.

@nradakovic nradakovic merged commit 019d59c into main Jul 14, 2026
13 checks passed
@nradakovic nradakovic deleted the nira_add_qnx_integration_docs branch July 14, 2026 10:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation p4 Negligible impact - improvements and/or cosmetic features.

Projects

Development

Successfully merging this pull request may close these issues.

Add QNX Everywhere setup instructions to repository documentation

4 participants