Commit 424f576f authored by finetjul's avatar finetjul

ENH: Expose cmake variables into the build dir of Slicer for external use.

Add an example to compile a module outside of slicer.

git-svn-id: http://svn.slicer.org/Slicer4/trunk@15841 3bd1e089-480b-0410-8dfb-8563597acbee
parent 8f4bbabb
......@@ -45,7 +45,7 @@ MACRO(SlicerMacroBuildModuleLogic)
# Find Slicer3
IF(NOT Slicer_SOURCE_DIR)
FIND_PACKAGE(Slicer3 REQUIRED)
FIND_PACKAGE(Slicer REQUIRED)
INCLUDE(${Slicer_USE_FILE})
slicer3_set_default_install_prefix_for_external_projects()
ENDIF(NOT Slicer_SOURCE_DIR)
......@@ -66,9 +66,12 @@ MACRO(SlicerMacroBuildModuleLogic)
SET(MY_LIBRARY_EXPORT_DIRECTIVE ${MODULELOGIC_EXPORT_DIRECTIVE})
SET(MY_EXPORT_HEADER_PREFIX ${MODULELOGIC_NAME})
SET(MY_LIBNAME ${lib_name})
IF (NOT EXISTS ${Slicer_EXPORT_HEADER_TEMPLATE})
MESSAGE("Warning, Slicer_EXPORT_HEADER_TEMPLATE doesn't exist: ${Slicer_EXPORT_HEADER_TEMPLATE}")
ENDIF(NOT EXISTS ${Slicer_EXPORT_HEADER_TEMPLATE})
CONFIGURE_FILE(
${Slicer_SOURCE_DIR}/qSlicerExport.h.in
${Slicer_EXPORT_HEADER_TEMPLATE}
${CMAKE_CURRENT_BINARY_DIR}/${MY_EXPORT_HEADER_PREFIX}Export.h
)
SET(dynamicHeaders
......
......@@ -21,6 +21,7 @@
#
#
#
INCLUDE(SlicerMacroParseArguments)
MACRO(slicerMacroBuildQtModule)
SLICER_PARSE_ARGUMENTS(QTMODULE
......@@ -49,10 +50,10 @@ MACRO(slicerMacroBuildQtModule)
ADD_DEFINITIONS(-DQTMODULE_TITLE="${QTMODULE_TITLE}")
# --------------------------------------------------------------------------
# Find Slicer3
# Find Slicer
IF(NOT Slicer_SOURCE_DIR)
FIND_PACKAGE(Slicer3 REQUIRED)
FIND_PACKAGE(Slicer REQUIRED)
INCLUDE(${Slicer_USE_FILE})
slicer3_set_default_install_prefix_for_external_projects()
ENDIF()
......@@ -74,8 +75,11 @@ MACRO(slicerMacroBuildQtModule)
SET(MY_EXPORT_HEADER_PREFIX qSlicer${QTMODULE_NAME}Module)
SET(MY_LIBNAME ${lib_name})
IF (NOT EXISTS ${Slicer_EXPORT_HEADER_TEMPLATE})
MESSAGE("Warning, Slicer_EXPORT_HEADER_TEMPLATE doesn't exist: ${Slicer_EXPORT_HEADER_TEMPLATE}")
ENDIF(NOT EXISTS ${Slicer_EXPORT_HEADER_TEMPLATE})
CONFIGURE_FILE(
${Slicer_SOURCE_DIR}/qSlicerExport.h.in
${Slicer_EXPORT_HEADER_TEMPLATE}
${CMAKE_CURRENT_BINARY_DIR}/${MY_EXPORT_HEADER_PREFIX}Export.h
)
SET(dynamicHeaders
......@@ -98,7 +102,10 @@ MACRO(slicerMacroBuildQtModule)
QT4_ADD_RESOURCES(QTMODULE_QRC_SRCS ${QTMODULE_RESOURCES})
ENDIF()
QT4_ADD_RESOURCES(QTMODULE_QRC_SRCS ${Slicer_SOURCE_DIR}/Resources/qSlicerLogos.qrc)
IF (NOT EXISTS ${Slicer_LOGOS_RESOURCE})
MESSAGE("Warning, Slicer_LOGOS_RESOURCE doesn't exist: ${Slicer_LOGOS_RESOURCE}")
ENDIF(NOT EXISTS ${Slicer_LOGOS_RESOURCE})
QT4_ADD_RESOURCES(QTMODULE_QRC_SRCS ${Slicer_LOGOS_RESOURCE})
SET_SOURCE_FILES_PROPERTIES(
${QTMODULE_UI_CXX}
......@@ -108,7 +115,7 @@ MACRO(slicerMacroBuildQtModule)
SOURCE_GROUP("Resources" FILES
${QTMODULE_UI_SRCS}
${Slicer_SOURCE_DIR}/Resources/qSlicerLogos.qrc
${Slicer_LOGOS_RESOURCE}
${QTMODULE_RESOURCES}
)
......
......@@ -30,6 +30,13 @@ FOREACH(policy ${project_policies})
ENDIF()
ENDFOREACH()
#-----------------------------------------------------------------------------
# Set the header template which defines custom export/import macros
# for shared libraries
#-----------------------------------------------------------------------------
SET(Slicer_EXPORT_HEADER_TEMPLATE "${Slicer_SOURCE_DIR}/qSlicerExport.h.in")
SET(Slicer_LOGOS_RESOURCE "${Slicer_SOURCE_DIR}/Resources/qSlicerLogos.qrc")
#-----------------------------------------------------------------------------
# CMake Function(s) and Macro(s)
#-----------------------------------------------------------------------------
......@@ -935,7 +942,7 @@ ADD_SUBDIRECTORY(CMake)
#-----------------------------------------------------------------------------
# Set up for building against a Slicer build tree and a Slicer installation
#
#-----------------------------------------------------------------------------
INCLUDE(${Slicer_SOURCE_DIR}/GenerateSlicerConfig.cmake)
CONFIGURE_FILE(${Slicer_SOURCE_DIR}/UseSlicer.cmake.in
......
ADD_SUBDIRECTORY(ExtensionTest)
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
#------------------------------------------------------------------------------
# Slicer Package
#------------------------------------------------------------------------------
IF (Slicer_SOURCE_DIR)
MESSAGE("Slicer_INCLUDE_DIR: ${Slicer_INCLUDE_DIR}")
ELSE (Slicer_SOURCE_DIR)
FIND_PACKAGE(Slicer REQUIRED)
INCLUDE(${Slicer_USE_FILE})
ENDIF (Slicer_SOURCE_DIR)
#------------------------------------------------------------------------------
# Qt Package
#------------------------------------------------------------------------------
SET(minimum_required_qt_version "4.6.2")
FIND_PACKAGE(Qt4)
IF(NOT QT4_FOUND)
MESSAGE(FATAL_ERROR "error: Qt >= ${minimum_required_qt_version} was not found on your system. You probably need to set the QT_QMAKE_EXECUTABLE variable.")
ENDIF()
# Check version, note that ${QT_VERSION_PATCH} could also be used
IF("${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}" VERSION_LESS "${minimum_required_qt_version}")
MESSAGE(FATAL_ERROR "error: Slicer requires Qt >= ${minimum_required_qt_version} -- you cannot use Qt ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}. ${extra_error_message}")
ENDIF()
MESSAGE(STATUS "Configuring Slicer with Qt ${QT_VERSION_MAJOR}.${QT_VERSION_MINOR}.${QT_VERSION_PATCH}")
# Includes Qt headers
INCLUDE(${QT_USE_FILE})
#------------------------------------------------------------------------------
# Project
#------------------------------------------------------------------------------
# Add subdirectories
ADD_SUBDIRECTORY(Logic)
# Module name (usually identique to the directory name)
SET(qt_module_name "ExtensionTest")
SET(qt_module_export_directive "Q_SLICER_QTMODULES_EXTENSIONTEST_EXPORT")
# Additional includes - Current_{source,binary} and Slicer_{Libs,Base} already included
SET(qt_module_include_directories
${CMAKE_CURRENT_SOURCE_DIR}/Widgets
${CMAKE_CURRENT_BINARY_DIR}/Widgets
${CMAKE_CURRENT_SOURCE_DIR}/Logic
${CMAKE_CURRENT_BINARY_DIR}/Logic
)
# Source files
SET(qt_module_SRCS
qSlicerExtensionTestModule.cxx
qSlicerExtensionTestModule.h
qSlicerExtensionTestModuleWidget.cxx
qSlicerExtensionTestModuleWidget.h
)
# Headers that should run through moc
SET(qt_module_MOC_SRCS
qSlicerExtensionTestModule.h
qSlicerExtensionTestModuleWidget.h
)
# UI files
SET(qt_module_UI_SRCS
Resources/UI/qSlicerExtensionTestModule.ui
)
# Additional Target libraries
SET(qt_module_target_libraries
vtkSlicerExtensionTestModuleLogic
)
# Resources
SET(qt_module_resources
Resources/qSlicerExtensionTestModule.qrc
)
slicerMacroBuildQtModule(
NAME ${qt_module_name}
EXPORT_DIRECTIVE ${qt_module_export_directive}
INCLUDE_DIRECTORIES ${qt_module_include_directories}
SRCS ${qt_module_SRCS}
MOC_SRCS ${qt_module_MOC_SRCS}
UI_SRCS ${qt_module_UI_SRCS}
TARGET_LIBRARIES ${qt_module_target_libraries}
RESOURCES ${qt_module_resources}
)
if(BUILD_TESTING)
#add_subdirectory(Testing)
endif(BUILD_TESTING)
project(vtkSlicerExtensionTestModuleLogic)
#
# See CMake/SlicerMacroBuildModuleLogic.cmake for details
#
SET(module_logic_name "${PROJECT_NAME}")
# The header '${PROJECT_NAME}Export.h' will be automatically configured.
SET(module_logic_export_directive "VTK_SLICER_EXTENSIONTEST_MODULE_LOGIC_EXPORT")
# Additional directories to include
SET(module_logic_include_directories
)
# Source files
SET(module_logic_SRCS
vtkSlicerExtensionTestLogic.cxx
)
# Additional Target libraries
SET(module_logic_target_libraries
${ITK_LIBRARIES}
)
SlicerMacroBuildModuleLogic(
NAME ${module_logic_name}
EXPORT_DIRECTIVE ${module_logic_export_directive}
INCLUDE_DIRECTORIES ${module_logic_include_directories}
SRCS ${module_logic_SRCS}
TARGET_LIBRARIES ${module_logic_target_libraries}
)
/*=auto=========================================================================
Portions (c) Copyright 2005 Brigham and Women's Hospital (BWH) All Rights Reserved.
See Doc/copyright/copyright.txt
or http://www.slicer.org/copyright/copyright.txt for details.
Program: 3D Slicer
Module: $RCSfile: vtkSlicerExtensionTestLogic.h,v $
Date: $Date: 2006/01/08 04:48:05 $
Version: $Revision: 1.45 $
=========================================================================auto=*/
// .NAME vtkSlicerExtensionTestLogic - slicer logic class for volumes manipulation
// .SECTION Description
// This class manages the logic associated with reading, saving,
// and changing propertied of the volumes
#ifndef __vtkSlicerExtensionTestLogic_h
#define __vtkSlicerExtensionTestLogic_h
// Slicer includes
#include "vtkSlicerModuleLogic.h"
// MRML includes
#include <vtkMRML.h>
#include <vtkMRMLVolumeNode.h>
// STD includes
#include <cstdlib>
#include "vtkSlicerExtensionTestModuleLogicExport.h"
class vtkMRMLScalarVolumeNode;
class vtkMRMLScalarVolumeDisplayNode;
class vtkMRMLVolumeHeaderlessStorageNode;
class vtkStringArray;
class VTK_SLICER_EXTENSIONTEST_MODULE_LOGIC_EXPORT vtkSlicerExtensionTestLogic :
public vtkSlicerModuleLogic
{
public:
static vtkSlicerExtensionTestLogic *New();
vtkTypeRevisionMacro(vtkSlicerExtensionTestLogic,vtkSlicerModuleLogic);
void PrintSelf(ostream& os, vtkIndent indent);
///
/// The currently active mrml volume node
vtkGetObjectMacro(ActiveVolumeNode, vtkMRMLVolumeNode);
void SetActiveVolumeNode(vtkMRMLVolumeNode *ActiveVolumeNode);
///
/// Sub type of loading an archetype volume that is known to be a scalar
vtkMRMLScalarVolumeNode* AddArchetypeScalarVolume(const char *filename, const char* volname, int loadingOptions);
vtkMRMLScalarVolumeNode* AddArchetypeScalarVolume(const char *filename, const char* volname);
/// Overloaded function of AddArchetypeVolume to provide more
/// loading options, where variable loadingOptions is bit-coded as following:
/// bit 0: label map
/// bit 1: centered
/// bit 2: loading single file
/// higher bits are reserved for future use
vtkMRMLVolumeNode* AddArchetypeVolume(const char* filename,
const char* volname, int loadingOptions);
vtkMRMLVolumeNode* AddArchetypeVolume(const char* filename,
const char* volname, int loadingOptions,
vtkStringArray *fileList);
vtkMRMLVolumeNode* AddArchetypeVolume(const char *filename, const char* volname);
///
/// Create new mrml node and associated storage node.
/// Read image data from a specified file
/// vtkMRMLVolumeNode* AddArchetypeVolume (const char* filename, int centerImage, int labelMap, const char* volname);
/// Overloaded function of AddHeaderVolume to provide more
/// loading options, where variable loadingOptions is bit-coded as following:
/// bit 0: label map
/// bit 1: centered
/// bit 2: loading signal file
/// higher bits are reserved for future use
vtkMRMLVolumeNode* AddHeaderVolume(const char* filename, const char* volname,
vtkMRMLVolumeHeaderlessStorageNode *headerStorage,
int loadingOptions);
///
/// Write volume's image data to a specified file
int SaveArchetypeVolume(const char* filename, vtkMRMLVolumeNode *volumeNode);
///
/// Create a label map volume to match the given volume node and add it to
/// the scene
vtkMRMLScalarVolumeNode *CreateLabelVolume(vtkMRMLScene *scene,
vtkMRMLVolumeNode *volumeNode,
const char *name);
///
/// Create a deep copy of a volume and add it to the scene
vtkMRMLScalarVolumeNode *CloneVolume(vtkMRMLScene *scene,
vtkMRMLVolumeNode *volumeNode,
const char *name);
///
/// Update MRML events
virtual void ProcessMRMLEvents(vtkObject * caller, unsigned long event, void * callData);
///
/// Update logic events
virtual void ProcessLogicEvents(vtkObject * caller, unsigned long event, void * callData);
//BTX
using vtkMRMLAbstractLogic::ProcessLogicEvents;
//ETX
///
/// Computes matrix we need to register
/// V1Node to V2Node given the
/// "register.dat" matrix from tkregister2 (FreeSurfer)
void TranslateFreeSurferRegistrationMatrixIntoSlicerRASToRASMatrix(vtkMRMLVolumeNode *V1Node,
vtkMRMLVolumeNode *V2Node,
vtkMatrix4x4 *FSRegistrationMatrix,
vtkMatrix4x4 *ResultsMatrix);
///
/// Convenience method to compute
/// a volume's Vox2RAS-tkreg Matrix
void ComputeTkRegVox2RASMatrix(vtkMRMLVolumeNode *VNode, vtkMatrix4x4 *M);
protected:
vtkSlicerExtensionTestLogic();
virtual ~vtkSlicerExtensionTestLogic();
///
/// Examine the file name to see if the extension is one of the supported
/// freesurfer volume formats. Used to assign the proper colour node to label maps.
int IsFreeSurferVolume(const char* filename);
vtkMRMLVolumeNode *ActiveVolumeNode;
private:
vtkSlicerExtensionTestLogic(const vtkSlicerExtensionTestLogic&); // Not implemented
void operator=(const vtkSlicerExtensionTestLogic&); // Not implemented
};
#endif
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>qSlicerExtensionTestModule</class>
<widget class="qSlicerWidget" name="qSlicerExtensionTestModule">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>525</width>
<height>319</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QGridLayout" name="gridLayout">
<item row="0" column="0" colspan="2">
<widget class="ctkCollapsibleButton" name="CTKCollapsibleButton">
<property name="text">
<string>Display</string>
</property>
<property name="contentsFrameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_3"/>
</widget>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>ctkCollapsibleButton</class>
<extends>QWidget</extends>
<header>ctkCollapsibleButton.h</header>
<container>1</container>
</customwidget>
<customwidget>
<class>qSlicerWidget</class>
<extends>QWidget</extends>
<header>qSlicerWidget.h</header>
<container>1</container>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>
<!DOCTYPE RCC><RCC version="1.0">
<qresource>
<file>Icons/ExtensionTest.png</file>
<file>Icons/LoadVolume.png</file>
</qresource>
</RCC>
// Qt includes
#include <QtPlugin>
// ExtensionTest Logic includes
#include <vtkSlicerExtensionTestLogic.h>
// ExtensionTest includes
#include "qSlicerExtensionTestModule.h"
#include "qSlicerExtensionTestModuleWidget.h"
//-----------------------------------------------------------------------------
Q_EXPORT_PLUGIN2(qSlicerExtensionTestModule, qSlicerExtensionTestModule);
//-----------------------------------------------------------------------------
class qSlicerExtensionTestModulePrivate
{
public:
qSlicerExtensionTestModulePrivate();
};
//-----------------------------------------------------------------------------
// qSlicerExtensionTestModulePrivate methods
//-----------------------------------------------------------------------------
qSlicerExtensionTestModulePrivate::qSlicerExtensionTestModulePrivate()
{
}
//-----------------------------------------------------------------------------
// qSlicerExtensionTestModule methods
//-----------------------------------------------------------------------------
qSlicerExtensionTestModule::qSlicerExtensionTestModule(QObject* _parent)
: Superclass(_parent)
, d_ptr(new qSlicerExtensionTestModulePrivate)
{
}
//-----------------------------------------------------------------------------
qSlicerExtensionTestModule::~qSlicerExtensionTestModule()
{
}
//-----------------------------------------------------------------------------
QString qSlicerExtensionTestModule::helpText()const
{
return QString();
}
//-----------------------------------------------------------------------------
QString qSlicerExtensionTestModule::acknowledgementText()const
{
return "This work was supported by ...";
}
//-----------------------------------------------------------------------------
QIcon qSlicerExtensionTestModule::icon()const
{
return QIcon(":/Icons/ExtensionTest.png");
}
//-----------------------------------------------------------------------------
void qSlicerExtensionTestModule::setup()
{
this->Superclass::setup();
}
//-----------------------------------------------------------------------------
qSlicerAbstractModuleRepresentation * qSlicerExtensionTestModule::createWidgetRepresentation()
{
return new qSlicerExtensionTestModuleWidget;
}
//-----------------------------------------------------------------------------
vtkMRMLAbstractLogic* qSlicerExtensionTestModule::createLogic()
{
return vtkSlicerExtensionTestLogic::New();
}
#ifndef __qSlicerExtensionTestModule_h
#define __qSlicerExtensionTestModule_h
// CTK includes
#include <ctkPimpl.h>
// SlicerQt includes
#include "qSlicerLoadableModule.h"
#include "qSlicerExtensionTestModuleExport.h"
class qSlicerExtensionTestModulePrivate;
class Q_SLICER_QTMODULES_EXTENSIONTEST_EXPORT qSlicerExtensionTestModule :
public qSlicerLoadableModule
{
Q_OBJECT
Q_INTERFACES(qSlicerLoadableModule);
public:
typedef qSlicerLoadableModule Superclass;
explicit qSlicerExtensionTestModule(QObject *parent=0);
virtual ~qSlicerExtensionTestModule();
qSlicerGetTitleMacro(QTMODULE_TITLE);
///
/// Help to use the module
virtual QString helpText()const;
///
/// Return acknowledgements
virtual QString acknowledgementText()const;
///
/// Return a custom icon for the module
virtual QIcon icon()const;
protected:
///
/// Initialize the module. Register the volumes reader/writer
virtual void setup();
///
/// Create and return the widget representation associated to this module
virtual qSlicerAbstractModuleRepresentation * createWidgetRepresentation();
///
/// Create and return the logic associated to this module
virtual vtkMRMLAbstractLogic* createLogic();
protected:
QScopedPointer<qSlicerExtensionTestModulePrivate> d_ptr;
private:
Q_DECLARE_PRIVATE(qSlicerExtensionTestModule);
Q_DISABLE_COPY(qSlicerExtensionTestModule);
};
#endif
// Qt includes
#include <QDebug>
// SlicerQt includes
#include "qSlicerExtensionTestModuleWidget.h"
#include "ui_qSlicerExtensionTestModule.h"
//-----------------------------------------------------------------------------
class qSlicerExtensionTestModuleWidgetPrivate: public Ui_qSlicerExtensionTestModule
{
public:
qSlicerExtensionTestModuleWidgetPrivate();
};
//-----------------------------------------------------------------------------
// qSlicerExtensionTestModuleWidgetPrivate methods
//-----------------------------------------------------------------------------
qSlicerExtensionTestModuleWidgetPrivate::qSlicerExtensionTestModuleWidgetPrivate()
{
}
//-----------------------------------------------------------------------------
// qSlicerExtensionTestModuleWidget methods
//-----------------------------------------------------------------------------
qSlicerExtensionTestModuleWidget::qSlicerExtensionTestModuleWidget(QWidget* _parent)
: Superclass( _parent )
, d_ptr( new qSlicerExtensionTestModuleWidgetPrivate )
{
}
//-----------------------------------------------------------------------------
qSlicerExtensionTestModuleWidget::~qSlicerExtensionTestModuleWidget()
{
}
//-----------------------------------------------------------------------------
void qSlicerExtensionTestModuleWidget::setup()
{
Q_D(qSlicerExtensionTestModuleWidget);
d->setupUi(this);
this->Superclass::setup();
}
#ifndef __qSlicerExtensionTestModuleWidget_h
#define __qSlicerExtensionTestModuleWidget_h
// SlicerQt includes
#include "qSlicerAbstractModuleWidget.h"
#include "qSlicerExtensionTestModuleExport.h"
class qSlicerExtensionTestModuleWidgetPrivate;
class vtkMRMLNode;
class Q_SLICER_QTMODULES_EXTENSIONTEST_EXPORT qSlicerExtensionTestModuleWidget :
public qSlicerAbstractModuleWidget
{
Q_OBJECT
public:
typedef qSlicerAbstractModuleWidget Superclass;
qSlicerExtensionTestModuleWidget(QWidget *parent=0);
virtual ~qSlicerExtensionTestModuleWidget();
public slots:
protected:
QScopedPointer<qSlicerExtensionTestModuleWidgetPrivate> d_ptr;
virtual void setup();
private:
Q_DECLARE_PRIVATE(qSlicerExtensionTestModuleWidget);
Q_DISABLE_COPY(qSlicerExtensionTestModuleWidget);
};
#endif
......@@ -27,6 +27,10 @@ ENDIF(Slicer_USE_QT)
# Whether Slicer was built with shared libraries.
set(Slicer_BUILD_SHARED "@BUILD_SHARED_LIBS@")
# Export header for BuildModuleLogic and BuildQTModule
SET(Slicer_EXPORT_HEADER_TEMPLATE "@Slicer_EXPORT_HEADER_TEMPLATE@")
SET(Slicer_LOGOS_RESOURCE "@Slicer_LOGOS_RESOURCE@")
# Slicer options
set(Slicer_USE_BatchMake "@Slicer_USE_BatchMake@")
set(Slicer_USE_MIDAS "@Slicer_USE_MIDAS@")
......@@ -84,6 +88,9 @@ set(Slicer_INSTALL_MODULES_LIB_DIR "@Slicer_INSTALL_MODULES_LIB_DIR@")
set(Slicer_INSTALL_MODULES_INCLUDE_DIR "@Slicer_INSTALL_MODULES_INCLUDE_DIR@")
set(Slicer_INSTALL_MODULES_SHARE_DIR "@Slicer_INSTALL_MODULES_SHARE_DIR@")
set(Slicer_USE_QT "@Slicer_USE_QT@")
set(Slicer_BUILD_QTLOADABLEMODULES "@Slicer_BUILD_QTLOADABLEMODULES@")
IF(Slicer_USE_QT AND Slicer_BUILD_QTLOADABLEMODULES)
set(Slicer_INSTALL_QTLOADABLEMODULES_BIN_DIR "@Slicer_INSTALL_QTLOADABLEMODULES_BIN_DIR@")
set(Slicer_INSTALL_QTLOADABLEMODULES_LIB_DIR "@Slicer_INSTALL_QTLOADABLEMODULES_LIB_DIR@")
......
......@@ -91,7 +91,11 @@ endif(NOT WIN32)
# Add cmake module path.
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${Slicer_CMAKE_DIR}")
include("${Slicer_CMAKE_DIR}/Slicer3Macros.cmake")
include("${Slicer_CMAKE_DIR}/Slicer3PersistenceMacros.cmake")
include("${Slicer_CMAKE_DIR}/Slicer3ModulesMacros.cmake")
include("${Slicer_CMAKE_DIR}/Slicer3PluginsMacros.cmake")
include(Slicer3Macros)
include(Slicer3PersistenceMacros)
include(Slicer3ModulesMacros)
include(Slicer3PluginsMacros)
include(SlicerMacroParseArguments)
include(SlicerMacroBuildModuleLogic)
include(SlicerMacroBuildQtModule)
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment