Tools: Application launcher: Difference between revisions

From Commontk
Jump to navigationJump to search
mNo edit summary
Line 86: Line 86:
=== How to integrate the launcher with my existing projects ===
=== How to integrate the launcher with my existing projects ===


1) Integrate the [[Tools:_Application_launcher:external project definition|external project definition]]
* Integrate the [[Tools:_Application_launcher:external project definition|external project definition]]
2) Use the macro '''ctkAppLauncherConfigure''' as described below
* Use the macro '''ctkAppLauncherConfigure''' as described below
<pre>
<pre>
     INCLUDE(${CTKAPPLAUNCHER_DIR}/CMake/ctkAppLauncher.cmake)
     INCLUDE(${CTKAPPLAUNCHER_DIR}/CMake/ctkAppLauncher.cmake)
     INCLUDE(${Slicer_CMAKE_DIR}/SlicerCTKAppLauncherSettings.cmake)
     INCLUDE(${Slicer_CMAKE_DIR}/SlicerCTKAppLauncherSettings.cmake)
     ctkAppLauncherConfigure(
     ctkAppLauncherConfigure(
       TARGET_APPLICATION SlicerQT-real
       TARGET_APPLICATION SlicerQT-real
       APPLICATION_INSTALL_SUBDIR ${Slicer_INSTALL_BIN_DIR}
       APPLICATION_INSTALL_SUBDIR ${Slicer_INSTALL_BIN_DIR}
       APPLICATION_NAME Slicer
       APPLICATION_NAME Slicer
       SPLASH_IMAGE_PATH ${Slicer_SOURCE_DIR}/Applications/SlicerQT/Resources/Images/SlicerSplashScreen.png
       SPLASH_IMAGE_PATH ${Slicer_SOURCE_DIR}/Applications/SlicerQT/Resources/Images/SlicerSplashScreen.png
       SPLASH_IMAGE_INSTALL_SUBDIR ${Slicer_INSTALL_BIN_DIR}
       SPLASH_IMAGE_INSTALL_SUBDIR ${Slicer_INSTALL_BIN_DIR}
       SPLASHSCREEN_HIDE_DELAY_MS 3000
       SPLASHSCREEN_HIDE_DELAY_MS 3000
       ADDITIONAL_HELP_SHORT_ARG "-h"
       ADDITIONAL_HELP_SHORT_ARG "-h"
       ADDITIONAL_HELP_LONG_ARG "--help"
       ADDITIONAL_HELP_LONG_ARG "--help"
       ADDITIONAL_NOSPLASH_LONG_ARG "--no-splash"
       ADDITIONAL_NOSPLASH_LONG_ARG "--no-splash"
       DESTINATION_DIR ${Slicer_BINARY_DIR}
       DESTINATION_DIR ${Slicer_BINARY_DIR}
       LIBRARY_PATHS_BUILD "${SLICER_LIBRARY_PATHS_BUILD}"
       LIBRARY_PATHS_BUILD "${SLICER_LIBRARY_PATHS_BUILD}"
       PATHS_BUILD "${SLICER_PATHS_BUILD}"
       PATHS_BUILD "${SLICER_PATHS_BUILD}"
       ENVVARS_BUILD "${SLICER_ENVVARS_BUILD}"
       ENVVARS_BUILD "${SLICER_ENVVARS_BUILD}"
       LIBRARY_PATHS_INSTALLED "${SLICER_LIBRARY_PATHS_INSTALLED}"
       LIBRARY_PATHS_INSTALLED "${SLICER_LIBRARY_PATHS_INSTALLED}"
       PATHS_INSTALLED "${SLICER_PATHS_INSTALLED}"
       PATHS_INSTALLED "${SLICER_PATHS_INSTALLED}"
       ENVVARS_INSTALLED "${SLICER_ENVVARS_INSTALLED}"
       ENVVARS_INSTALLED "${SLICER_ENVVARS_INSTALLED}"
       )
       )
     install(PROGRAMS "${Slicer_BINARY_DIR}/Slicer${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ".")
     install(PROGRAMS "${Slicer_BINARY_DIR}/Slicer${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ".")
     install(
     install(
       FILES "${Slicer_SOURCE_DIR}/Applications/SlicerQT/Resources/Images/SlicerSplashScreen.png"  
       FILES "${Slicer_SOURCE_DIR}/Applications/SlicerQT/Resources/Images/SlicerSplashScreen.png"  
       DESTINATION ${Slicer_INSTALL_BIN_DIR}
       DESTINATION ${Slicer_INSTALL_BIN_DIR}
       )
       )
     install(
     install(
       FILES "${Slicer_BINARY_DIR}/SlicerLauncherSettingsToInstall.ini"  
       FILES "${Slicer_BINARY_DIR}/SlicerLauncherSettingsToInstall.ini"  

Revision as of 10:26, 7 October 2010

Home < Tools: Application launcher

Back to CTK main page

Application Launcher Logo


What is CTK Application Launcher ?

CTK Application launcher is a lightweight open-source utility allowing to set environment before starting a real application. The launcher is available on Linux, Windows and MacOSX.

Getting started

  • Download: Linux, windows, MacOSX

How does CTK Application Launcher works ?

The launcher looks for a setting file where the path of the real application and its associated environment variable are reported. While setting the environment and loading the real application, it can also display a splash screen.


Settings file location

The launcher successively looks for a setting file located either in the current directory or in bin and lib subdirectories. The setting file should match the following pattern <LAUNCHERNAME>LauncherSettings.ini

For example:

 /home/jchris/Projects/AwesomeApp
 /home/jchris/Projects/bin/AwesomeApp-real
 /home/jchris/Projects/bin/AwesomeAppLauncherSettings.ini
 /home/jchris/Projects/lib/libFoo.so


Setting file description

The setting file should have the following format:

[General]
launcherSplashImagePath=bin/Splash.png
launcherSplashScreenHideDelayMs=1000

[Application]
path=bin/AwesomeApp-real
arguments=--multithreading-enabled

[Paths]
1\path=./bin
size=1

[LibraryPaths]
1\path=./lib
size=1

[EnvironmentVariables]
FOO_DIRS=<APPLAUNCHER_DIR>/lib<PATHSEP>/usr/local/lib

Note that the special strings <PATHSEP>, <APPLAUNCHER_NAME> and <APPLAUNCHER_DIR> will be expanded by the launcher to match the current context.


Launcher command line arguments

As described below, the launcher also provides a broad set of command line arguments.

jchris@karakoram:~/Projects/CTK-AppLauncher-Debug/bin $ ./CTKAppLauncher --launcher-help
Usage
  CTKAppLauncher [options]

Options
  --launcher-help                Display help
  --launcher-verbose             Verbose mode
  --launch                       Specify the application to launch
  --launcher-detach              Launcher will NOT wait for the application to finish
  --launcher-no-splash           Hide launcher splash
  --launcher-timeout             Specify the time in second before the launcher kills the application. -1 means no timeout (default: -1)
  --launcher-generate-template   Generate an example of setting file

Why should you use CTK Application Launcher ?

  • Very easy to configure
  • Standalone executable
  • Available on Windows, linux and MacOSX
  • Thoroughly tested

How to integrate the launcher with my existing projects

    INCLUDE(${CTKAPPLAUNCHER_DIR}/CMake/ctkAppLauncher.cmake)
    INCLUDE(${Slicer_CMAKE_DIR}/SlicerCTKAppLauncherSettings.cmake)

    ctkAppLauncherConfigure(

      TARGET_APPLICATION SlicerQT-real

      APPLICATION_INSTALL_SUBDIR ${Slicer_INSTALL_BIN_DIR}
      APPLICATION_NAME Slicer

      SPLASH_IMAGE_PATH ${Slicer_SOURCE_DIR}/Applications/SlicerQT/Resources/Images/SlicerSplashScreen.png
      SPLASH_IMAGE_INSTALL_SUBDIR ${Slicer_INSTALL_BIN_DIR}
      SPLASHSCREEN_HIDE_DELAY_MS 3000

      ADDITIONAL_HELP_SHORT_ARG "-h"
      ADDITIONAL_HELP_LONG_ARG "--help"
      ADDITIONAL_NOSPLASH_LONG_ARG "--no-splash"

      DESTINATION_DIR ${Slicer_BINARY_DIR}

      LIBRARY_PATHS_BUILD "${SLICER_LIBRARY_PATHS_BUILD}"
      PATHS_BUILD "${SLICER_PATHS_BUILD}"
      ENVVARS_BUILD "${SLICER_ENVVARS_BUILD}"

      LIBRARY_PATHS_INSTALLED "${SLICER_LIBRARY_PATHS_INSTALLED}"
      PATHS_INSTALLED "${SLICER_PATHS_INSTALLED}"
      ENVVARS_INSTALLED "${SLICER_ENVVARS_INSTALLED}"
      )

    install(PROGRAMS "${Slicer_BINARY_DIR}/Slicer${CMAKE_EXECUTABLE_SUFFIX}" DESTINATION ".")

    install(
      FILES "${Slicer_SOURCE_DIR}/Applications/SlicerQT/Resources/Images/SlicerSplashScreen.png" 
      DESTINATION ${Slicer_INSTALL_BIN_DIR}
      )

    install(
      FILES "${Slicer_BINARY_DIR}/SlicerLauncherSettingsToInstall.ini" 
      DESTINATION ${Slicer_INSTALL_BIN_DIR}
      RENAME SlicerLauncherSettings.ini
      )

Links for Developers

Commontk build.png Commontk sourcecode.png Commontk dashboard.png Commontk ideas.png Commontk bug.png
Build Instructions Source Code Source Code's
Quality Dashboard
Project Ideas Report a problem