diff options
author | Araq <rumpf_a@web.de> | 2010-10-21 00:12:14 +0200 |
---|---|---|
committer | Araq <rumpf_a@web.de> | 2010-10-21 00:12:14 +0200 |
commit | 765366c1f377fbd9507e942385170b546d9d34d0 (patch) | |
tree | bffec904c5b980aa7b9c0961cda18d5dd30638ae /doc/niminst.txt | |
parent | 53cd61546dc798fc0f08baf0813f579a90d7e766 (diff) | |
download | Nim-765366c1f377fbd9507e942385170b546d9d34d0.tar.gz |
version 0.8.10
Diffstat (limited to 'doc/niminst.txt')
-rwxr-xr-x | doc/niminst.txt | 191 |
1 files changed, 191 insertions, 0 deletions
diff --git a/doc/niminst.txt b/doc/niminst.txt new file mode 100755 index 000000000..450732cd3 --- /dev/null +++ b/doc/niminst.txt @@ -0,0 +1,191 @@ +================================= + niminst User's manual +================================= + +:Author: Andreas Rumpf +:Version: |nimrodversion| + +.. contents:: + +Introduction +============ + +niminst is a tool to generate an installer for a Nimrod program. Currently +it can create an installer for Windows via `Inno Setup <>`_ as well as +installation/deinstallation scripts for UNIX. Later versions will support +Linux' package management systems. + +niminst works by reading a configuration file that contains all the +information that it needs to generate an installer for the different operating +systems. + + +Configuration file +================== + +niminst uses the Nimrod `parsecfg <parsecfg.html>`_ module to parse the +configuration file. Here's an example of how the syntax looks like: + +.. include:: doc/mytest.cfg + :literal: + +The value of a key-value pair can reference user-defined variables via +the ``$variable`` notation: They can be defined in the command line with the +``--var:name=value`` switch. This is useful to not hard-coding the +program's version number into the configuration file, for instance. + +It follows a description of each possible section and how it affects the +generated installers. + + +Project section +--------------- +The project section gathers general information about your project. It must +contain the following key-value pairs: + +==================== ======================================================= +Key description +==================== ======================================================= +``Name`` the project's name; this needs to be a single word +``DisplayName`` the project's long name; this can contain spaces. If + not specified, this is the same as ``Name``. +``Version`` the project's version +``OS`` the OSes to generate C code for; for example: + ``"windows;linux;macosx"`` +``CPU`` the CPUs to generate C code for; for example: + ``"i386;amd64;powerpc"`` +``Authors`` the project's authors +``Description`` the project's description +``App`` the application's type: "Console" or "GUI". If + "Console", niminst generates a special batch file + for Windows to open up the command line shell. +``License`` the filename of the application's license +==================== ======================================================= + + +``files`` key +------------- + +Many sections support the ``files`` key. Listed filenames +can be separated by semicolon or the ``files`` key can be repeated. Wildcards +in filenames are supported. If it is a directory name, all files in the +directory are used:: + + [Config] + Files: "configDir" + Files: "otherconfig/*.conf;otherconfig/*.cfg" + + +Config section +-------------- + +The ``config`` section currently only supports the ``files`` key. Listed files +will be installed into the OS's configuration directory. + + +Documentation section +--------------------- + +The ``documentation`` section currently only supports the ``files`` key. +Listed files will be installed into the OS's native documentation directory +(which might be ``$appdir/doc``). + + +Other section +------------- + +The ``other`` section currently only supports the ``files`` key. +Listed files will be installed into the application installation directory +(``$appdir``). + + +Lib section +----------- + +The ``lib`` section currently only supports the ``files`` key. +Listed files will be installed into the OS's native library directory +(which might be ``$appdir/lib``). + + +Windows section +--------------- + +The ``windows`` section supports the ``files`` key for Windows specific files. +Listed files will be installed into the application installation directory +(``$appdir``). + +Other possible options are: + +==================== ======================================================= +Key description +==================== ======================================================= +``BinPath`` paths to add to the Windows ``%PATH%`` environment + variable. Example: ``BinPath: r"bin;dist\mingw\bin"`` +``InnoSetup`` boolean flag whether an Inno Setup installer should be + generated for Windows. Example: ``InnoSetup: "Yes"`` +==================== ======================================================= + + +UnixBin section +--------------- + +The ``UnixBin`` section currently only supports the ``files`` key. +Listed files will be installed into the OS's native bin directory +(e.g. ``/usr/local/bin``). The exact location depends on the +installation path the user specifies when running the ``install.sh`` script. + + +Unix section +------------ + +Possible options are: + +==================== ======================================================= +Key description +==================== ======================================================= +``InstallScript`` boolean flag whether an installation shell script + should be generated. Example: ``InstallScript: "Yes"`` +``UninstallScript`` boolean flag whether a deinstallation shell script + should be generated. + Example: ``UninstallScript: "Yes"`` +==================== ======================================================= + + +InnoSetup section +----------------- + +Possible options are: + +==================== ======================================================= +Key description +==================== ======================================================= +``path`` Path to Inno Setup. + Example: ``path = r"c:\inno setup 5\iscc.exe"`` +``flags`` Flags to pass to Inno Setup. + Example: ``flags = "/Q"`` +==================== ======================================================= + + +C_Compiler section +------------------ + +Possible options are: + +==================== ======================================================= +Key description +==================== ======================================================= +``path`` Path to the C compiler. +``flags`` Flags to pass to the C Compiler. + Example: ``flags = "-w"`` +==================== ======================================================= + + +Real world example +================== + +The installers for the Nimrod compiler itself are generated by niminst. Have a +look at its configuration file: + +.. include:: rod/nimrod.ini + :literal: + |