You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Purpose:** Runs external build process using common_external_build.sh.
152
+
153
+
**What it does:**
154
+
1. Verifies `build_tools_workflows` directory exists (cloned by `run_setup_dependencies.sh`)
155
+
2. Verifies `common_external_build.sh` is present
156
+
3. Runs `common_external_build.sh` from build_tools_workflows with no arguments
157
+
4. Does NOT clean up build_tools_workflows directory (preserved for subsequent use)
158
+
159
+
**Usage:**
160
+
```bash
161
+
./run_external_build.sh
162
+
```
163
+
164
+
**Prerequisites:**
165
+
-`run_setup_dependencies.sh` must be run first (to clone build_tools_workflows)
166
+
- All dependency headers/libraries must be available
167
+
168
+
**Outputs:**
169
+
- Build artifacts based on common_external_build.sh implementation
170
+
- build_tools_workflows remains in place (not cleaned up)
171
+
172
+
**Primary Use Case - Dependency Builds in component_config.json:**
173
+
174
+
This script is primarily used to build **dependency repositories** that have complex build requirements. When a dependency has its own `cov_docker_script/run_external_build.sh`, it can be invoked from the parent component's `component_config.json`.
175
+
176
+
**Example configuration in component_config.json:**
1. The parent component's `setup_dependencies.sh` clones the dependency repository (e.g., Utopia)
195
+
2. The dependency's `run_external_build.sh` is executed from the dependency's directory
196
+
3. This script internally:
197
+
- Sets up the dependency's own build tools and dependencies
198
+
- Runs the dependency's native build process
199
+
- Produces shared libraries (`.so` files)
200
+
4. The generated shared libraries are installed to `$HOME/usr/local/lib/` or `$HOME/usr/lib/`
201
+
5. These libraries are then available for the parent component's native build
202
+
203
+
**When to use this approach:**
204
+
- Dependency has complex multi-step build requirements
205
+
- Dependency has its own sub-dependencies that need to be built
206
+
- Dependency requires custom build logic beyond standard autotools/cmake/meson
207
+
- Dependency repository already has a `cov_docker_script/run_external_build.sh` script
208
+
209
+
**Note:** This approach allows dependencies to manage their own complete build pipeline, producing the necessary shared libraries that the parent component links against during its native compilation.
0 commit comments