From db5af26ecd279da9600c783a88ab8b6f5c630588 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Fillion-Robin Date: Tue, 27 Mar 2012 15:31:49 -0400 Subject: [PATCH 1/4] Configuring the project using -DSlicer_DIR:PATH=.. is all that is needed For example: $ cmake -DSlicer_DIR:PATH=/home/jchris/Projects/Slicer4-Superbuild-Debug/Slicer-build/ ../MRIChangeDetector/MRIChangeDetector/ -- The C compiler identification is GNU -- The CXX compiler identification is GNU -- Check for working C compiler: /usr/local/bin/gcc ... -- Setting build type to 'Debug' as none was specified. -- Setting EXTENSION_SOURCE_DIR ..........: /home/jchris/Projects/MRIChangeDetector/MRIChangeDetector -- Setting EXTENSION_SUPERBUILD_BINARY_DIR: /home/jchris/Projects/MRIChangeDetector-build -- Setting EXTENSION_BUILD_SUBDIRECTORY ..: . -- Setting EXTENSION_BINARY_DIR ..........: /home/jchris/Projects/MRIChangeDetector-build/. -- Found Qt4: /home/jchris/Projects/QtSDK-1.2/Desktop/Qt/474/gcc/bin/qmake (found version "4.7.4") -- Configuring MRIChangeDetector with Qt 4.7.4 (using modules: CORE, GUI, NETWORK, UITOOLS, XML, WEBKIT, SVG, SCRIPT, TEST, ) -- Found Git: /usr/bin/git -- Extension description has been written to: /home/jchris/Projects/MRIChangeDetector-build/Wizard/MRIChangeDetector.s4ext -- Extension description has been written to: /home/jchris/Projects/MRIChangeDetector-build/MRIChangeDetector.s4ext -- Configuring done -- Generating done -- Build files have been written to: /home/jchris/Projects/MRIChangeDetector-build --- MRIChangeDetector/CMakeLists.txt | 5 -- MRIChangeDetector/FindSlicer.cmake | 95 ------------------------------ 2 files changed, 100 deletions(-) delete mode 100644 MRIChangeDetector/FindSlicer.cmake diff --git a/MRIChangeDetector/CMakeLists.txt b/MRIChangeDetector/CMakeLists.txt index f5ae719..18b635d 100644 --- a/MRIChangeDetector/CMakeLists.txt +++ b/MRIChangeDetector/CMakeLists.txt @@ -2,11 +2,6 @@ cmake_minimum_required(VERSION 2.8.4) #----------------------------------------------------------------------------- -#SET(CMAKE_MODULE_PATH /home/mariana/thesis/slicer_tutorials/slicer_modules/MRIChangeDetector) - -SET(Slicer_DIR /home/mariana/thesis_apps/Slicer/Slicer4-SuperBuild/Slicer-build) - - #----------------------------------------------------------------------------- # See http://cmake.org/cmake/help/cmake-2-8-docs.html#section_Policies for details #----------------------------------------------------------------------------- diff --git a/MRIChangeDetector/FindSlicer.cmake b/MRIChangeDetector/FindSlicer.cmake deleted file mode 100644 index 593b3fb..0000000 --- a/MRIChangeDetector/FindSlicer.cmake +++ /dev/null @@ -1,95 +0,0 @@ -# - Find Slicer -# Find the Slicer includes and library -# -# The user should set Slicer_DIR to the directory containing either -# Slicer3Config.cmake or SlicerConfig.cmake -# -# SLICER_FOUND - true if found -# SLICER_IS_SLICER3 - true if we have Slicer vesion 3.X -# SLICER_IS_SLICER4 - true if we have Slicer vesion 4.X - -if (SLICER_INCLUDE_DIR) - # Already in cache, be silent - set (Slicer_FIND_QUIETLY TRUE) -endif () - -# Find SlicerConfig.cmake or Slicer3Config.cmake -if (NOT ${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}.${CMAKE_PATCH_VERSION} VERSION_LESS 2.8.0) - unset (SLICER_CONFIG_FILE CACHE) -endif () -if (Slicer_DIR OR Slicer3_DIR) - find_file (SLICER_CONFIG_FILE SlicerConfig.cmake - "${Slicer_DIR}" "${Slicer3_DIR}" "${Slicer_DIR}/Slicer-build") - if (SLICER_CONFIG_FILE) - set (SLICER_IS_SLICER3 FALSE) - set (SLICER_IS_SLICER4 TRUE) - else () - find_file (SLICER_CONFIG_FILE Slicer3Config.cmake - "${Slicer_DIR}" "${Slicer3_DIR}") - if (SLICER_CONFIG_FILE) - set (SLICER_IS_SLICER3 TRUE) - set (SLICER_IS_SLICER4 FALSE) - endif () - endif () -endif () - -# This sets Slicer_DIR in the cache. I couldn't find any other way to do it. -if (SLICER_CONFIG_FILE) - get_filename_component (SLICER_CONFIG_FILE_DIR - "${SLICER_CONFIG_FILE}" PATH) - set (Slicer_DIR "${SLICER_CONFIG_FILE_DIR}" - CACHE PATH "Directory with SlicerConfig.cmake or Slicer3Config.cmake" - FORCE) -else () - set (Slicer_DIR "Slicer_DIR-NOTFOUND" - CACHE PATH "Directory with SlicerConfig.cmake or Slicer3Config.cmake" - FORCE) -endif () - -message (STATUS "BUILD_SHARED_LIBS: ${BUILD_SHARED_LIBS}") -message (STATUS "BUILD_AGAINST_SLICER3: ${BUILD_AGAINST_SLICER3}") -if (SLICER_CONFIG_FILE) - # The Slicer4 config file complains if these are set. - unset (ITK_DIR CACHE) - unset (QT_QMAKE_EXECUTABLE CACHE) - unset (VTK_DIR CACHE) - include ("${SLICER_CONFIG_FILE}") -endif () - -# handle the QUIETLY and REQUIRED arguments and set SLICER_FOUND to TRUE if -# all listed variables are TRUE -include (FindPackageHandleStandardArgs) -find_package_handle_standard_args (SLICER DEFAULT_MSG Slicer_DIR) - -if (SLICER_FOUND) - - if (SLICER_IS_SLICER3) - ## Slicer 3: convert old names to new names - set (Slicer_Base_INCLUDE_DIRS "${Slicer3_Base_INCLUDE_DIRS}") - set (Slicer_Libs_INCLUDE_DIRS "${Slicer3_Libs_INCLUDE_DIRS}") - set (Slicer_Base_LIBRARIES "${Slicer3_Base_LIBRARIES}") - set (Slicer_Libs_LIBRARIES "${Slicer3_Libs_LIBRARIES}") - set (Slicer_USE_FILE "${Slicer3_USE_FILE}") - else () -# 2012-01-10: JC says these aren't needed any more - ## Slicer 4: include missing cmake scripts (Slicer3 stuff) - include (Slicer3Macros) - include (Slicer3PluginsMacros) - ## Slicer 4: include missing cmake scripts (loadable module stuff) - include (vtkMacroKitPythonWrap) - include (ctkMacroWrapPythonQt) - include (ctkMacroCompilePythonScript) - ## Slicer 4: this seems to be needed too - include(${GenerateCLP_USE_FILE}) - endif () - ## Always set shared libs on - set (BUILD_SHARED_LIBS ON) -else () - ## Restore old values - #set (ITK_DIR ${ITK_DIR_OLD}) - #set (QT_QMAKE_EXECUTABLE ${QT_QMAKE_EXECUTABLE_OLD}) - #set (VTK_DIR ${VTK_DIR_OLD}) -endif () -message (STATUS "BUILD_SHARED_LIBS: ${BUILD_SHARED_LIBS}") - -mark_as_advanced (SLICER_CONFIG_FILE) From c74c787c23c6997e6dbf2c16c7ce15659a3aae70 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Fillion-Robin Date: Tue, 27 Mar 2012 15:32:09 -0400 Subject: [PATCH 2/4] Prevent later confusion by removing commented CMake code --- MRIChangeDetector/CMakeLists.txt | 2 -- 1 file changed, 2 deletions(-) diff --git a/MRIChangeDetector/CMakeLists.txt b/MRIChangeDetector/CMakeLists.txt index 18b635d..8833260 100644 --- a/MRIChangeDetector/CMakeLists.txt +++ b/MRIChangeDetector/CMakeLists.txt @@ -73,8 +73,6 @@ ctkMacroCompilePythonScript( RESOURCES "${KIT_PYTHON_RESOURCES}" DESTINATION_DIR ${CMAKE_BINARY_DIR}/${Slicer_QTSCRIPTEDMODULES_LIB_DIR} INSTALL_DIR ${Slicer_INSTALL_QTSCRIPTEDMODULES_LIB_DIR} - #DESTINATION_DIR /home/mariana/thesis_apps/Slicer/Slicer4-SuperBuild/Slicer-build/Modules/Scripted/MRIChangeDetector - #INSTALL_DIR /home/mariana/thesis_apps/Slicer/Slicer4-SuperBuild/Slicer-build/Modules/Scripted NO_INSTALL_SUBDIR ) From 2df90acae61230e557e496bada3e13c0ab90e467 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Fillion-Robin Date: Tue, 27 Mar 2012 15:43:46 -0400 Subject: [PATCH 3/4] Simplify Wizard/CMakeLists.txt * The sub-folder 'Wizard' is part of the extension and shouldn't include all the CMake code required to build the extension itself. This task is already fulfill by the main CMakeLists.txt --- MRIChangeDetector/Wizard/CMakeLists.txt | 108 ++---------------------- 1 file changed, 8 insertions(+), 100 deletions(-) diff --git a/MRIChangeDetector/Wizard/CMakeLists.txt b/MRIChangeDetector/Wizard/CMakeLists.txt index b982eb3..9df2ddc 100644 --- a/MRIChangeDetector/Wizard/CMakeLists.txt +++ b/MRIChangeDetector/Wizard/CMakeLists.txt @@ -1,60 +1,7 @@ -#----------------------------------------------------------------------------- -cmake_minimum_required(VERSION 2.8.4) -#----------------------------------------------------------------------------- -#SET( CMAKE_MODULE_PATH ~/thesis/slicer_tutorials/slicer_modules/MRIChangeDetector/ ) +set(KIT_PYTHON_MODULE_NAME Wizard) -#----------------------------------------------------------------------------- -# See http://cmake.org/cmake/help/cmake-2-8-docs.html#section_Policies for details -#----------------------------------------------------------------------------- -if(POLICY CMP0017) - cmake_policy(SET CMP0017 OLD) -endif() - -#----------------------------------------------------------------------------- -# Module name -# - Usually identique to the directory name) -# - You shouldn't call 'project(...)'. See SlicerConfig.cmake for more details. -#----------------------------------------------------------------------------- -#MB set(EXTENSION_NAME Wizard) - -#----------------------------------------------------------------------------- -# Extension metadata -#----------------------------------------------------------------------------- -if(NOT Slicer_SOURCE_DIR) - set(EXTENSION_HOMEPAGE "http://www.slicer.org/slicerWiki/index.php/Slicer4:Developers:Projects:QtSlicer/Tutorials/ExtensionWriting") - set(EXTENSION_CATEGORY "Examples") - set(EXTENSION_ICONURL "http://viewvc.slicer.org/viewvc.cgi/Slicer4/trunk/Extensions/Testing/MRIChangeDetector/Resources/Icons/MRIChangeDetector.png?revision=19437&view=co") - set(EXTENSION_STATUS "Beta") - set(EXTENSION_CONTRIBUTORS "Jean-Christophe Fillion-Robin (Kitware)") - set(EXTENSION_DESCRIPTION "This is an example of scripted Qt loadable module built as an extension") - set(EXTENSION_SCREENSHOTURLS "http://wiki.slicer.org/slicerWiki/images/e/e2/Slicer-r19441-MRIChangeDetector-screenshot.png") - set(EXTENSION_DEPENDS NA) # Specified as a space separated list or 'NA' if any -endif() - -#----------------------------------------------------------------------------- -# Prerequisites -#----------------------------------------------------------------------------- -if(NOT Slicer_SOURCE_DIR) - 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}) - - set(EXTENSION_LICENSE_FILE ${Slicer_LICENSE_FILE}) - set(EXTENSION_README_FILE ${Slicer_README_FILE}) - -#MB include(SlicerEnableExtensionTesting) -endif() - - -#----------------------------------------------------------------------------- -# Sources -#----------------------------------------------------------------------------- -set(CTWizard_PYTHON_SCRIPTS +set(KIT_PYTHON_SCRIPTS __init__.py Helper.py MRIChangeDetectorStep.py @@ -62,54 +9,15 @@ set(CTWizard_PYTHON_SCRIPTS RegistrationStep.py ) -set(CTWizard_PYTHON_RESOURCES +set(KIT_PYTHON_RESOURCES ) -#----------------------------------------------------------------------------- -# Build -#----------------------------------------------------------------------------- ctkMacroCompilePythonScript( - TARGET_NAME MRIChangeDetectorWizard - SCRIPTS "${CTWizard_PYTHON_SCRIPTS}" - RESOURCES "${CTWizard_PYTHON_RESOURCES}" -# DESTINATION_DIR ${CMAKE_BINARY_DIR}/${Slicer_QTSCRIPTEDMODULES_LIB_DIR} -# INSTALL_DIR ${Slicer_INSTALL_QTSCRIPTEDMODULES_LIB_DIR} - DESTINATION_DIR /home/mariana/thesis_apps/Slicer/Slicer4-SuperBuild/Slicer-build/bin/Python/MRIChangeDetectorWizard - INSTALL_DIR /home/mariana/thesis_apps/Slicer/Slicer4-SuperBuild/Slicer-build/Python + TARGET_NAME ${EXTENSION_NAME}${KIT_PYTHON_MODULE_NAME} + SCRIPTS "${KIT_PYTHON_SCRIPTS}" + RESOURCES "${KIT_PYTHON_RESOURCES}" + DESTINATION_DIR ${CMAKE_BINARY_DIR}/${Slicer_QTSCRIPTEDMODULES_LIB_DIR}/${KIT_PYTHON_MODULE_NAME} + INSTALL_DIR ${Slicer_INSTALL_QTSCRIPTEDMODULES_LIB_DIR}/${KIT_PYTHON_MODULE_NAME} NO_INSTALL_SUBDIR ) -#----------------------------------------------------------------------------- -# Testing -#----------------------------------------------------------------------------- -#if(BUILD_TESTING) -# add_subdirectory(Testing) -#endif() - -#----------------------------------------------------------------------------- -# Generate extension description file '.s4ext' -#----------------------------------------------------------------------------- -if(NOT Slicer_SOURCE_DIR) - include(SlicerFunctionGenerateExtensionDescription) - slicerFunctionGenerateExtensionDescription( - EXTENSION_NAME ${EXTENSION_NAME} - EXTENSION_CATEGORY ${EXTENSION_CATEGORY} - EXTENSION_ICONURL ${EXTENSION_ICONURL} - EXTENSION_STATUS ${EXTENSION_STATUS} - EXTENSION_HOMEPAGE ${EXTENSION_HOMEPAGE} - EXTENSION_CONTRIBUTORS ${EXTENSION_CONTRIBUTORS} - EXTENSION_DESCRIPTION ${EXTENSION_DESCRIPTION} - EXTENSION_SCREENSHOTURLS ${EXTENSION_SCREENSHOTURLS} - EXTENSION_DEPENDS ${EXTENSION_DEPENDS} - DESTINATION_DIR ${CMAKE_CURRENT_BINARY_DIR} - SLICER_WC_REVISION ${Slicer_WC_REVISION} - SLICER_WC_ROOT ${Slicer_WC_ROOT} - ) -endif() - -#----------------------------------------------------------------------------- -# Packaging -#----------------------------------------------------------------------------- -if(NOT Slicer_SOURCE_DIR) - include(${Slicer_EXTENSION_CPACK}) -endif() From 5b357d3942a3c88cd6823a1bf92c382da74c8bf1 Mon Sep 17 00:00:00 2001 From: Jean-Christophe Fillion-Robin Date: Tue, 27 Mar 2012 15:47:15 -0400 Subject: [PATCH 4/4] Keep things simpler by removing Wizard/CMakeLists.txt --- MRIChangeDetector/CMakeLists.txt | 10 +++++----- MRIChangeDetector/Wizard/CMakeLists.txt | 23 ----------------------- 2 files changed, 5 insertions(+), 28 deletions(-) delete mode 100644 MRIChangeDetector/Wizard/CMakeLists.txt diff --git a/MRIChangeDetector/CMakeLists.txt b/MRIChangeDetector/CMakeLists.txt index 8833260..972583e 100644 --- a/MRIChangeDetector/CMakeLists.txt +++ b/MRIChangeDetector/CMakeLists.txt @@ -48,17 +48,17 @@ if(NOT Slicer_SOURCE_DIR) include(SlicerEnableExtensionTesting) endif() -#----------------------------------------------------------------------------- -# Add new subdirectory -#----------------------------------------------------------------------------- -ADD_SUBDIRECTORY(Wizard) - #----------------------------------------------------------------------------- # Sources #----------------------------------------------------------------------------- set(KIT_PYTHON_SCRIPTS MRIChangeDetector.py + Wizard/__init__.py + Wizard/Helper.py + Wizard/MRIChangeDetectorStep.py + Wizard/SelectVolumesStep.py + Wizard/RegistrationStep.py ) set(KIT_PYTHON_RESOURCES diff --git a/MRIChangeDetector/Wizard/CMakeLists.txt b/MRIChangeDetector/Wizard/CMakeLists.txt deleted file mode 100644 index 9df2ddc..0000000 --- a/MRIChangeDetector/Wizard/CMakeLists.txt +++ /dev/null @@ -1,23 +0,0 @@ - -set(KIT_PYTHON_MODULE_NAME Wizard) - -set(KIT_PYTHON_SCRIPTS - __init__.py - Helper.py - MRIChangeDetectorStep.py - SelectVolumesStep.py - RegistrationStep.py - ) - -set(KIT_PYTHON_RESOURCES - ) - -ctkMacroCompilePythonScript( - TARGET_NAME ${EXTENSION_NAME}${KIT_PYTHON_MODULE_NAME} - SCRIPTS "${KIT_PYTHON_SCRIPTS}" - RESOURCES "${KIT_PYTHON_RESOURCES}" - DESTINATION_DIR ${CMAKE_BINARY_DIR}/${Slicer_QTSCRIPTEDMODULES_LIB_DIR}/${KIT_PYTHON_MODULE_NAME} - INSTALL_DIR ${Slicer_INSTALL_QTSCRIPTEDMODULES_LIB_DIR}/${KIT_PYTHON_MODULE_NAME} - NO_INSTALL_SUBDIR - ) -