cmakew is a CMake wrapper CLI tool.

cmake, build, Visual, Studio, build-tool, cli-app
pip install cmakew==0.2.0



cmakew is a CMake wrapper CLI tool.

PyPI package version Supported Python versions


Build googletest at Linux

$ wget -O - | tar zxf -
$ cmakew googletest-release-1.8.1/
[INFO] cmakew: -- The C compiler identification is GNU 7.3.0
-- The CXX compiler identification is GNU 7.3.0
-- Check for working C compiler: /usr/bin/cc
-- Check for working C compiler: /usr/bin/cc -- works
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Detecting C compile features
-- Detecting C compile features - done
-- Check for working CXX compiler: /usr/bin/c++
-- Check for working CXX compiler: /usr/bin/c++ -- works
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found PythonInterp: /home/toor/.pyenv/versions/3.7.0/bin/python (found version "3.7")
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Looking for pthread_create
-- Looking for pthread_create - not found
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE
-- Configuring done
-- Generating done
-- Build files have been written to: /home/github/build

[INFO] cmakew: Scanning dependencies of target gtest
[ 12%] Building CXX object googlemock/gtest/CMakeFiles/gtest.dir/src/
[ 25%] Linking CXX static library libgtestd.a
[ 25%] Built target gtest
Scanning dependencies of target gtest_main
[ 37%] Building CXX object googlemock/gtest/CMakeFiles/gtest_main.dir/src/
Scanning dependencies of target gmock
[ 50%] Building CXX object googlemock/CMakeFiles/gmock.dir/src/
[ 62%] Linking CXX static library libgtest_maind.a
[ 62%] Built target gtest_main
[ 75%] Linking CXX static library libgmockd.a
[ 75%] Built target gmock
Scanning dependencies of target gmock_main
[ 87%] Building CXX object googlemock/CMakeFiles/gmock_main.dir/src/
[100%] Linking CXX static library libgmock_maind.a
[100%] Built target gmock_main


$ tree build/googlemock/ -L 2
├── CMakeFiles
│   ├── CMakeDirectoryInformation.cmake
│   ├── gmock.dir
│   ├── gmock_main.dir
│   └── progress.marks
├── cmake_install.cmake
├── CTestTestfile.cmake
├── gtest
│   ├── CMakeFiles
│   ├── cmake_install.cmake
│   ├── CTestTestfile.cmake
│   ├── generated
│   ├── libgtestd.a
│   ├── libgtest_maind.a
│   └── Makefile
├── libgmockd.a
├── libgmock_maind.a
└── Makefile

6 directories, 12 files


Install from PyPI

pip install cmakew

Install from PPA (for Ubuntu)

sudo add-apt-repository ppa:thombashi/ppa
sudo apt update
sudo apt install cmakew

cmakew help

usage: cmakew [-h] [-V] [--build-dir BUILD_DIR]
              [--action {cmake,recmake,clean,build,rebuild}]
              [--cmake-options CMAKE_OPTIONS] [--build-type {Debug,Release}]
              [--generator GENERATOR] [--debug | --quiet]

A CLI tool for CMake and compiler wrapper.

positional arguments:
  SOURCE_DIR_PATH       relative path to the source directory.

optional arguments:
  -h, --help            show this help message and exit
  -V, --version         show program's version number and exit
  --debug               for debug print.
  --quiet               suppress execution log messages.

Directory Options:
  --build-dir BUILD_DIR
                        relative path to the build output directory (defaults
                        to 'build').

Build Options:
  --action {cmake,recmake,clean,build,rebuild}
                        cmake: execute CMake and exit. clean: delete existing
                        build directory and exit. recmake: delete existing
                        CMakeCache and execute CMake after that. build:
                        execute MSBuild to Visual Studio solution files that
                        created by cmake. rebuild: delete existing build
                        directory and execute CMake and MSBuild after that.
                        defaults to 'build'.

CMake Options:
  --cmake-options CMAKE_OPTIONS
                        path to the CMake options file. use "{key :value,
                        ...}" to set specific parameters. defaults to
  --build-type {Debug,Release}
                        defaults to Debug.
  --generator GENERATOR
                        generator that passes to cmake. the default value
                        decided by execution platform: (a) if executed at
                        Windows and Visual Studio is installed in C: or D:
                        drive, cmakew pass 'Visual Studio NN' as a generator
                        to cmake. (b) "Unix Makefiles" otherwise

Issue tracker:


Python 2.7+ or 3.5+