| <!-- | |
| Licensed to the Apache Software Foundation (ASF) under one | |
| or more contributor license agreements. See the NOTICE file | |
| distributed with this work for additional information | |
| regarding copyright ownership. The ASF licenses this file | |
| to you under the Apache License, Version 2.0 (the | |
| "License"); you may not use this file except in compliance | |
| with the License. You may obtain a copy of the License at | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| Unless required by applicable law or agreed to in writing, | |
| software distributed under the License is distributed on an | |
| "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY | |
| KIND, either express or implied. See the License for the | |
| specific language governing permissions and limitations | |
| under the License. | |
| --> | |
| # Third-party dependency cache (`client-cpp/third-party`) | |
| CMake downloads (or reuses) build-time tarballs and archives here. The | |
| directory ships with the source tree so you can **stage dependencies on a | |
| networked machine, copy the whole IoTDB checkout to an offline host, and | |
| build `client-cpp` with `-DIOTDB_OFFLINE=ON`**. | |
| Tarballs themselves are **not** committed to Git (see per-platform | |
| `.gitignore` files). Only this README and the empty platform folders are | |
| tracked. Each `linux/`, `mac/`, and `windows/` sub-folder ships a minimal | |
| `.gitignore` (`*` with `!.gitignore`) so Git keeps the directory in the | |
| tree while ignoring downloaded archives. | |
| ## Layout | |
| ``` | |
| third-party/ | |
| ├── linux/ # tarballs for Linux offline builds | |
| ├── mac/ # tarballs for macOS offline builds | |
| └── windows/ # tarballs / zips for Windows offline builds | |
| ``` | |
| Override the root with `-DIOTDB_DEPS_DIR=<path>` (Maven: `-Diotdb.deps.dir=...`). | |
| The platform sub-folder (`linux/`, `mac/`, `windows/`) is selected automatically. | |
| ## Staging dependencies (online machine) | |
| Run a normal **online** configure once; CMake caches everything under the | |
| matching `<os>/` folder: | |
| ```bash | |
| cmake -S iotdb-client/client-cpp -B build | |
| # or: mvn -P with-cpp -pl iotdb-client/client-cpp -am -DskipTests package | |
| ``` | |
| Alternatively copy files manually from the URLs listed in | |
| [`README.md`](../README.md) (*Offline build* section). | |
| ## Offline machine (copy whole IoTDB tree) | |
| 1. Copy the entire IoTDB repository (including `iotdb-client/client-cpp/third-party/<os>/`). | |
| 2. Configure with offline mode: | |
| ```bash | |
| cmake -S iotdb-client/client-cpp -B build -DIOTDB_OFFLINE=ON | |
| cmake --build build --config Release --target install | |
| ``` | |
| ## Per-platform files (offline minimum) | |
| | Platform | Typical files | | |
| |------------|---------------| | |
| | `linux/` | `thrift-0.21.0.tar.gz`, `boost_1_60_0.tar.gz`, `m4-1.4.19.tar.gz`, `flex-2.6.4.tar.gz`, `bison-3.8.tar.gz` (+ `openssl-3.5.0.tar.gz` when `WITH_SSL=ON`) | | |
| | `mac/` | `thrift-0.21.0.tar.gz`, `boost_1_60_0.tar.gz` (Xcode CLT usually provides m4/flex/bison) | | |
| | `windows/` | `thrift-0.21.0.tar.gz`, `boost_1_60_0.tar.gz`, `win_flex_bison-2.5.25.zip` (or any `win_flex_bison*.zip`; skip if flex/bison already on `PATH`) | | |
| Download URLs: see the *Offline build* table in [`README.md`](../README.md). |