Difference between revisions of "Documentation/Nightly/Developers/Build Module"
From Slicer Wiki
m |
m |
||
Line 1: | Line 1: | ||
− | |||
= Build module outside of Slicer source tree = | = Build module outside of Slicer source tree = | ||
Line 53: | Line 52: | ||
[...] | [...] | ||
</pre> | </pre> | ||
+ | |||
+ | |||
+ | {{:Documentation/{{documentation/version}}/Developers/FAQ/Extensions|Extensions}} |
Revision as of 23:38, 15 February 2013
Home < Documentation < Nightly < Developers < Build ModuleBuild module outside of Slicer source tree
The different type of modules supported by Slicer can easily be built outside of the Slicer source tree.
The following examples are specific to unix-like platforms and can easily be adapted for Windows.
Assuming the source code of your module is located in folder MyModule
, externally building modules could be achieved doing:
$ mkdir MyModule-build $ cd MyModule-build $ cmake -DSlicer_DIR:PATH=/path/to/Slicer-Superbuild/Slicer-build ../MyModule $ make
For this to work, in addition to invoke cmake_minimum_required
at the top of the top-level CMakeLists.txt
, it's important to make sure the following line are added after setting MODULE_NAME
:
#----------------------------------------------------------------------------- if(NOT Slicer_SOURCE_DIR) find_package(Slicer REQUIRED) include(${Slicer_USE_FILE}) endif()
For example:
cmake_minimum_required(VERSION 2.8.8) <- - - - ADD THIS #----------------------------------------------------------------------------- set(MODULE_NAME MyModule) set(MODULE_TITLE ${MODULE_NAME}) string(TOUPPER ${MODULE_NAME} MODULE_NAME_UPPER) #----------------------------------------------------------------------------- if(NOT Slicer_SOURCE_DIR) <- - - - - - - - - - ADD THIS find_package(Slicer REQUIRED) <- - - - - - - ADD THIS include(${Slicer_USE_FILE}) <- - - - - - - - ADD THIS endif() #----------------------------------------------------------------------------- add_subdirectory(Logic) #----------------------------------------------------------------------------- set(MODULE_EXPORT_DIRECTIVE "Q_SLICER_QTMODULES_${MODULE_NAME_UPPER}_EXPORT") [...]