Tweet

Karm - Project Manager


Home
Using karm
Developer

 


Developer


This page contains a lot of developer resources for Karm development.

Features in Queue

  • Keyboard shortcut keys catching
  • Karm Server development to sync various client Karm modules to a central database
    • Have real time multi user task planning
  • Network diagram creation and maintainence
  • Add code to enter inter dependencies of tasks
  • Live terminal to control Karm with a command line

See Also



Getting Started on development


Note: These steps are for full development. You don't need to follow these if you are making small macros. If you are writing complex Macros it is good to have the following steps since they provide the system to debug them.
  1. Download and install Lua and wxLua
  2. Download and install Eclipse LDT (IDE for development)
  3. Download the Karm Source Code
  4. Karm.lua is the main file of the Source code open that in Eclipse and you can debug from there using the standard Eclipse LDT method
  5. Have a look at the included Sample Macros to see examples of Macros and the code
  6. Have the Karm Object Hierarchy page handy to look up the Objects available for use in your code.

The Source Code


The source code in Karm SVN is the core Karm code. The files are :

The Source Files


  1. CustomWidgets.lua - Module that contains some customized GUI widgets used in the forms
  2. Datahandler.lua - Contains code on handling all task object data
  3. Filter.lua - Contains code on handling the Filter object
  4. FilterForm.lua - module containing code to execute the Filter setting form
  5. Karm.lua - The main file where execution starts containing the main GUI code
  6. LuaXML.lua - LuaXML module code file to handle XMLs used by Karm to read XML task spores
  7. TaskForm.lua - module containing code to execute the Task entry form

The files listed above are sufficient to have all the Lua code for Karm

Shared Libraries

  1. liblua5.1_32.so - Lua shared library for linux 32 bit
  2. liblua5.1_64.so - Lua shared library for linux 64 bit
  3. lua51.dll - Lua shared library for windows
  4. LuaXML_lib.dll - LuaXML shared library for windows
  5. LuaXML_lib32.so - LuaXML shared library for Linux 32 bit
  6. LuaXML_lib64.so - LuaXML shared library for Linux 64 bit
  7. wx.dll - Wxwidgets shared library for windows(only required when executing the Lua script, not required by the executables)
  8. wx.so - Wxwidgets shared library for windows(only required when executing the Lua script, not required by the executables)

The files listed above are all the shared libraries needed by Karm to run.

The Utility Files


  1. KarmConfig.lua - An optional configuration file for Karm that configures a bunch of things in the software to custom settings
  2. many2one.lua - A small script that looks at the config.lua file and is configured to read in all the lua code files and convert them to a single lua script.
  3. config.lua - Configuration file for many2one.lua
  4. wxluafreeze.lua - lua script to merge a lua script into the wxluafreeze executable so that it can run stand alone
  5. wxluafreeze.exe, wxluafreeze32, wxluafreeze64 - Executables of wxluafreeze for windows, linux (32 bit) and linux (64 bit).

Other Files


  1. Task_Spore.xsd - XSD file defining the task data structure for XML spore files (Useful to visualize the data content of each task object)
  2. Readme1st.txt - Readme file to be ported in each deploy package
  3. Karm.exe, KarmLinux32.exe, KarmLinux64.exe - Executables for Karm for windows, linux (32 bit) and linux (64 bit).

Creating a Deploy package

The deploy package creation has some steps as detailed below. All that is needed is a computer (linux/windows/mac) that runs lua.

  1. Prepare windows files:
    1. Make sure the 1st code line in Karm.lua is:
       package.cpath = ";./?.dll;" 
    2. Make a single Lua script using many2one:
       > lua many2one.lua 
    3. Make the lua script executable:
       > lua wxluafreeze.lua wxluafreeze.exe KarmApp.lua Karm.exe 
      Now we have the windows executable Karm.exe
  2. Prepare Linux 32 bit files:
    1. Make sure the 1st code line in Karm.lua is:
       package.cpath = ";./?.so;/usr/lib/?.so;/usr/local/lib/?.so;" 
    2. Make a single Lua script using many2one:
       > lua many2one.lua 
    3. Make the 32 bit linux executable:
       > lua wxluafreeze.lua wxluafreeze32 KarmApp.lua KarmLinux32.exe 
      Now we have the 32 bit linux executable KarmLinux32.exe
  3. Prepare Linux 64 bit files
    1. Make sure the 1st code line in Karm.lua is:
       package.cpath = ";./?.so;/usr/lib/?.so;/usr/local/lib/?.so;" 
    2. Make a single Lua script using many2one:
       > lua many2one.lua 
    3. Make the 64 bit linux executable:
       > lua wxluafreeze.lua wxluafreeze64 KarmApp.lua KarmLinux64.exe 
      Now we have the 32 bit linux executable KarmLinux64.exe
  4. Put the following files and directories in the Deploy directory:
    1. Karm.exe
    2. KarmLinux32.exe
    3. lua51.dll
    4. liblua5.1_32.so renamed as liblua5.1.so
    5. LuaXML_lib.dll
    6. LuaXML_lib32.so renamed as LuaXML_lib.so
    7. KarmConfig.lua (optional)
    8. Readme1st.txt
  5. In the linux64 subdirectory put the following files
    1. KarmLinux64.exe
    2. liblua5.1_64.so renamed as liblua5.1.so
    3. LuaXML_lib64.so renamed as LuaXML_lib.so
    4. KarmConfig.lua (optional)
  6. Update the images, Filters, Sample Macros and Tasks folders if there are any updates
  7. This finishes the Deploy folder preparation

See Also




 

Recent Articles:

index
Welcome to the Karm wiki:Karm is a flexible, exte...
Contributing to Karm
Help is needed!:You can contribute to Karm in man...
Developer
This page contains a lot of developer resources fo...
Feature Wish List
Keyboard shortcut keys catching Karm Server devel...
Karm Object Hierarchy
Here is an alphabetical list of all Objects in the...
Copyright 2013 Milind Gupta