Skip to main content

Cargo-like project management tool for working with CMake

Project description

Miao

Lines of code PyPI PyPI - License PyPI - Format


Miao Logo

A Python script for generating CMake files, with a user-friendly, Cargo-like command line interface. (UNDER CONSTRUCTION)



TODO:


  • ☑ miao new
    • ☑ --language
    • ☑ --standard
    • ☐ --lib
  • ☑ miao add
    • ☑ --include_dir
  • ☑ miao build
  • ☑ miao run
  • ☑ miao clean
  • ☑ miao help
  • ☐ miao init
    • ☐ --lib
  • ☐ miao remove
  • ☐ miao config
    • ☐ --default_language
    • ☐ --default_language --standard
    • ☐ --default_include_dir

Installation

# The PyPI version may be outdated.
# Please consider using `git clone` to 
# obtain the latest version.

pip3 install miao-make

Usage

  • miao help
$ miao help
Miao Version 20230624

   add                       Add dependencies.
                             Use `--include_dir` to add header file directories.
   build                     Compile the current project.
   clean                     Remove the build directory.
   config                    ...
   find_project_root
   help                      Print help.
   init
   new                       Create a new project.
   remove                    ...
   run                       Run the current project.
   version                   Print version info and exit.
  • miao new - Creating a new project
# Create a new project

$ miao new my_project
 Created   my_project
 Added     CMakelists.txt
 (debug)   ```set(CMAKE_CXX_STANDARD 17)
        file(GLOB_RECURSE SOURCES "src/*.cpp")```
 Created   src/ directory
 Added     main.cpp
 Created   build/ directory


# The `--language` and `--standard` flags

$ miao new 'hello world' --language cpp --standard 20
 Created   hello_world
 Added     CMakelists.txt
 (debug)   ```set(CMAKE_CXX_STANDARD 20)
        file(GLOB_RECURSE SOURCES "src/*.cpp")```
 Created   src/ directory
 Added     main.cpp
 Created   build/ directory
  • miao add - Adding libraries
$ cd my_project/


$ miao add ncurses --include_dir=$(brew --prefix ncurses)/include
Adding header directories ['/usr/local/opt/ncurses/include']
Adding ('ncurses',) for `my_project`
  • Run
$ miao run
 root:     /Users/4nji/dev/python/miao/src/my_project
 pwd:      /Users/4nji/dev/python/miao/src/my_project
 Entering  /Users/4nji/dev/python/miao/src/my_project/build
-- The C compiler identification is AppleClang 13.0.0.13000029
-- The CXX compiler identification is AppleClang 13.0.0.13000029
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Configuring done (1.5s)
-- Generating done (0.0s)
-- Build files have been written to: /Users/4nji/dev/python/miao/src/my_project/build
 Success   Successfully executed the command: ['cmake', '/Users/4nji/dev/python/miao/src/my_project']
[ 50%] Building CXX object CMakeFiles/my_project.exe.dir/src/main.cpp.o
[100%] Linking CXX executable my_project.exe
[100%] Built target my_project.exe
 Success   Successfully executed the command: ['make']

===========================2023-06-24 19:56:20.228994==========================

Running /Users/4nji/dev/python/miao/src/my_project/build/my_project.exe

===============================================================================
Hello, world!

Process finished with exit code 0
  • Cleaning up
$ miao clean
Removing /Users/Me/dev/python/miao/src/hello_world/build

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

miao-make-20230624.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

miao_make-20230624-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file miao-make-20230624.tar.gz.

File metadata

  • Download URL: miao-make-20230624.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for miao-make-20230624.tar.gz
Algorithm Hash digest
SHA256 0a5cbe94ab1f804d5898b2a1745ba46bf3722d0aa78a58c9157d998e78ce98a4
MD5 908b2e4f4090082d68f414c7b5cb1759
BLAKE2b-256 e15ef70aa35bc6314e16ed98f2c6497a6cc7e426eb530ff991f0dbb52f2839c7

See more details on using hashes here.

File details

Details for the file miao_make-20230624-py3-none-any.whl.

File metadata

File hashes

Hashes for miao_make-20230624-py3-none-any.whl
Algorithm Hash digest
SHA256 852cddd37a673fab6a2caa0864c30ef08af0da8cc998f2045b0d3ddce74ac506
MD5 2990143543aabe0282e67de6480f033b
BLAKE2b-256 ab212130058a17019aabea6a78115046ec96091212446bab96b5dae276e9b9a1

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page