Important: Please read the Qt Code of Conduct - https://forum.qt.io/topic/113070/qt-code-of-conduct

Multi-environ Manager v7.6 (PyMake)



  • PyMake 7.6

    • If you'd like to make cross-platform project, but cmake can't build, it need to config running environment ?
    • If you have issued want to depend some projects generated by cmake qmake autotools e.g but they all need to change not alike variable about environment across third platforms at least?
    • Now pymake make beautiful, config once by use it in any platforms.

    Repo

    https://gitee.com/drabel/PyMake
    https://github.com/AbelTian/PyMake.git

    Install

    In PyMake source directory.

    Windows: [admin authority]
    install.bat %*

    Unix: [sudo]
    install.sh

    on console, use pymake cc cmd-name to execute command stream.
    on console, use pymake ccvp cmd-name to execute command stream with params.

    Usage:

    1. firstly, config .json file using pymake source config --edit. (only once!)
      • path-assemblage. (path assemblage for your pc.)
      • environ. (separate environment.)
      • command. (your custom command, step by step, it will be expand in .bat when executing. I will put in params to .bat .)
    2. use pymake system/local/custom/env xx -r, seeing your environment.
    3. use pymake ccvp xxx xxx-params to execute local or wild command with params, or use shortcut pyccvp. and other command is ok to use, too.

    Environ config file

    MyComputer-User.json in PyMake source root.

    {
        "path-assemblage": {
            "root": "R:/Develop",
            "root2": "V:/Develop",
            "root.src": "${root}/a0-develop",
            "root.prod": "${root2}/d0-product",
            "root.sdk": "${root2}/d1-sdk",
            "root.tool": "${root}/b0-toolkits",
            "root.tools": "${root}/e0-tools",
            "root.build": "${root2}/c0-buildstation",
            "root.test": "${root}/e3-test",
            "root.webrc": "${root}/e2-webrc",
            "cc": "${root.tool}/a0-Compiler",
            "wincc": "${root.tool}/winCompilers",
            "python-install": "C:/Users/Administrator/AppData/Local/Programs/Python",
            "py27": "${python-install}/Python27",
            "py36": "${python-install}/Python36",
            "py37": "${python-install}/Python37",
            "py": "${py27}",
            "py.bin": "${py};${py}/Scripts",
            "pymake": "${root.tool}/a0-compiler/PyMake",
            "pymake.env": "${pymake}/UserSource",
            "pymake.shell": "${pymake.env}/UserShell",
            "cmake": "${wincc}/cmake3.9.1_64",
            "cmake.bin": "${cmake}/bin",
            .................... [too long]
            "qt": "${root.tool}/winLibraries/Qt",
            "qt5.12.version": "5.12.2",
            "qt5.9.version": "5.9.2",
            "qt5.5.version": "5.5.1",
            "qt5.version": "5.9.2",
            "qt4.version": "4.8.6",
            "qt4.8.mingw32": "${qt}/${qt4.version}/mingw32",
            "qt4.8.mingw32.bin": "${qt4.8.mingw32}/bin",
            "qt5.armhf32": "${qt}/${qt5.version}/mingw53_armhf32",
            "qt5.armhf32.bin": "${qt5.armhf32}/bin",
            "qt5.5.armhf32": "${qt}/${qt5.5.version}/armhf32",
            "qt5.5.armhf32.bin": "${qt5.5.armhf32}/bin",
            "qt5.5.armhf32.sysroot": "${qt5.5.armhf32}/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi",
            "qt5.9.mingw32": "${qt}/${qt5.9.version}/mingw53_32",
            "qt5.9.mingw32.bin": "${qt5.9.mingw32}/bin",
            "qt5.12.mingw64": "${qt}/${qt5.12.version}/mingw73_64",
            "qt5.12.mingw64.bin": "${qt5.12.mingw64}/bin",
            "qt5.9.clang": "${qt}/${qt5.9.version}/clang_64",
            "qt5.9.clang.bin": "${qt5.9.clang}/bin",
            "qt5.9.gcc_64": "${qt}/${qt5.9.version}/gcc_64",
            "qt5.9.gcc_64.bin": "${qt5.9.gcc_64}/bin",
            "qt5.9.android_arm": "${qt}/${qt5.9.version}/android_armv7",
            "qt5.9.android_arm.bin": "${qt}/${qt5.9.version}/android_armv7/bin",
            "qt5.9.android_x86": "${qt}/${qt5.9.version}/android_x86",
            "qt5.9.android_x86.bin": "${qt}/${qt5.9.version}/android_x86/bin",
            "qt5.8.android_x86": "${qt}/5.8/android_x86",
            "sdk.tool": "${android.sdk}/tools",
            "java1.7.home": "${android.java}/jdk1.7.0_79.jdk/Contents/Home",
            "java1.8.home": "${android.java}/jdk1.8.0_131",
            "java1.9.home": "${android.java}/jdk9.jdk/Contents/Home",
            "java1.7.bin": "${java1.7.home}/bin",
            "java1.8.bin": "${java1.8.home}/bin",
            "java1.9.bin": "${java1.9.home}/bin",
            "java.home": "${java1.8.home}",
            "java.bin": "${java.home}/bin",
            "ant.bin": "${android.ant}/bin",
            "ndk.arm": "${android.ndk}/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64",
            "ndk.x86": "${android.ndk}/toolchains/x86-4.9/prebuilt/windows-x86_64",
            "ndk.x86_64": "${android.ndk}/toolchains/x86_64-4.9/prebuilt/windows-x86_64",
            "ndk.arm.bin": "${ndk.arm}/bin",
            "ndk.x86.bin": "${ndk.x86}/bin",
            "ndk.x86_64.bin": "${ndk.x86_64}/bin",
            "android.gradle": "${android}/gradle-all",
            ......................[too long]
        },
        "environ": {
            "android.mobile": {
                "path+": [
                    "${cmake.bin}",
                    "${qt5.9.android_arm.bin}",
                    "${mingw32.bin}",
                    "${java1.8.bin}",
                    "${android.sdk}",
                    "${sdk.plat.tool}",
                    "${sdk.build.tool}",
                    "${sdk.tool}",
                    "${ant.bin}",
                    "${ndk.arm.bin}"
                ],
                "make0": "mingw32-make",
                "ANDROID_API_VERSION": "android-23",
                "ANDROID_HOME": "${android.sdk}",
                "ANDROID_SDK_ROOT": "${android.sdk}",
                "ANDROID_NDK_ROOT": "${android.ndk}",
                "ANDROID_NDK_PLATFORM": "android-23",
                "ANDROID_NDK_HOST": "windows-x86_64",
                "ANDROID_NDK_TOOLCHAIN_PREFIX": "arm-linux-androideabi",
                "ANDROID_NDK_TOOLCHAIN_VERSION": "4.9",
                "ANDROID_NDK_TOOLS_PREFIX": "arm-linux-androideabi",
                "NDK_TOOLCHAIN_PATH": "${ndk.arm.bin}",
                "NDK_TOOLS_PREFIX": "arm-linux-androideabi",
                "QTDIR": "${qt5.9.android_arm}",
                "QTSPEC": "-spec android-g++",
                "QTCONFIG": "",
                "JAVA_HOME": "${java1.8.home}",
                "CLASSPATH": ".:${JAVA_HOME}/lib/dt/jar:${JAVA_HOME}/lib/tools.jar",
                "PYMAKE_MYNAME": "T.D.R",
                "a_special_var_const": "hello world",
                "QTVERSION": "${qt5.9.version}",
                "QKIT": "ANDROID",
                "QSYS": "Android"
            },
            "qt5": {
                "path+": [
                    "${cmake.bin}",
                    "${mingw32.bin}",
                    "${qt5.9.mingw32.bin}"
                ],
                "CMAKEGENERATOR": "MinGW Makefiles",
                "make0": "mingw32-make",
                "QTVERSION": "${qt5.9.version}",
                "QTDIR": "${qt5.9.mingw32}",
                "QTSPEC": "-spec win32-g++",
                "QTCONFIG": "",
                "QKIT": "WIN32",
                "QSYS": "Windows"
            },
            "qt5.x64": {
                "path+": [
                    "${cmake.bin}",
                    "${mingw64.bin}",
                    "${qt5.12.mingw64.bin}"
                ],
                "make0": "mingw32-make",
                "QTVERSION": "${qt5.12.version}",
                "QTDIR": "${qt5.12.mingw64}",
                "QTSPEC": "-spec win32-g++",
                "QTCONFIG": "",
                "QKIT": "WIN64",
                "QSYS": "Win64"
            },
            "armhf32": {
                "path+": [
                    "${cmake.bin}",
                    "${armhf32.bin}",
                    "${qt5.armhf32.bin}",
                    "${mingw32.bin}"
                ],
                "make0": "make",
                "QTVERSION": "${qt5.version}",
                "QTDIR": "${qt5.armhf32}",
                "QTSPEC": "-spec linux-arm-gnueabihf-g++",
                "QTCONFIG": "",
                "QKIT": "Armhf32",
                "QSYS": "Armhf32"
            },
            "watcom": {
                "path+": [
                    "${watcom.bin}"
                ],
                "WATCOM": "${watcom}",
                "EDPATH": "${watcom.edpath}",
                "WHTMLHELP": "${watcom.help}",
                "WIPFC": "${watcom.wipfc}",
                "INCLUDE": "${watcom.include}"
            },
            "other2": {
                "path+": [
                    "${doxygen.bin}",
                    "${graphviz.bin}",
                    "${perl.bin}",
                    "${xmake}",
                    "${ninja}",
                    "${java1.8.bin}",
                    "${py.bin}",
                    "${lua}",
                    "${php}",
                    "${go.bin}",
                    "${cmake.bin}",
                    "${mingw32.bin}",
                    "${qt5.9.mingw32.bin}"
                ],
                "CMAKEGENERATOR": "MinGW Makefiles",
                "make0": "mingw32-make",
                "QTVERSION": "${qt5.9.version}",
                "QTDIR": "${qt5.9.mingw32}",
                "QTSPEC": "-spec win32-g++",
                "QTCONFIG": "",
                "QKIT": "WIN32",
                "QSYS": "Windows"
            },
            "current": "qt5"
        },
        "variable-assemblage": {
            "MyName": "T.D.R.",
            "TIPS": "If you lost variable content or command content, please record to there, I wont delete them."
        },
        "command": {
            "cc0": [],
            "cc1": [
                "@echo off",
                "echo hello."
            ],
            "ccc": [
                "echo %QTDIR%"
            ],
            "test": [
                "echo %cd%"
            ],
            "test.2": [
                "echo %*",
                "set param=%*",
                "echo %param%",
                "ping 127.0.0.1 %param%",
                "rem exit /b 0"
            ],
            "test.3": [
                "rem echo %*",
                "ping %*"
            ],
            "test.4": [
                "exit /b 0"
            ],
            "test.5": [
                "echo 中文。"
            ],
            "test.6": [
                "echo %Path%"
            ],
            "open.dir": [
                "echo [%1]",
                "if not exist \"\"%1\"\" ( echo has no this dir. & exit /b 0)",
                "rem echo [%1]",
                "start %1"
            ],
            "open.tool": [
                "start ${root.tools}/%1.exe.lnk"
            ],
            "qqtsh": [
                "cd ${root.src}",
                "call %1"
            ],
            "android.sdk": [
                "${android.sdk}/\"SDK Manager.exe\""
            ],
            "qt.creator": [
                "cd ${root.build}",
                "start ${qt}/Tools/QtCreator/bin/qtcreator.exe"
            ],
            "adb.d": [
                "adb devices"
            ],
            "libtool": [
                "cd /d ${root.prod}/AddLibraryTool/Windows",
                "start ${root.prod}/AddLibraryTool/Windows/AddLibraryTool.exe"
            ],
            "libtool2": [
                "cd /d ${root.prod}/AddLibraryTool-Multiple/Windows",
                "start ${root.prod}/AddLibraryTool-Multiple/Windows/AddLibraryTool-Multiple.exe"
            ],
            "apptool": [
                "cd /d ${root.prod}/ProductExecTool/Windows",
                "start ${root.prod}/ProductExecTool/Windows/ProductExecTool.exe"
            ],
            "open.pymake": [
                "set sdk=%PYMAKEPROGRAMROOT%",
                "start %sdk%"
            ],
            "open.prod": [
                "set prod=%1",
                "cd /d ${root.prod}/%prod%/Windows",
                "start ${root.prod}/%prod%/Windows/%prod%.exe"
            ],
            "open.prodd": [
                "set prod=%1",
                "echo %prod%",
                "echo ${root.prod}/%prod%/Windows/%prod%d.exe",
                "cd /d ${root.prod}/%prod%/Windows",
                "start ${root.prod}/%prod%/Windows/%prod%d.exe"
            ],
            "open.src": [
                "set src=%1",
                "start ${root.src}/%src%"
            ],
            "open.sdk": [
                "set sdk=%1",
                "start ${root.sdk}/%sdk%"
            ],
            "open.env": [
                "set env0=%PYMAKESOURCEROOT%",
                "start %env0%"
            ],
            "build.qmake": [
                "if not exist \"*.pro\" ( echo has any .pro? please add here command to restrict. & exit /b 0 )",
                "set src_path=%CD%",
                "set profilename=%1",
                "set prod=${root.prod}/%profilename%/${QSYS}",
                "set sdk=${root.sdk}/%profilename%/${QSYS}",
                "set src=%src_path%/%profilename%.pro",
                "if not exist \"%src%\" ( echo %profilename%.pro is not exist. & exit /b 0)",
                "set build=${root.build}/%profilename%/${QSYS}/${QTVERSION}/Debug",
                "md %build:/=\\%",
                "cd /d %build%",
                "rem del /f /q demo examples src test",
                "echo src file: %src:\\=/%",
                "echo build at: %build:\\=/%",
                "echo sdk at  : %sdk:\\=/%",
                "echo prod at : %prod:\\=/%",
                "echo ${QTSPEC} ${QTCONFIG}",
                "qmake %src% ${QTSPEC} CONFIG+=debug CONFIG+=qml_debug ${QTCONFIG} && mingw32-make qmake_all",
                "mingw32-make -j10",
                "echo build inf ${QTSPEC} ${QTCONFIG}",
                "echo src file: %src:\\=/%",
                "echo build at: %build:\\=/%",
                "echo sdk at  : %sdk:\\=/%",
                "echo prod at : %prod:\\=/%",
                "cd /d %src_path%"
            ]
            ......................[too long]
        }
    }
    

    Command-line

    Version 7.4

    1. custom path and env variable, common to use.
    2. spread all over pc script.
    3. any work root.
    4. high-quality executing ability.
    5. appoint environ.
    6. abundant command in environ .json stored.
    7. all are in user environment source root.

    Version 7.5

    1. add powershell command.
      • all .json environ can be used in powershell environment.
    2. add custom environment.
      • user can store temporary or common path and variable in custom.path+.ini or custom.var+.ini.
      • these environment can be used in powershell environment.
      • you can open custom mobule or close it.

    Version 7.6

    1. update all command.
    2. support winxp/msys.
    3. add local command.
    4. add language command to support lua\php\perl e.g. script file and command.
    5. update all script .bat .sh shortcut.
    6. update get all settings command for seeing env.
    7. add pytype and pyclean shortcut script.
    8. add quotes to params with blank.
    
    Microsoft Windows [版本 10.0.17134.765]
    (c) 2018 Microsoft Corporation。保留所有权利。
    
    R:\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\MyShell>pymake
    Usage:
      pymake7.py  source
      pymake7.py  source file [ <source-path-file> ]
      pymake7.py  source root [ <source-root-path> ]
      pymake7.py  source config [ --add  ] [ <config-file-name> ]
      pymake7.py  source config [ --del  ] [ <config-file-name> ]
      pymake7.py  source config [ --mod  ] [ <config-file-name> ] [<new-config-file-name>]
      pymake7.py  source config [ --switch  ] [ <config-file-name> ]
      pymake7.py  source config [ --edit  ] [ <config-file-name> ]
      pymake7.py  source config [ --restore  ]
      pymake7.py  source config [ --show ]
      pymake7.py  -------------------------------------------------------------
      pymake7.py  set path ( --add | --del | --mod ) <name> [ <value> ]
      pymake7.py  set env [ path ] ( --add | --del | --mod ) <group> <name> [ <value> ]
      pymake7.py  set cmd (--add | --del | --mod ) <name> [ <values> ... ]
      pymake7.py  set cur env <name>
      pymake7.py  list [ path | env | cmd ] [<name>] [-r | --raw] [-a | --all]
      pymake7.py  env [<name>] [-p | --path] [-v | --var] [-r | --raw] [-a | --all]
      pymake7.py  -------------------------------------------------------------
      pymake7.py  here clean
      pymake7.py  here export [ <env-name> ] [ to <file-name> ]
      pymake7.py  here type [ <cmd-name> ]  [ to <file-name> ]
      pymake7.py  here use <env-name> exec [ <command-names> ... ]
      pymake7.py  here exec [ <command-names> ... ]
      pymake7.py  here use <env-name> cc [ <command-names> ... ]
      pymake7.py  here cc [ <command-names> ... ]
      pymake7.py  -------------------------------------------------------------
      pymake7.py  clean [ here | hh ]
      pymake7.py  export [ here | hh ] [ <env-name> ] [ to <file-name> ]
      pymake7.py  type [ here | hh ] [ <cmd-name> ] [ to <file-name> ]
      pymake7.py  exec [ here | hh ] [ <command-names> ... ]
      pymake7.py  cc [ here | hh ] [ <command-names> ... ]
      pymake7.py  use <env-name> type [ here | hh ] [ <cmd-name> ]  [ to <file-name> ]
      pymake7.py  use <env-name> exec [ here | hh ] [ <command-names> ... ]
      pymake7.py  use <env-name> cc [ here | hh ] [ <command-names> ... ]
      pymake7.py  -------------------------------------------------------------
      pymake7.py  set current env <name>
      pymake7.py  set default env <name>
      pymake7.py  show [ path | env | cmd ] [<name>] [-r | --raw] [-a | --all]
      pymake7.py  environ [<name>] [-p | --path] [-v | --var] [-r | --raw] [-a | --all]
      pymake7.py  see [ <cmd-name> ] [ use <env-name> ] [-r | --raw] [-a | --all] [ -l | --linenumber ]
      pymake7.py  ss [ <cmd-name> ] [ use <env-name> ] [-r | --raw] [-a | --all] [ -l | --linenumber ]
      pymake7.py  cmd [ <cmd-name> ] [ use <env-name> ] [-r | --raw] [-a | --all] [ -l | --linenumber ]
      pymake7.py  use <env-name> see [ <cmd-name> ] [-r | --raw] [-a | --all] [ -l | --linenumber ]
      pymake7.py  use <env-name> ss [ <cmd-name> ] [-r | --raw] [-a | --all] [ -l | --linenumber ]
      pymake7.py  use <env-name> cmd [ <cmd-name> ] [-r | --raw] [-a | --all] [ -l | --linenumber ]
      pymake7.py  -------------------------------------------------------------
      .................. [too long]
      pymake7.py  -------------------------------------------------------------
      pymake7.py  import cmd [ hh | here ] [ <script-file> ] [ to <command-name> ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --filter=<name-filter> ... ]
      pymake7.py  here import cmd [ <script-file> ] [ to <command-name> ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --filter=<name-filter> ... ]
      pymake7.py  hh import cmd [ <script-file> ] [ to <command-name> ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --filter=<name-filter> ... ]
      pymake7.py  -------------------------------------------------------------
      pymake7.py  outport cmd [ hh | here ] [ <command-name> ] [ to <script-file> ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --suffix=<.suffix-name> ]
      pymake7.py  here outport cmd [ <command-name> ] [ to <script-file> ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --suffix=<.suffix-name> ]
      pymake7.py  hh outport cmd [ <command-name> ] [ to <script-file> ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --suffix=<.suffix-name> ]
      pymake7.py  use <env-name> outport cmd [ hh | here ] [ <command-name> ] [ to <script-file> ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --suffix=<.suffix-name> ]
      pymake7.py  here use <env-name> outport cmd [ <command-name> ] [ to <script-file> ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --suffix=<.suffix-name> ]
      pymake7.py  hh use <env-name> outport cmd [ <command-name> ] [ to <script-file> ] [ -a | --all ] [ -f | --force ] [ --recursive ] [ --encoding=<encoding-name> ] [ --suffix=<.suffix-name> ]
      pymake7.py  -------------------------------------------------------------
      ............. [too long]
      pymake7.py  -------------------------------------------------------------
      pymeke7.py  local
      pymake7.py  local [ open | close ]
      pymake7.py  local [ stat | status ]
      pymake7.py  local [ info | information ]
      pymake7.py  local path [ --add | --del ] [ <value> ]
      pymake7.py  local var [ --add | --del ] [ <key> ] [ <value> ]
      pymake7.py  local env [ -r | --raw ]
      pymake7.py  local export [ here | hh ] [ to <file-name> ]
      pymake7.py  local exec-with-params [ here | hh ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
      pymake7.py  local use <env-name> exec-with-params [ here | hh ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
      pymake7.py  local execvp [ here | hh ] [ <command-name> ] [ <command-params> ... ]
      pymake7.py  local use <env-name> execvp [ here | hh ] [ <command-name> ] [ <command-params> ... ]
      pymake7.py  local ccvp [ here | hh ] [ <command-name> ] [ <command-params> ... ]
      pymake7.py  local use <env-name> ccvp [ here | hh ] [ <command-name> ] [ <command-params> ... ]
      pymake7.py  -------------------------------------------------------------
      pymeke7.py  custom
      pymake7.py  custom [ open | close ]
      pymake7.py  custom [ stat | status ]
      pymake7.py  custom [ info | information ]
      pymake7.py  custom path [ --add | --del ] [ <value> ]
      pymake7.py  custom var [ --add | --del ] [ <key> ] [ <value> ]
      pymake7.py  custom env [ -r | --raw ]
      pymake7.py  custom export [ here | hh ] [ to <file-name> ]
      pymake7.py  custom exec-with-params [ here | hh ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
      pymake7.py  custom use <env-name> exec-with-params [ here | hh ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
      pymake7.py  custom execvp [ here | hh ] [ <command-name> ] [ <command-params> ... ]
      pymake7.py  custom use <env-name> execvp [ here | hh ] [ <command-name> ] [ <command-params> ... ]
      pymake7.py  custom ccvp [ here | hh ] [ <command-name> ] [ <command-params> ... ]
      pymake7.py  custom use <env-name> ccvp [ here | hh ] [ <command-name> ] [ <command-params> ... ]
      pymake7.py  export2 [ powershell ] [ here | hh ] [ <env-name> ] [ to <file-name> ] [ -c | --custom ] [ -l | --local ] [ -s | --system ]
      pymake7.py  -------------------------------------------------------------
      pymake7.py  powershell
      pymake7.py  powershell [ info | information ]
      pymake7.py  powershell [ stat | status ]
      pymake7.py  powershell clean [ here | hh ]
      pymake7.py  powershell export [ here | hh ] [ <env-name> ] [ to <file-name> ]
      pymake7.py  powershell type [ here | hh ] [ <cmd-name> ] [ to <file-name> ]
      pymake7.py  powershell use <env-name> type [ here | hh ] [ <cmd-name> ]  [ to <file-name> ]
      pymake7.py  powershell exec-with-params [ here | hh ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
      pymake7.py  powershell use <env-name> exec-with-params [ here | hh ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
      pymake7.py  powershell execvp [ here | hh ] [ <command-name> ] [ <command-params> ... ]
      pymake7.py  powershell use <env-name> execvp [ here | hh ] [ <command-name> ] [ <command-params> ... ]
      pymake7.py  powershell ccvp [ here | hh ] [ <command-name> ] [ <command-params> ... ]
      pymake7.py  powershell use <env-name> ccvp [ here | hh ] [ <command-name> ] [ <command-params> ... ]
      pymake7.py  -------------------------------------------------------------
      pymake7.py  python
      pymake7.py  python [ info | information ]
      pymake7.py  python [ stat | status ]
      pymake7.py  python clean [ here | hh ]
      pymake7.py  python type [ here | hh ] [ <cmd-name> ] [ to <file-name> ]
      pymake7.py  python use <env-name> type [ here | hh ] [ <cmd-name> ]  [ to <file-name> ]
      pymake7.py  python exec-with-params [ here | hh ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
      pymake7.py  python use <env-name> exec-with-params [ here | hh ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ]
      pymake7.py  python execvp [ here | hh ] [ <command-name> ] [ <command-params> ... ]
      pymake7.py  python use <env-name> execvp [ here | hh ] [ <command-name> ] [ <command-params> ... ]
      pymake7.py  python ccvp [ here | hh ] [ <command-name> ] [ <command-params> ... ]
      pymake7.py  python use <env-name> ccvp [ here | hh ] [ <command-name> ] [ <command-params> ... ]
      pymake7.py  -------------------------------------------------------------
      pymake7.py  language
      pymake7.py  language [ info | information ]
      pymake7.py  language [ stat | status ]
      pymake7.py  language clean [ here | hh ] [ --suffix=<.suffix-name> ]
      pymake7.py  language type [ here | hh ] [ <cmd-name> ] [ to <file-name> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ]
      pymake7.py  language use <env-name> type [ here | hh ] [ <cmd-name> ]  [ to <file-name> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ]
      pymake7.py  language exec-with-params [ here | hh ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ]
      pymake7.py  language use <env-name> exec-with-params [ here | hh ] [ <command-name> ] [ --params=<command-params> ... ] [ --workroot=<work-root-path> ] [ --suffix=<.suffix-name> ] [ --encoding=<encoding-name> ]
      pymake7.py  language execvp [ here | hh ] [ <command-name> ] [ <command-params> ... ]
      pymake7.py  language use <env-name> execvp [ here | hh ] [ <command-name> ] [ <command-params> ... ]
      pymake7.py  language ccvp [ here | hh ] [ <command-name> ] [ <command-params> ... ]
      pymake7.py  language use <env-name> ccvp [ here | hh ] [ <command-name> ] [ <command-params> ... ]
      pymake7.py  -------------------------------------------------------------
      pymake7.py  (-h | --help)
      pymake7.py  --version
    
    R:\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\MyShell>
    

    Environment

    
    Microsoft Windows [版本 10.0.17134.765]
    (c) 2018 Microsoft Corporation。保留所有权利。
    
    R:\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\MyShell>pymake local
    local env: opened.
    path+:
      R:\Develop\b0-toolkits\a0-compiler\PyMake
      R:\Develop\b0-toolkits\a0-compiler\PyMake\UserSource
      R:\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\UserShell
      R:\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\UserShell
    variable:
      PYMAKEDEFAULTSOURCEROOT        R:\Develop\b0-toolkits\a0-compiler\PyMake\UserSource
      PYMAKEDEFAULTSOURCECONFIG      pymake.json
      PYMAKESOURCEFILE               R:\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\MyComputer-User.json
      PYMAKESOURCEROOT               R:\Develop\b0-toolkits\a0-compiler\PyMake\UserSource
      PYMAKESOURCECONFIG             MyComputer-User.json
      PYMAKEDEFAULTWORKROOT          R:\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\UserShell
      PYMAKEWORKROOT                 R:\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\UserShell
      PYMAKEPROGRAM                  R:\Develop\b0-toolkits\a0-compiler\PyMake\pymake7.py
      PYMAKEPROGRAMROOT              R:\Develop\b0-toolkits\a0-compiler\PyMake
      PYMAKEPROGRAMFILE              pymake7.py
      PYMAKEPROGRAMCONFIGURE         C:\Users\Administrator\.pymake\pymake.ini
      PYMAKEPROGRAMCONFIGUREROOT     C:\Users\Administrator\.pymake
      PYMAKEPROGRAMCONFIGUREFILE     pymake.ini
      PYMAKEINSTALLROOT              C:\WINDOWS
    
    R:\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\MyShell>pymake custom
    custom env: opened.
    path+:
      R:\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\UserShell
      R:\Develop\b0-toolkits\a0-compiler\PyMake\UserSource
      C:\Users\Administrator\Desktop\ENVCONFIG\UserShell
      C:\Users\Administrator\Desktop\ENVCONFIG
      R:/Develop/a0-develop
      R:/Develop/e0-tools/doxygen/bin
      R:/Develop/e0-tools/doxygen/graphviz-2.38/bin
      R:/Develop/b0-toolkits/winCompilers/cmake3.9.1_64/bin
      R:/Develop/b0-toolkits/winCompilers/perl_5.26.0.1_64/perl/bin
      R:/Develop/b0-toolkits/winCompilers/xmake
      R:/Develop/b0-toolkits/winCompilers/ninja
      R:/Develop/b0-toolkits/winAndroidLibraries/Java/jdk1.8.0_131/bin
      R:/Develop/b0-toolkits/winAndroidLibraries/gradle-all/gradle-4.2.1/bin
      C:/Users/Administrator/AppData/Local/Programs/Python/Python27;C:/Users/Administrator/AppData/Local/Programs/Python/Python27/Scripts
      R:/Develop/b0-toolkits/winCompilers/lua53
      R:/Develop/b0-toolkits/winCompilers/php-7.3.5-Win32-VC15-x64
      R:/Develop/b0-toolkits/winCompilers/go1.12.5.windows-amd64/go/bin
      R:/Develop/b0-toolkits/winCompilers/ruby-1.8.4-i386-mingw32/usr/local/bin
      R:/Develop/b0-toolkits/a0-compiler/PyMake
      R:/Develop/b0-toolkits/a0-compiler/PyMake/demo
      R:/Develop/b0-toolkits/a0-compiler/PyMake/test
      R:/Develop/b0-toolkits/a0-compiler/PyMake/test/带 空格路径
      R:/Develop/b0-toolkits/a0-compiler/PyMake/UserSource/带 空格路径
      R:/Develop/b0-toolkits/a0-compiler/PyMake/UserSource/UserShell
      R:/Develop/b0-toolkits/a0-compiler/PyMake/UserSource/MyShell
      R:\一个中文路径
    variable:
      PYMAKEAUTHOR                   T.D.R.
      PYMMXXX                        一个中文变量
      PYMMXYY                        R:/Develop
    
    R:\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\MyShell>pymake env android.mobile -r
    env android.mobile
    path+:
      R:/Develop/b0-toolkits/winCompilers/cmake3.9.1_64/bin
      R:/Develop/b0-toolkits/winLibraries/Qt/5.9.2/android_armv7/bin
      R:/Develop/b0-toolkits/winLibraries/Qt/Tools/mingw530_32/bin
      R:/Develop/b0-toolkits/winAndroidLibraries/Java/jdk1.8.0_131/bin
      R:/Develop/b0-toolkits/winAndroidLibraries/android-sdk-windows
      R:/Develop/b0-toolkits/winAndroidLibraries/android-sdk-windows/platform-tools
      R:/Develop/b0-toolkits/winAndroidLibraries/android-sdk-windows/build-tools
      R:/Develop/b0-toolkits/winAndroidLibraries/android-sdk-windows/tools
      R:/Develop/b0-toolkits/winAndroidLibraries/apache-ant-1.10.3/bin
      R:/Develop/b0-toolkits/winAndroidLibraries/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin
    variable:
      make0                          mingw32-make
      ANDROID_API_VERSION            android-23
      ANDROID_HOME                   R:/Develop/b0-toolkits/winAndroidLibraries/android-sdk-windows
      ANDROID_SDK_ROOT               R:/Develop/b0-toolkits/winAndroidLibraries/android-sdk-windows
      ANDROID_NDK_ROOT               R:/Develop/b0-toolkits/winAndroidLibraries/android-ndk-r13b
      ANDROID_NDK_PLATFORM           android-23
      ANDROID_NDK_HOST               windows-x86_64
      ANDROID_NDK_TOOLCHAIN_PREFIX   arm-linux-androideabi
      ANDROID_NDK_TOOLCHAIN_VERSION  4.9
      ANDROID_NDK_TOOLS_PREFIX       arm-linux-androideabi
      NDK_TOOLCHAIN_PATH             R:/Develop/b0-toolkits/winAndroidLibraries/android-ndk-r13b/toolchains/arm-linux-androideabi-4.9/prebuilt/windows-x86_64/bin
      NDK_TOOLS_PREFIX               arm-linux-androideabi
      QTDIR                          R:/Develop/b0-toolkits/winLibraries/Qt/5.9.2/android_armv7
      QTSPEC                         -spec android-g++
      QTCONFIG
      JAVA_HOME                      R:/Develop/b0-toolkits/winAndroidLibraries/Java/jdk1.8.0_131
      CLASSPATH                      .:R:/Develop/b0-toolkits/winAndroidLibraries/Java/jdk1.8.0_131/lib/dt/jar:R:/Develop/b0-toolkits/winAndroidLibraries/Java/jdk1.8.0_131/lib/tools.jar
      PYMAKE_MYNAME                  T.D.R
      a_special_var_const            hello world
      QTVERSION                      5.9.2
      QKIT                           ANDROID
      QSYS                           Android
    
    R:\Develop\b0-toolkits\a0-compiler\PyMake\UserSource\MyShell>
    
    

    User Support

    User support shell module, user can install them to share their functions.

    Program Shortcut Shortcut(Level 2)
    pymake.py pymake mm, pymm
    pymake.py pyenv pyvc
    pymake.py pycmd
    pymake.py pyexecvp pyccvp
    pymake.py pytype
    pymake.py pyclean
    pymake.py pylanguage
    pymake.py pypowershell.bat
    pymake.py pyenv.ps1
    pyinfo.py pyinfo
    pypaths.py pypaths
    pycodec.py
    ... install,uninstall

    Dependencies

    This program edited by python, support python 2.7 -> 3.6 (tested).You need install python, only python in path, configured.
    PyMake v7 uses file encoding params in open(), then it support python3 only, I suggest you install python 3.7.
    At last, it will work itself, I wish you would like it.

    Topic Limits

    The space limit is not exhaustive. Please check Repo for complate details.


Log in to reply