ccgo 2.2.1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. ccgo-2.2.1/LICENSE +25 -0
  2. ccgo-2.2.1/MANIFEST.in +17 -0
  3. ccgo-2.2.1/PKG-INFO +512 -0
  4. ccgo-2.2.1/README.md +482 -0
  5. ccgo-2.2.1/ccgo/__init__.py +0 -0
  6. ccgo-2.2.1/ccgo/build_scripts/CCGO.toml.example +89 -0
  7. ccgo-2.2.1/ccgo/build_scripts/__init__.py +26 -0
  8. ccgo-2.2.1/ccgo/build_scripts/build_android.py +570 -0
  9. ccgo-2.2.1/ccgo/build_scripts/build_benches.py +233 -0
  10. ccgo-2.2.1/ccgo/build_scripts/build_conan.py +390 -0
  11. ccgo-2.2.1/ccgo/build_scripts/build_docs.py +137 -0
  12. ccgo-2.2.1/ccgo/build_scripts/build_include.py +286 -0
  13. ccgo-2.2.1/ccgo/build_scripts/build_ios.py +576 -0
  14. ccgo-2.2.1/ccgo/build_scripts/build_kmp.py +433 -0
  15. ccgo-2.2.1/ccgo/build_scripts/build_linux.py +528 -0
  16. ccgo-2.2.1/ccgo/build_scripts/build_macos.py +543 -0
  17. ccgo-2.2.1/ccgo/build_scripts/build_ohos.py +653 -0
  18. ccgo-2.2.1/ccgo/build_scripts/build_tests.py +225 -0
  19. ccgo-2.2.1/ccgo/build_scripts/build_tvos.py +554 -0
  20. ccgo-2.2.1/ccgo/build_scripts/build_utils.py +2654 -0
  21. ccgo-2.2.1/ccgo/build_scripts/build_watchos.py +557 -0
  22. ccgo-2.2.1/ccgo/build_scripts/build_windows.py +692 -0
  23. ccgo-2.2.1/ccgo/build_scripts/check_library.sh +141 -0
  24. ccgo-2.2.1/ccgo/build_scripts/cmake/CCGODependencies.cmake +162 -0
  25. ccgo-2.2.1/ccgo/build_scripts/cmake/CMakeConfig.cmake +46 -0
  26. ccgo-2.2.1/ccgo/build_scripts/cmake/CMakeExtraFlags.cmake +36 -0
  27. ccgo-2.2.1/ccgo/build_scripts/cmake/CMakeFunctions.cmake +1172 -0
  28. ccgo-2.2.1/ccgo/build_scripts/cmake/CMakeLists.txt.dependencies.example +99 -0
  29. ccgo-2.2.1/ccgo/build_scripts/cmake/CMakeUtils.cmake +361 -0
  30. ccgo-2.2.1/ccgo/build_scripts/cmake/FindCCGODependencies.cmake +286 -0
  31. ccgo-2.2.1/ccgo/build_scripts/cmake/ios.toolchain.cmake +518 -0
  32. ccgo-2.2.1/ccgo/build_scripts/cmake/template/Benches.CMakeLists.txt.in +41 -0
  33. ccgo-2.2.1/ccgo/build_scripts/cmake/template/External.CMakeLists.txt.in +134 -0
  34. ccgo-2.2.1/ccgo/build_scripts/cmake/template/External.Download.txt.in +39 -0
  35. ccgo-2.2.1/ccgo/build_scripts/cmake/template/Root.CMakeLists.txt.in +655 -0
  36. ccgo-2.2.1/ccgo/build_scripts/cmake/template/Src.CMakeLists.txt.in +48 -0
  37. ccgo-2.2.1/ccgo/build_scripts/cmake/template/Src.SubDir.CMakeLists.txt.in +71 -0
  38. ccgo-2.2.1/ccgo/build_scripts/cmake/template/Tests.CMakeLists.txt.in +42 -0
  39. ccgo-2.2.1/ccgo/build_scripts/cmake/template/ThirdParty.CMakeLists.txt.in +74 -0
  40. ccgo-2.2.1/ccgo/build_scripts/cmake/tvos.toolchain.cmake +518 -0
  41. ccgo-2.2.1/ccgo/build_scripts/cmake/watchos.toolchain.cmake +518 -0
  42. ccgo-2.2.1/ccgo/build_scripts/dependency_manager.py +466 -0
  43. ccgo-2.2.1/ccgo/cli.py +154 -0
  44. ccgo-2.2.1/ccgo/dockers/DOCKER_BUILD_GUIDE.md +249 -0
  45. ccgo-2.2.1/ccgo/dockers/Dockerfile.android +98 -0
  46. ccgo-2.2.1/ccgo/dockers/Dockerfile.apple +91 -0
  47. ccgo-2.2.1/ccgo/dockers/Dockerfile.linux +46 -0
  48. ccgo-2.2.1/ccgo/dockers/Dockerfile.windows-mingw +51 -0
  49. ccgo-2.2.1/ccgo/dockers/Dockerfile.windows-msvc +80 -0
  50. ccgo-2.2.1/ccgo/dockers/PUBLISHING.md +270 -0
  51. ccgo-2.2.1/ccgo/dockers/README.md +386 -0
  52. ccgo-2.2.1/ccgo/dockers/WINDOWS_TOOLCHAIN_GUIDE.md +140 -0
  53. ccgo-2.2.1/ccgo/dockers/build_docker.py +568 -0
  54. ccgo-2.2.1/ccgo/main.py +34 -0
  55. ccgo-2.2.1/ccgo.egg-info/PKG-INFO +512 -0
  56. ccgo-2.2.1/ccgo.egg-info/SOURCES.txt +60 -0
  57. ccgo-2.2.1/ccgo.egg-info/dependency_links.txt +1 -0
  58. ccgo-2.2.1/ccgo.egg-info/entry_points.txt +2 -0
  59. ccgo-2.2.1/ccgo.egg-info/requires.txt +5 -0
  60. ccgo-2.2.1/ccgo.egg-info/top_level.txt +1 -0
  61. ccgo-2.2.1/pyproject.toml +52 -0
  62. ccgo-2.2.1/setup.cfg +4 -0
ccgo-2.2.1/LICENSE ADDED
@@ -0,0 +1,25 @@
1
+ ccgo project is licensed for use as follows:
2
+
3
+ """
4
+ MIT License
5
+
6
+ Copyright 2024 zhlinh and ccgo Project Authors. All rights reserved.
7
+
8
+ Permission is hereby granted, free of charge, to any person obtaining a copy
9
+ of this software and associated documentation files (the "Software"), to
10
+ deal in the Software without restriction, including without limitation the
11
+ rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
12
+ sell copies of the Software, and to permit persons to whom the Software is
13
+ furnished to do so, subject to the following conditions:
14
+
15
+ The above copyright notice and this permission notice shall be included in
16
+ all copies or substantial portions of the Software.
17
+
18
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
19
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
20
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
21
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
22
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
23
+ FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
24
+ IN THE SOFTWARE.
25
+ """
ccgo-2.2.1/MANIFEST.in ADDED
@@ -0,0 +1,17 @@
1
+ # Include all CMake configuration files
2
+ recursive-include ccgo/build_scripts/cmake *.cmake
3
+ recursive-include ccgo/build_scripts/cmake/template *.txt.in
4
+ include ccgo/build_scripts/cmake/CMakeLists.txt.dependencies.example
5
+
6
+ # Include Docker build files
7
+ include ccgo/dockers/Dockerfile.*
8
+ include ccgo/dockers/*.py
9
+ include ccgo/dockers/*.md
10
+
11
+ # Include README and LICENSE
12
+ include README.md
13
+ include LICENSE
14
+
15
+ # Exclude compiled Python files
16
+ global-exclude *.pyc
17
+ global-exclude __pycache__
ccgo-2.2.1/PKG-INFO ADDED
@@ -0,0 +1,512 @@
1
+ Metadata-Version: 2.4
2
+ Name: ccgo
3
+ Version: 2.2.1
4
+ Summary: A C++ cross-platform build system
5
+ Author-email: zhlinh <zhlinhng@gmail.com>
6
+ License: MIT
7
+ Project-URL: Homepage, https://github.com/zhlinh/ccgo
8
+ Project-URL: Repository, https://github.com/zhlinh/ccgo
9
+ Project-URL: Issues, https://github.com/zhlinh/ccgo/issues
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: License :: OSI Approved :: MIT License
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: Programming Language :: Python :: 3.8
15
+ Classifier: Programming Language :: Python :: 3.9
16
+ Classifier: Programming Language :: Python :: 3.10
17
+ Classifier: Programming Language :: Python :: 3.11
18
+ Classifier: Programming Language :: Python :: 3.12
19
+ Classifier: Programming Language :: Python :: Implementation :: CPython
20
+ Classifier: Operating System :: POSIX :: Linux
21
+ Classifier: Operating System :: MacOS :: MacOS X
22
+ Classifier: Operating System :: Microsoft :: Windows
23
+ Requires-Python: >=3.8
24
+ Description-Content-Type: text/markdown
25
+ License-File: LICENSE
26
+ Requires-Dist: copier>=9.2.0
27
+ Requires-Dist: copier-templates-extensions>=0.3.0
28
+ Requires-Dist: tomli>=2.0.0; python_version < "3.11"
29
+ Dynamic: license-file
30
+
31
+ # ccgo
32
+
33
+ A cross-platform C++ build system designed to simplify and accelerate multi-platform development.
34
+
35
+ [![PyPI version](https://badge.fury.io/py/ccgo.svg)](https://pypi.org/project/ccgo/)
36
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/license/MIT)
37
+
38
+ ## Features
39
+
40
+ - 🚀 Fast cross-platform C++ builds for Android, iOS, macOS, Windows, Linux, and OpenHarmony (OHOS)
41
+ - 📦 Kotlin Multiplatform (KMP) support
42
+ - 📦 Conan C/C++ package manager integration
43
+ - 🧪 Integrated testing with GoogleTest
44
+ - 📊 Benchmarking support with Google Benchmark
45
+ - 📚 Documentation generation
46
+ - 🛠️ Project scaffolding from templates
47
+ - ✅ Environment dependency checking
48
+ - 🧹 Smart build artifact cleaning
49
+
50
+ ## Installation
51
+
52
+ ```bash
53
+ # Install from PyPI
54
+ pip3 install ccgo
55
+
56
+ # Or install from source in development mode
57
+ cd ccgo
58
+ pip3 install -e .
59
+ ```
60
+
61
+ ## Quick Start
62
+
63
+ ```bash
64
+ # Create a new C++ library project
65
+ ccgo new my-awesome-lib
66
+
67
+ # Navigate to the project directory
68
+ cd my-awesome-lib/<project_relative_path>
69
+
70
+ # Build for Android
71
+ ccgo build android
72
+
73
+ # Run tests
74
+ ccgo test
75
+
76
+ # Build documentation
77
+ ccgo doc --open
78
+ ```
79
+
80
+ ## Commands Reference
81
+
82
+ ### 1. Project Creation
83
+
84
+ #### `ccgo new` - Create New Project
85
+
86
+ Create a new library project in a new directory.
87
+
88
+ ```bash
89
+ ccgo new <project-name> [options]
90
+ ```
91
+
92
+ **Options:**
93
+ - `--template-url <url>` - Custom template repository URL
94
+ - `--data <key>=<value>` - Template variables (repeatable)
95
+ - `--defaults` - Use default values for all prompts
96
+
97
+ **Examples:**
98
+ ```bash
99
+ # Create with interactive prompts
100
+ ccgo new my-project
101
+
102
+ # Create with all defaults
103
+ ccgo new my-project --defaults
104
+
105
+ # Use custom template
106
+ ccgo new my-project --template-url https://github.com/user/template.git
107
+ ccgo new my-project --template-url /path/to/user/template
108
+
109
+ # Set template variables
110
+ ccgo new my-project --data cpy_project_version=2.0.0
111
+ ```
112
+
113
+ #### `ccgo init` - Initialize in Current Directory
114
+
115
+ Initialize a library project in the current directory.
116
+
117
+ ```bash
118
+ ccgo init [options]
119
+ ```
120
+
121
+ **Options:**
122
+ - `--template-url <url>` - Custom template repository URL
123
+ - `--data <key>=<value>` - Template variables (repeatable)
124
+ - `--defaults` - Use default values for all prompts
125
+ - `--force` - Skip confirmation prompt
126
+
127
+ **Examples:**
128
+ ```bash
129
+ ccgo init
130
+ ccgo init --defaults --force
131
+ ```
132
+
133
+ ### 2. Build Commands
134
+
135
+ #### `ccgo build` - Build for Platforms
136
+
137
+ Build your library for specific platforms.
138
+
139
+ ```bash
140
+ ccgo build <target> [options]
141
+ ```
142
+
143
+ **Targets:**
144
+ - `android` - Build for Android (supports `--arch`)
145
+ - `ios` - Build for iOS
146
+ - `macos` - Build for macOS
147
+ - `windows` - Build for Windows
148
+ - `linux` - Build for Linux
149
+ - `ohos` - Build for OpenHarmony (supports `--arch`)
150
+ - `kmp` - Build Kotlin Multiplatform library
151
+ - `conan` - Build Conan C/C++ package
152
+ - `include` - Build include headers
153
+
154
+ **Options:**
155
+ - `--arch <architectures>` - Comma-separated architecture list (Android/OHOS only)
156
+ - Android: `armeabi-v7a`, `arm64-v8a`, `x86_64`
157
+ - OHOS: `armeabi-v7a`, `arm64-v8a`, `x86_64`
158
+ - `--ide-project` - Generate IDE project files
159
+
160
+ **Examples:**
161
+ ```bash
162
+ # Build for Android with specific architectures
163
+ ccgo build android --arch armeabi-v7a,arm64-v8a
164
+
165
+ # Build for OHOS with all architectures
166
+ ccgo build ohos --arch armeabi-v7a,arm64-v8a,x86_64
167
+
168
+ # Build for iOS
169
+ ccgo build ios
170
+
171
+ # Build for macOS
172
+ ccgo build macos
173
+
174
+ # Build for Windows
175
+ ccgo build windows
176
+
177
+ # Build for Linux
178
+ ccgo build linux
179
+
180
+ # Build Kotlin Multiplatform library
181
+ ccgo build kmp
182
+
183
+ # Build Conan C/C++ package
184
+ ccgo build conan
185
+
186
+ # Generate IDE project for Android
187
+ ccgo build android --ide-project
188
+ ```
189
+
190
+ ### 3. Testing & Benchmarking
191
+
192
+ #### `ccgo test` - Run Tests
193
+
194
+ Build and run GoogleTest-based unit tests.
195
+
196
+ ```bash
197
+ ccgo test [options]
198
+ ```
199
+
200
+ **Options:**
201
+ - `--build-only` - Only build tests without running
202
+ - `--run-only` - Only run tests (assumes already built)
203
+ - `--filter <pattern>` - GoogleTest filter (e.g., 'MyTest*')
204
+ - `--ide-project` - Generate IDE project for tests
205
+ - `--gtest-args <args>` - Additional GoogleTest arguments
206
+
207
+ **Examples:**
208
+ ```bash
209
+ # Build and run all tests
210
+ ccgo test
211
+
212
+ # Only build tests
213
+ ccgo test --build-only
214
+
215
+ # Run specific tests
216
+ ccgo test --filter "MyTest*"
217
+
218
+ # Run tests multiple times
219
+ ccgo test --gtest-args "--gtest_repeat=3"
220
+
221
+ # Generate IDE project for debugging tests
222
+ ccgo test --ide-project
223
+ ```
224
+
225
+ #### `ccgo bench` - Run Benchmarks
226
+
227
+ Build and run Google Benchmark-based performance benchmarks.
228
+
229
+ ```bash
230
+ ccgo bench [options]
231
+ ```
232
+
233
+ **Options:**
234
+ - `--build-only` - Only build benchmarks without running
235
+ - `--run-only` - Only run benchmarks (assumes already built)
236
+ - `--filter <pattern>` - Google Benchmark filter (e.g., 'BM_Sort*')
237
+ - `--ide-project` - Generate IDE project for benchmarks
238
+ - `--benchmark-args <args>` - Additional Google Benchmark arguments
239
+ - `--format <format>` - Output format: `console`, `json`, `csv` (default: console)
240
+
241
+ **Examples:**
242
+ ```bash
243
+ # Build and run all benchmarks
244
+ ccgo bench
245
+
246
+ # Only build benchmarks
247
+ ccgo bench --build-only
248
+
249
+ # Run specific benchmarks
250
+ ccgo bench --filter "BM_Sort*"
251
+
252
+ # Output results as JSON
253
+ ccgo bench --format json
254
+
255
+ # Output results as CSV
256
+ ccgo bench --format csv
257
+ ```
258
+
259
+ ### 4. Documentation
260
+
261
+ #### `ccgo doc` - Build Documentation
262
+
263
+ Generate project documentation (typically using Doxygen).
264
+
265
+ ```bash
266
+ ccgo doc [options]
267
+ ```
268
+
269
+ **Options:**
270
+ - `--open` - Open documentation in browser after building
271
+ - `--serve` - Start local web server to view documentation
272
+ - `--port <port>` - Port for web server (default: 8000)
273
+ - `--clean` - Clean build before generating
274
+
275
+ **Examples:**
276
+ ```bash
277
+ # Build documentation
278
+ ccgo doc
279
+
280
+ # Build and open in browser
281
+ ccgo doc --open
282
+
283
+ # Build and serve on localhost:8000
284
+ ccgo doc --serve
285
+
286
+ # Serve on custom port
287
+ ccgo doc --serve --port 3000
288
+
289
+ # Clean build
290
+ ccgo doc --clean
291
+ ```
292
+
293
+ ### 5. Publishing
294
+
295
+ #### `ccgo publish` - Publish Libraries
296
+
297
+ Publish your library to package repositories.
298
+
299
+ ```bash
300
+ ccgo publish <target>
301
+ ```
302
+
303
+ **Targets:**
304
+ - `android` - Publish to Maven repository
305
+ - `ohos` - Publish to OHPM repository
306
+ - `kmp` - Publish KMP library to Maven (local or remote)
307
+
308
+ **Examples:**
309
+ ```bash
310
+ # Publish Android library to Maven
311
+ ccgo publish android
312
+
313
+ # Publish OHOS library to OHPM
314
+ ccgo publish ohos
315
+
316
+ # Publish Kotlin Multiplatform library
317
+ ccgo publish kmp
318
+ ```
319
+
320
+ ### 6. Maintenance Commands
321
+
322
+ #### `ccgo check` - Check Dependencies
323
+
324
+ Verify that platform-specific development dependencies are installed.
325
+
326
+ ```bash
327
+ ccgo check [target] [options]
328
+ ```
329
+
330
+ **Targets:**
331
+ - `all` - Check all platforms (default)
332
+ - `android` - Check Android development environment
333
+ - `ios` - Check iOS development environment
334
+ - `macos` - Check macOS development environment
335
+ - `windows` - Check Windows development environment
336
+ - `linux` - Check Linux development environment
337
+ - `ohos` - Check OpenHarmony development environment
338
+
339
+ **Options:**
340
+ - `--verbose` - Show detailed information
341
+
342
+ **Examples:**
343
+ ```bash
344
+ # Check all platforms
345
+ ccgo check
346
+
347
+ # Check Android environment
348
+ ccgo check android
349
+
350
+ # Check with verbose output
351
+ ccgo check ios --verbose
352
+ ```
353
+
354
+ #### `ccgo clean` - Clean Build Artifacts
355
+
356
+ Remove build artifacts and caches.
357
+
358
+ ```bash
359
+ ccgo clean [target] [options]
360
+ ```
361
+
362
+ **Targets:**
363
+ - `all` - Clean all platforms (default)
364
+ - `android` - Clean Android build caches
365
+ - `ios` - Clean iOS build caches
366
+ - `macos` - Clean macOS build caches
367
+ - `ohos` - Clean OpenHarmony build caches
368
+ - `kmp` - Clean Kotlin Multiplatform build caches
369
+ - `examples` - Clean examples build caches
370
+
371
+ **Options:**
372
+ - `--native-only` - Clean only `cmake_build/` (native CMake builds)
373
+ - `--dry-run` - Show what would be cleaned without deleting
374
+ - `-y, --yes` - Skip confirmation prompts
375
+
376
+ **Examples:**
377
+ ```bash
378
+ # Clean all (with confirmation)
379
+ ccgo clean
380
+
381
+ # Clean only Android
382
+ ccgo clean android
383
+
384
+ # Preview what will be deleted
385
+ ccgo clean --dry-run
386
+
387
+ # Clean all without confirmation
388
+ ccgo clean -y
389
+
390
+ # Clean only native CMake builds
391
+ ccgo clean --native-only
392
+ ```
393
+
394
+ ### 7. Help
395
+
396
+ #### `ccgo help` - Show Help
397
+
398
+ Display comprehensive help information.
399
+
400
+ ```bash
401
+ ccgo help
402
+
403
+ # Or get help for specific command
404
+ ccgo <command> --help
405
+ ```
406
+
407
+ ## Environment Variables
408
+
409
+ ### Android
410
+ - `ANDROID_HOME` - Android SDK location
411
+ - `ANDROID_NDK_HOME` - Android NDK location
412
+ - `JAVA_HOME` - Java Development Kit location
413
+
414
+ ### OpenHarmony (OHOS)
415
+ - `OHOS_SDK_HOME` or `HOS_SDK_HOME` - OHOS Native SDK location
416
+
417
+ ### iOS/macOS
418
+ - Requires Xcode and command-line tools
419
+
420
+ ## Project Structure
421
+
422
+ Projects created with ccgo follow this structure:
423
+
424
+ ```
425
+ my-project/
426
+ ├── CCGO.toml # CCGO project config
427
+ ├── CMakeLists.txt # Root CMake configuration
428
+ ├── src/ # Source code
429
+ ├── include/ # Public headers
430
+ ├── docs/ # docs files
431
+ ├── tests/ # GoogleTest unit tests
432
+ ├── benches/ # Benchmark tests
433
+ ├── android/ # Android-specific files (Gradle)
434
+ ├── ohos/ # OHOS-specific files (hvigor)
435
+ ├── kmp/ # Kotlin Multiplatform files (Gradle)
436
+ ```
437
+
438
+ ## Advanced Usage
439
+
440
+ ### Using Custom Templates
441
+
442
+ You can create projects from custom templates:
443
+
444
+ ```bash
445
+ # From GitHub repository
446
+ ccgo new my-project --template-url=https://github.com/user/my-template.git
447
+
448
+ # From local directory
449
+ ccgo new my-project --template-url=/path/to/local/template
450
+ ```
451
+
452
+ ### CI/CD Integration
453
+
454
+ The generated `build.py` script supports CI/CD workflows with environment variables:
455
+
456
+ - `CI_IS_RELEASE` - Build as release vs beta
457
+ - `CI_BUILD_<PLATFORM>` - Enable/disable platform builds
458
+
459
+ Example:
460
+ ```bash
461
+ export CI_IS_RELEASE=1
462
+ export CI_BUILD_ANDROID=1
463
+ export CI_BUILD_IOS=1
464
+ python3 build.py
465
+ ```
466
+
467
+ ### Multi-Architecture Builds
468
+
469
+ Build for multiple architectures simultaneously:
470
+
471
+ ```bash
472
+ # Android: build for 32-bit ARM, 64-bit ARM, and x86_64
473
+ ccgo build android --arch armeabi-v7a,arm64-v8a,x86_64
474
+
475
+ # OHOS: build for all supported architectures
476
+ ccgo build ohos --arch armeabi-v7a,arm64-v8a,x86_64
477
+ ```
478
+
479
+ ## Troubleshooting
480
+
481
+ ### Common Issues
482
+
483
+ 1. **"Command not found" after installation**
484
+ - Ensure `pip3` install directory is in your PATH
485
+ - Try `python3 -m ccgo` instead of `ccgo`
486
+
487
+ 2. **Android build fails**
488
+ - Verify `ANDROID_HOME`, `ANDROID_NDK_HOME`, and `JAVA_HOME` are set
489
+ - Run `ccgo check android --verbose` to diagnose
490
+
491
+ 3. **OHOS build fails**
492
+ - Verify `OHOS_SDK_HOME` or `HOS_SDK_HOME` is set
493
+ - Run `ccgo check ohos --verbose` to diagnose
494
+
495
+ 4. **iOS/macOS build fails**
496
+ - Ensure Xcode and command-line tools are installed
497
+ - Run `xcode-select --install` if needed
498
+
499
+ ## Contributing
500
+
501
+ Contributions are welcome! Please feel free to submit a Pull Request.
502
+
503
+ ## License
504
+
505
+ ccgo is available under the [MIT license](https://opensource.org/license/MIT).
506
+ See the LICENSE file for the full license text.
507
+
508
+ ## Links
509
+
510
+ - [GitHub Repository](https://github.com/zhlinh/ccgo)
511
+ - [PyPI Package](https://pypi.org/project/ccgo/)
512
+ - [Issue Tracker](https://github.com/zhlinh/ccgo/issues)