qtpm

command module
v0.8.8 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 16, 2017 License: MIT Imports: 6 Imported by: 0

README

qtpm - Qt Package Manager Prototype
=======================================

Install
----------

.. code-block:: bash

   $ go get github.com/qtpm/qtpm

Usage
----------

**Create application template**

.. code-block:: bash

   $ mkdir helloworld
   $ qtpm init
   $ ls
   CMakeExtra.txt   LICENSE.rst build       include     qtpackage.toml  src     test        vendor
   $ qtpm build 

**Create library template**

.. code-block:: bash

   $ mkdir awesomesdk
   $ cd awsomesdk
   $ qtpm init app
   CMakeExtra.txt   LICENSE.rst build       include     qtpackage.toml  src     test        vendor
   $ qtpm build 

**Add files**

.. code-block:: bash

   $ qtpm add class MyDialog@QDialog
   $ qtpm add test TestMyDialog

**Change license**

.. code-block:: bash

   $ qtpm add license mit

Supported license names are mentioned at the below section.

Qt Location
--------------

It uses CMake behind qtpm command to build. By default, Qt should be in default (``CMAKE_PREFIX_PATH``). If you put Qt out of the folder,
there are two ways to specify the Qt location.

1. qtpm sees environment variable ``QTDIR``:

   .. code-block:: bash

      $ QTDIR=~/Qt/5.5/clang_64 qtpm build

2. put ``qtpackage.user.toml`` that contains the following contents:

   .. code-block:: none

      qtdir = 'C:\Qt\5.5\mingw492_32'

If you don't use the both settings and Qt is not in ``CMAKE_PREFIX_PATH``, qtpm tries to search any locations.

Name Convention
--------------------

This tool behaves according to the convention over any configuration.

* Source and header files are under ``src`` folder.
* Tests are under ``test`` folder.
* Resources are under ``resource`` folder.
* One project folder includes one executable file or one shared library as the output.
* If there is ``src/main.cpp``, qtpm generates executable, otherwise shared library
* Each test classes are implemented in ``test/*_test.cpp`` files (no header files) and compiled into executable.
* Other ``.cpp`` files in ``test`` are treated test utility. They are linked with each test executables.
* Each source file's suffix is used for conditional compile now. For example, ``sample_windows.cpp`` is built only on Windows platform.

  * ``_windows``: Windows (Cygwin is not included)
  * ``_darwin``: MacOS X
  * ``_unix``: Unix-like OS including MacOS X and Cygwin
  * ``_linux``: Unix-like OS (Mac OS X and Cygwin are not included)
  * ``_mingw``: MinGW
  * ``_cygwin``: Cygwin
  * ``_msvc``: Microsoft Visual C++

Project File
-----------------

Project file is written in TOML format.

* ``name``: Project name.
* ``author``: Author name.
* ``license``: License name.
* ``requires``: Dependency packages like ``'github.com/shibukawa/qtobubus'`` (this feature is not implemented yet).
* ``qtmodules``: Required qt modules like ``Widgets``, ``Xml``.
* ``version``: Version number like ``[1, 0, 0]``.

Supported License Files
---------------------------

The following names can use with ``qtpm add license`` command:

* ``apache-v2.0``   : Apache License v2.0
* ``artistic-v2.0`` : The Artistic License v2.0
* ``bsd-2``         : Simplified BSD License (BSD 2-clause)
* ``bsd-3``         : Modified BSD License (BSD 3-clause)
* ``epl-v1.0``      : Eclipse Public License (EPL) v1.0
* ``gnu-agpl-v3.0`` : GNU Affero General Public License (AGPL) v3.0
* ``gnu-gpl-v2.0``  : GNU General Public License (GPL) v2.0
* ``gnu-gpl-v3.0``  : GNU General Public License (GPL) v3.0
* ``gnu-lgpl-v2.1`` : GNU Lesser General Public License (LGPL) v2.1
* ``gnu-lgpl-v3.0`` : GNU Lesser General Public License (LGPL) v3.0
* ``mit``           : The MIT License (MIT)
* ``mpl-v2.0``      : Mozilla Public License (MPL) v2.0
* ``unlicense``     : The Unlicense (Public Domain)

You can uses the following names as alias:

* ``apache2``       -> apache-v2.0
* ``bsd``           -> bsd-3
* ``eclipse``       -> epl-v1.0
* ``gpl``           -> gnu-gpl-v3.0
* ``gpl2``          -> gnu-gpl-v2.0
* ``gpl3``          -> gnu-gpl-v3.0
* ``lgpl``          -> gnu-lgpl-v3.0
* ``lgpl2``         -> gnu-lgpl-v2.1
* ``lgpl3``         -> gnu-lgpl-v3.0
* ``mozilla``       -> mpl-v2.0
* ``perl``          -> artistic-v2.0
* ``public domain`` -> unlicense
* ``x``             -> mit

License
--------------

MIT

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL