ccgo 3.0.2__py3-none-win_amd64.whl

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.
Binary file
@@ -0,0 +1,560 @@
1
+ Metadata-Version: 2.4
2
+ Name: ccgo
3
+ Version: 3.0.2
4
+ Classifier: Development Status :: 4 - Beta
5
+ Classifier: Environment :: Console
6
+ Classifier: Intended Audience :: Developers
7
+ Classifier: License :: OSI Approved :: MIT License
8
+ Classifier: Operating System :: OS Independent
9
+ Classifier: Programming Language :: Python :: 3
10
+ Classifier: Programming Language :: Python :: 3.8
11
+ Classifier: Programming Language :: Python :: 3.9
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Programming Language :: Rust
17
+ Classifier: Topic :: Software Development :: Build Tools
18
+ Classifier: Topic :: Software Development :: Compilers
19
+ Summary: A high-performance C++ cross-platform build CLI
20
+ Keywords: cli,cpp,cross-platform,build,cmake
21
+ License: MIT
22
+ Requires-Python: >=3.8
23
+ Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
24
+ Project-URL: Homepage, https://github.com/zhlinh/ccgo
25
+ Project-URL: Repository, https://github.com/zhlinh/ccgo
26
+ Project-URL: Documentation, https://github.com/zhlinh/ccgo#readme
27
+
28
+ # ccgo
29
+
30
+ A cross-platform C++ build system designed to simplify and accelerate multi-platform development.
31
+
32
+ [![Crates.io](https://img.shields.io/crates/v/ccgo.svg)](https://crates.io/crates/ccgo)
33
+ [![PyPI version](https://badge.fury.io/py/ccgo.svg)](https://pypi.org/project/ccgo/)
34
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/license/MIT)
35
+
36
+ ## Features
37
+
38
+ - ๐Ÿš€ Fast cross-platform C++ builds for Android, iOS, macOS, Windows, Linux, and OpenHarmony (OHOS)
39
+ - ๐Ÿ“ฆ Kotlin Multiplatform (KMP) support
40
+ - ๐Ÿ“ฆ Conan C/C++ package manager integration
41
+ - ๐Ÿงช Integrated testing with GoogleTest
42
+ - ๐Ÿ“Š Benchmarking support with Google Benchmark
43
+ - ๐Ÿ“š Documentation generation
44
+ - ๐Ÿ› ๏ธ Project scaffolding from templates
45
+ - โœ… Environment dependency checking
46
+ - ๐Ÿงน Smart build artifact cleaning
47
+
48
+ ## Installation
49
+
50
+ ```bash
51
+ # Install from PyPI
52
+ pip3 install ccgo
53
+
54
+ # Or install from source in development mode
55
+ cd ccgo
56
+ pip3 install -e .
57
+ ```
58
+
59
+ ## Quick Start
60
+
61
+ ```bash
62
+ # Create a new C++ library project
63
+ ccgo new my-awesome-lib
64
+
65
+ # Navigate to the project directory
66
+ cd my-awesome-lib/<project_relative_path>
67
+
68
+ # Build for Android
69
+ ccgo build android
70
+
71
+ # Run tests
72
+ ccgo test
73
+
74
+ # Build documentation
75
+ ccgo doc --open
76
+ ```
77
+
78
+ ## Commands Reference
79
+
80
+ ### 1. Project Creation
81
+
82
+ #### `ccgo new` - Create New Project
83
+
84
+ Create a new library project in a new directory.
85
+
86
+ ```bash
87
+ ccgo new <project-name> [options]
88
+ ```
89
+
90
+ **Options:**
91
+
92
+ - `--template-url <url>` - Custom template repository URL
93
+ - `--data <key>=<value>` - Template variables (repeatable)
94
+ - `--defaults` - Use default values for all prompts
95
+
96
+ **Examples:**
97
+
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
+
123
+ - `--template-url <url>` - Custom template repository URL
124
+ - `--data <key>=<value>` - Template variables (repeatable)
125
+ - `--defaults` - Use default values for all prompts
126
+ - `--force` - Skip confirmation prompt
127
+
128
+ **Examples:**
129
+
130
+ ```bash
131
+ ccgo init
132
+ ccgo init --defaults --force
133
+ ```
134
+
135
+ ### 2. Build Commands
136
+
137
+ #### `ccgo build` - Build for Platforms
138
+
139
+ Build your library for specific platforms.
140
+
141
+ ```bash
142
+ ccgo build <target> [options]
143
+ ```
144
+
145
+ **Targets:**
146
+
147
+ - `android` - Build for Android (supports `--arch`)
148
+ - `ios` - Build for iOS
149
+ - `macos` - Build for macOS
150
+ - `windows` - Build for Windows
151
+ - `linux` - Build for Linux
152
+ - `ohos` - Build for OpenHarmony (supports `--arch`)
153
+ - `kmp` - Build Kotlin Multiplatform library
154
+ - `conan` - Build Conan C/C++ package
155
+ - `include` - Build include headers
156
+
157
+ **Options:**
158
+
159
+ - `--arch <architectures>` - Comma-separated architecture list (Android/OHOS only)
160
+ - Android: `armeabi-v7a`, `arm64-v8a`, `x86_64`
161
+ - OHOS: `armeabi-v7a`, `arm64-v8a`, `x86_64`
162
+ - `--link-type <type>` - Library link type: `static`, `shared`, or `both` (default: `both`)
163
+ - `--toolchain <toolchain>` - Windows toolchain: `auto`, `msvc`, or `mingw` (default: `auto`)
164
+ - `--ide-project` - Generate IDE project files
165
+ - `--docker` - Build using Docker (cross-platform builds)
166
+
167
+ **Examples:**
168
+
169
+ ```bash
170
+ # Build for Android with specific architectures
171
+ ccgo build android --arch armeabi-v7a,arm64-v8a
172
+
173
+ # Build for OHOS with all architectures
174
+ ccgo build ohos --arch armeabi-v7a,arm64-v8a,x86_64
175
+
176
+ # Build for iOS
177
+ ccgo build ios
178
+
179
+ # Build for macOS
180
+ ccgo build macos
181
+
182
+ # Build for Windows
183
+ ccgo build windows
184
+
185
+ # Build for Windows with specific toolchain
186
+ ccgo build windows --toolchain msvc
187
+ ccgo build windows --toolchain mingw
188
+
189
+ # Build for Linux
190
+ ccgo build linux
191
+
192
+ # Build static libraries only
193
+ ccgo build linux --link-type static
194
+
195
+ # Build shared libraries only
196
+ ccgo build macos --link-type shared
197
+
198
+ # Build both static and shared libraries (default)
199
+ ccgo build ios --link-type both
200
+
201
+ # Build Kotlin Multiplatform library
202
+ ccgo build kmp
203
+
204
+ # Build Conan C/C++ package
205
+ ccgo build conan
206
+
207
+ # Generate IDE project for Android
208
+ ccgo build android --ide-project
209
+
210
+ # Cross-platform build using Docker
211
+ ccgo build linux --docker
212
+ ccgo build windows --docker
213
+ ```
214
+
215
+ ### 3. Testing & Benchmarking
216
+
217
+ #### `ccgo test` - Run Tests
218
+
219
+ Build and run GoogleTest-based unit tests.
220
+
221
+ ```bash
222
+ ccgo test [options]
223
+ ```
224
+
225
+ **Options:**
226
+
227
+ - `--build-only` - Only build tests without running
228
+ - `--run-only` - Only run tests (assumes already built)
229
+ - `--filter <pattern>` - GoogleTest filter (e.g., 'MyTest*')
230
+ - `--ide-project` - Generate IDE project for tests
231
+ - `--gtest-args <args>` - Additional GoogleTest arguments
232
+
233
+ **Examples:**
234
+
235
+ ```bash
236
+ # Build and run all tests
237
+ ccgo test
238
+
239
+ # Only build tests
240
+ ccgo test --build-only
241
+
242
+ # Run specific tests
243
+ ccgo test --filter "MyTest*"
244
+
245
+ # Run tests multiple times
246
+ ccgo test --gtest-args "--gtest_repeat=3"
247
+
248
+ # Generate IDE project for debugging tests
249
+ ccgo test --ide-project
250
+ ```
251
+
252
+ #### `ccgo bench` - Run Benchmarks
253
+
254
+ Build and run Google Benchmark-based performance benchmarks.
255
+
256
+ ```bash
257
+ ccgo bench [options]
258
+ ```
259
+
260
+ **Options:**
261
+
262
+ - `--build-only` - Only build benchmarks without running
263
+ - `--run-only` - Only run benchmarks (assumes already built)
264
+ - `--filter <pattern>` - Google Benchmark filter (e.g., 'BM_Sort*')
265
+ - `--ide-project` - Generate IDE project for benchmarks
266
+ - `--benchmark-args <args>` - Additional Google Benchmark arguments
267
+ - `--format <format>` - Output format: `console`, `json`, `csv` (default: console)
268
+
269
+ **Examples:**
270
+
271
+ ```bash
272
+ # Build and run all benchmarks
273
+ ccgo bench
274
+
275
+ # Only build benchmarks
276
+ ccgo bench --build-only
277
+
278
+ # Run specific benchmarks
279
+ ccgo bench --filter "BM_Sort*"
280
+
281
+ # Output results as JSON
282
+ ccgo bench --format json
283
+
284
+ # Output results as CSV
285
+ ccgo bench --format csv
286
+ ```
287
+
288
+ ### 4. Documentation
289
+
290
+ #### `ccgo doc` - Build Documentation
291
+
292
+ Generate project documentation (typically using Doxygen).
293
+
294
+ ```bash
295
+ ccgo doc [options]
296
+ ```
297
+
298
+ **Options:**
299
+
300
+ - `--open` - Open documentation in browser after building
301
+ - `--serve` - Start local web server to view documentation
302
+ - `--port <port>` - Port for web server (default: 8000)
303
+ - `--clean` - Clean build before generating
304
+
305
+ **Examples:**
306
+
307
+ ```bash
308
+ # Build documentation
309
+ ccgo doc
310
+
311
+ # Build and open in browser
312
+ ccgo doc --open
313
+
314
+ # Build and serve on localhost:8000
315
+ ccgo doc --serve
316
+
317
+ # Serve on custom port
318
+ ccgo doc --serve --port 3000
319
+
320
+ # Clean build
321
+ ccgo doc --clean
322
+ ```
323
+
324
+ ### 5. Publishing
325
+
326
+ #### `ccgo publish` - Publish Libraries
327
+
328
+ Publish your library to package repositories.
329
+
330
+ ```bash
331
+ ccgo publish <target>
332
+ ```
333
+
334
+ **Targets:**
335
+
336
+ - `android` - Publish to Maven repository
337
+ - `ohos` - Publish to OHPM repository
338
+ - `kmp` - Publish KMP library to Maven (local or remote)
339
+
340
+ **Examples:**
341
+
342
+ ```bash
343
+ # Publish Android library to Maven
344
+ ccgo publish android
345
+
346
+ # Publish OHOS library to OHPM
347
+ ccgo publish ohos
348
+
349
+ # Publish Kotlin Multiplatform library
350
+ ccgo publish kmp
351
+ ```
352
+
353
+ ### 6. Maintenance Commands
354
+
355
+ #### `ccgo check` - Check Dependencies
356
+
357
+ Verify that platform-specific development dependencies are installed.
358
+
359
+ ```bash
360
+ ccgo check [target] [options]
361
+ ```
362
+
363
+ **Targets:**
364
+
365
+ - `all` - Check all platforms (default)
366
+ - `android` - Check Android development environment
367
+ - `ios` - Check iOS development environment
368
+ - `macos` - Check macOS development environment
369
+ - `windows` - Check Windows development environment
370
+ - `linux` - Check Linux development environment
371
+ - `ohos` - Check OpenHarmony development environment
372
+
373
+ **Options:**
374
+
375
+ - `--verbose` - Show detailed information
376
+
377
+ **Examples:**
378
+
379
+ ```bash
380
+ # Check all platforms
381
+ ccgo check
382
+
383
+ # Check Android environment
384
+ ccgo check android
385
+
386
+ # Check with verbose output
387
+ ccgo check ios --verbose
388
+ ```
389
+
390
+ #### `ccgo clean` - Clean Build Artifacts
391
+
392
+ Remove build artifacts and caches.
393
+
394
+ ```bash
395
+ ccgo clean [target] [options]
396
+ ```
397
+
398
+ **Targets:**
399
+
400
+ - `all` - Clean all platforms (default)
401
+ - `android` - Clean Android build caches
402
+ - `ios` - Clean iOS build caches
403
+ - `macos` - Clean macOS build caches
404
+ - `ohos` - Clean OpenHarmony build caches
405
+ - `kmp` - Clean Kotlin Multiplatform build caches
406
+ - `examples` - Clean examples build caches
407
+
408
+ **Options:**
409
+
410
+ - `--native-only` - Clean only `cmake_build/` (native CMake builds)
411
+ - `--dry-run` - Show what would be cleaned without deleting
412
+ - `-y, --yes` - Skip confirmation prompts
413
+
414
+ **Examples:**
415
+
416
+ ```bash
417
+ # Clean all (with confirmation)
418
+ ccgo clean
419
+
420
+ # Clean only Android
421
+ ccgo clean android
422
+
423
+ # Preview what will be deleted
424
+ ccgo clean --dry-run
425
+
426
+ # Clean all without confirmation
427
+ ccgo clean -y
428
+
429
+ # Clean only native CMake builds
430
+ ccgo clean --native-only
431
+ ```
432
+
433
+ ### 7. Help
434
+
435
+ #### `ccgo help` - Show Help
436
+
437
+ Display comprehensive help information.
438
+
439
+ ```bash
440
+ ccgo help
441
+
442
+ # Or get help for specific command
443
+ ccgo <command> --help
444
+ ```
445
+
446
+ ## Environment Variables
447
+
448
+ ### Android
449
+
450
+ - `ANDROID_HOME` - Android SDK location
451
+ - `ANDROID_NDK_HOME` - Android NDK location
452
+ - `JAVA_HOME` - Java Development Kit location
453
+
454
+ ### OpenHarmony (OHOS)
455
+
456
+ - `OHOS_SDK_HOME` or `HOS_SDK_HOME` - OHOS Native SDK location
457
+
458
+ ### iOS/macOS
459
+
460
+ - Requires Xcode and command-line tools
461
+
462
+ ## Project Structure
463
+
464
+ Projects created with ccgo follow this structure:
465
+
466
+ ```
467
+ my-project/
468
+ โ”œโ”€โ”€ CCGO.toml # CCGO project config
469
+ โ”œโ”€โ”€ CMakeLists.txt # Root CMake configuration
470
+ โ”œโ”€โ”€ src/ # Source code
471
+ โ”œโ”€โ”€ include/ # Public headers
472
+ โ”œโ”€โ”€ docs/ # docs files
473
+ โ”œโ”€โ”€ tests/ # GoogleTest unit tests
474
+ โ”œโ”€โ”€ benches/ # Benchmark tests
475
+ โ”œโ”€โ”€ android/ # Android-specific files (Gradle)
476
+ โ”œโ”€โ”€ ohos/ # OHOS-specific files (hvigor)
477
+ โ”œโ”€โ”€ kmp/ # Kotlin Multiplatform files (Gradle)
478
+ ```
479
+
480
+ ## Advanced Usage
481
+
482
+ ### Using Custom Templates
483
+
484
+ You can create projects from custom templates:
485
+
486
+ ```bash
487
+ # From GitHub repository
488
+ ccgo new my-project --template-url=https://github.com/user/my-template.git
489
+
490
+ # From local directory
491
+ ccgo new my-project --template-url=/path/to/local/template
492
+ ```
493
+
494
+ ### CI/CD Integration
495
+
496
+ The generated `build.py` script supports CI/CD workflows with environment variables:
497
+
498
+ - `CI_IS_RELEASE` - Build as release vs beta
499
+ - `CI_BUILD_<PLATFORM>` - Enable/disable platform builds
500
+
501
+ Example:
502
+
503
+ ```bash
504
+ export CI_IS_RELEASE=1
505
+ export CI_BUILD_ANDROID=1
506
+ export CI_BUILD_IOS=1
507
+ python3 build.py
508
+ ```
509
+
510
+ ### Multi-Architecture Builds
511
+
512
+ Build for multiple architectures simultaneously:
513
+
514
+ ```bash
515
+ # Android: build for 32-bit ARM, 64-bit ARM, and x86_64
516
+ ccgo build android --arch armeabi-v7a,arm64-v8a,x86_64
517
+
518
+ # OHOS: build for all supported architectures
519
+ ccgo build ohos --arch armeabi-v7a,arm64-v8a,x86_64
520
+ ```
521
+
522
+ ## Troubleshooting
523
+
524
+ ### Common Issues
525
+
526
+ 1. **"Command not found" after installation**
527
+
528
+ - Ensure `pip3` install directory is in your PATH
529
+ - Try `python3 -m ccgo` instead of `ccgo`
530
+
531
+ 2. **Android build fails**
532
+
533
+ - Verify `ANDROID_HOME`, `ANDROID_NDK_HOME`, and `JAVA_HOME` are set
534
+ - Run `ccgo check android --verbose` to diagnose
535
+
536
+ 3. **OHOS build fails**
537
+
538
+ - Verify `OHOS_SDK_HOME` or `HOS_SDK_HOME` is set
539
+ - Run `ccgo check ohos --verbose` to diagnose
540
+
541
+ 4. **iOS/macOS build fails**
542
+
543
+ - Ensure Xcode and command-line tools are installed
544
+ - Run `xcode-select --install` if needed
545
+
546
+ ## Contributing
547
+
548
+ Contributions are welcome! Please feel free to submit a Pull Request.
549
+
550
+ ## License
551
+
552
+ ccgo is available under the [MIT license](https://opensource.org/license/MIT).
553
+ See the LICENSE file for the full license text.
554
+
555
+ ## Links
556
+
557
+ - [GitHub Repository](https://github.com/zhlinh/ccgo)
558
+ - [PyPI Package](https://pypi.org/project/ccgo/)
559
+ - [Issue Tracker](https://github.com/zhlinh/ccgo/issues)
560
+
@@ -0,0 +1,4 @@
1
+ ccgo-3.0.2.data/scripts/ccgo.exe,sha256=2aTy049cpiEF9HFo-Vvdyt6NN1BLtvridznKW26ZAPA,4537856
2
+ ccgo-3.0.2.dist-info/METADATA,sha256=6WzbFRUmnIx-yODRCDtVBIrvtlTgDgW2pNi72zlb-No,13456
3
+ ccgo-3.0.2.dist-info/WHEEL,sha256=14-pPWiwFoCAtTgD4hWnxHSfZQqe6Zt0DfwcROvwlzs,94
4
+ ccgo-3.0.2.dist-info/RECORD,,
@@ -0,0 +1,4 @@
1
+ Wheel-Version: 1.0
2
+ Generator: maturin (1.10.2)
3
+ Root-Is-Purelib: false
4
+ Tag: py3-none-win_amd64