Documentation/Snapshot/Developers/Tutorials/ExtensionWriting

From Slicer Wiki
Jump to: navigation, search
Home < Documentation < Snapshot < Developers < Tutorials < ExtensionWriting

Introduction

An extension should be considered as a collection of modules.

Metadata

Extension dependencies

set(EXTENSION_DEPENDS NA) # Specified as a space separated list or 'NA' if any

Additional C/CXX flags

find_package(Slicer REQUIRED)

# Additional C/CXX flags - Should be defined before including Slicer_USE_FILE
set(ADDITIONAL_C_FLAGS "" CACHE STRING "Additional ${EXTENSION_NAME} C Flags")
set(ADDITIONAL_CXX_FLAGS "" CACHE STRING "Additional ${EXTENSION_NAME} CXX Flags")

include(${Slicer_USE_FILE})

License & Readme

set(EXTENSION_LICENSE_FILE ${Slicer_LICENSE_FILE})
set(EXTENSION_README_FILE ${Slicer_README_FILE})
set(EXTENSION_LICENSE_SHORT_DESCRIPTION ${Slicer_LICENSE_SHORT_DESCRIPTION})

Superbuild extension - Package external project

set(CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${CMAKE_BINARY_DIR};${EXTENSION_NAME};ALL;/")
#set(CPACK_INSTALL_CMAKE_PROJECTS "${CPACK_INSTALL_CMAKE_PROJECTS};${<EP>_DIR};<EP>;RuntimeLibraries;/")
INCLUDE(${Slicer_EXTENSION_CPACK})

Editor Extensions