diff --git a/CMake/PackageDepends/MITK_VTK_Config.cmake b/CMake/PackageDepends/MITK_VTK_Config.cmake index 33c599ce49..e81aee00b9 100644 --- a/CMake/PackageDepends/MITK_VTK_Config.cmake +++ b/CMake/PackageDepends/MITK_VTK_Config.cmake @@ -1,8 +1,12 @@ find_package(VTK COMPONENTS ${VTK_REQUIRED_COMPONENTS_BY_MODULE} REQUIRED) if(VTK_FOUND AND NOT VTK_BUILD_SHARED_LIBS) message(FATAL_ERROR "MITK only supports a VTK which was built with shared libraries. Turn on BUILD_SHARED_LIBS in your VTK config.") endif() +if(MITK_USE_Qt5) + find_package(Qt5Widgets REQUIRED QUIET) +endif() + list(APPEND ALL_INCLUDE_DIRECTORIES ${VTK_INCLUDE_DIRS}) list(APPEND ALL_LIBRARIES ${VTK_LIBRARIES}) list(APPEND ALL_COMPILE_DEFINITIONS ${VTK_DEFINITIONS}) diff --git a/CMakeExternals/Qxt.cmake b/CMakeExternals/Qxt.cmake index 9a48121003..3e56c585ef 100644 --- a/CMakeExternals/Qxt.cmake +++ b/CMakeExternals/Qxt.cmake @@ -1,43 +1,43 @@ #----------------------------------------------------------------------------- # Qxt #----------------------------------------------------------------------------- if(MITK_USE_Qxt) # Sanity checks if(DEFINED Qxt_DIR AND NOT EXISTS ${Qxt_DIR}) message(FATAL_ERROR "Qxt_DIR variable is defined but corresponds to non-existing directory") endif() set(proj Qxt) set(proj_DEPENDENCIES ) set(${proj}_DEPENDS ${proj}) if(NOT DEFINED ${proj}_DIR) set(patch_cmd ${CMAKE_COMMAND} -Dproj:STRING=${proj} -Dproj_target:STRING=QxtCore -P ${CMAKE_CURRENT_LIST_DIR}/GenerateDefaultCMakeBuildSystem.cmake) ExternalProject_Add(${proj} SOURCE_DIR ${CMAKE_BINARY_DIR}/${proj}-src BINARY_DIR ${proj}-build PREFIX ${proj}-cmake - URL ${MITK_THIRDPARTY_DOWNLOAD_PREFIX_URL}/libqxt-0.6.2-dadc327c2a6a-patched.tar.gz - URL_MD5 b0438b4c76793c35b606c8aba02748b8 + URL ${MITK_THIRDPARTY_DOWNLOAD_PREFIX_URL}/libqxt-3e7424f842d4.tar.gz + URL_MD5 a41a1e6d114cdabfc655f278176ca062 PATCH_COMMAND ${patch_cmd} INSTALL_COMMAND "" CMAKE_GENERATOR ${gen} CMAKE_ARGS ${ep_common_args} ${qt_project_args} DEPENDS ${proj_DEPENDENCIES} ) set(${proj}_DIR ${CMAKE_CURRENT_BINARY_DIR}/${proj}-build) else() mitkMacroEmptyExternalProject(${proj} "${proj_DEPENDENCIES}") endif() endif() diff --git a/CMakeExternals/QxtCMakeLists.txt b/CMakeExternals/QxtCMakeLists.txt index e12c272714..3618ae9147 100644 --- a/CMakeExternals/QxtCMakeLists.txt +++ b/CMakeExternals/QxtCMakeLists.txt @@ -1,480 +1,547 @@ - -cmake_minimum_required(VERSION 2.8.4) +if(DESIRED_QT_VERSION MATCHES 5) + cmake_minimum_required(VERSION 2.8.12) +else() + cmake_minimum_required(VERSION 2.8.4) +endif() project(Qxt) set(${PROJECT_NAME}_MAJOR_VERSION 0) set(${PROJECT_NAME}_MINOR_VERSION 6) -set(${PROJECT_NAME}_PATCH_VERSION 2) +set(${PROJECT_NAME}_PATCH_VERSION 99) set(${PROJECT_NAME}_VERSION ${${PROJECT_NAME}_MAJOR_VERSION}.${${PROJECT_NAME}_MINOR_VERSION}.${${PROJECT_NAME}_PATCH_VERSION}) -macro(QT4_GENERATE_MOCS) +macro(_qt_generate_mocs) foreach(file ${ARGN}) get_filename_component(source_path ${file} PATH) get_filename_component(source_name ${file} NAME_WE) get_filename_component(source_ext ${file} EXT) set(moc_file ${CMAKE_CURRENT_BINARY_DIR}/${source_path}/moc_${source_name}.cpp) - QT4_GENERATE_MOC(${file} ${moc_file}) + if(DESIRED_QT_VERSION MATCHES "4") + QT4_GENERATE_MOC(${file} ${moc_file}) + else() + qt5_generate_moc(${file} ${moc_file}) + endif() set_property(SOURCE ${source_path}/${source_name}.cpp APPEND PROPERTY OBJECT_DEPENDS ${moc_file}) endforeach() endmacro() +macro(_qt_wrap_cpp) + if(DESIRED_QT_VERSION MATCHES "4") + qt4_wrap_cpp(${ARGN}) + else() + qt5_wrap_cpp(${ARGN}) + endif() +endmacro() + +macro(_qt_add_resources) + if(DESIRED_QT_VERSION MATCHES "4") + qt4_add_resources(${ARGN}) + else() + qt5_add_resources(${ARGN}) + endif() +endmacro() + set(${PROJECT_NAME}_LIBRARIES QxtCore - QxtGui + QxtWidgets QxtNetwork QxtWeb ) set(QXT_CORE_MOC_HEADERS qxtabstractconnectionmanager.h qxtboundfunction.h qxtcsvmodel.h qxtdaemon.h qxtdeplex.h qxtdeplex_p.h qxtfifo.h qxtfilelock.h qxtjob.h qxtjob_p.h qxtlinesocket.h qxtlinesocket_p.h qxtlocale.h qxtlogger.h qxtlogger_p.h qxtmultisignalwaiter.h qxtnamespace.h qxtpipe.h qxtpipe_p.h qxtpointerlist.h qxtsignalgroup.h qxtsignalwaiter.h qxtslotjob.h qxtslotjob_p.h qxtstdio.h qxtstdio_p.h qxtstdstreambufdevice.h qxtrpcservice.h qxtrpcservice_p.h ) set(QXT_GUI_MOC_HEADERS qxtbasespinbox.h qxtcheckcombobox.h qxtcheckcombobox_p.h qxtconfigdialog.h qxtconfigdialog_p.h qxtconfigwidget.h qxtconfigwidget_p.h qxtconfirmationmessage.h qxtcountrycombobox.h qxtcountrycombobox_p.h qxtcountrymodel.h qxtcountrymodel_p.h qxtcrumbview.h qxtcrumbview_p.h qxtflowview.h qxtflowview_p.h qxtgroupbox.h qxtheaderview.h qxtitemdelegate.h qxtitemdelegate_p.h qxtlabel.h qxtletterboxwidget.h qxtletterboxwidget_p.h qxtlineedit.h qxtlistwidget.h qxtlistwidget_p.h qxtlanguagecombobox.h qxtlanguagecombobox_p.h qxtprogresslabel.h qxtproxystyle.h qxtpushbutton.h qxtspanslider.h qxtspanslider_p.h qxtstars.h qxtstringspinbox.h qxtstringvalidator.h qxttablewidget.h qxttablewidget_p.h qxttabwidget.h qxttabwidget_p.h qxttooltip_p.h qxttreewidget.h qxttreewidget_p.h qxtscheduleheaderwidget.h qxtscheduleitemdelegate.h qxtscheduleview.h qxtscheduleviewheadermodel_p.h qxtscheduleview_p.h qxtsortfilterproxymodel.h qxtfilterdialog.h qxtfilterdialog_p.h qxtlookuplineedit.h # !qws:!symbian - qxtapplication.h - qxtglobalshortcut.h + #qxtapplication.h + #qxtglobalshortcut.h ) set(QXT_NETWORK_MOC_HEADERS qxtjsonrpcclient.h qxtsmtp.h qxtrpcpeer.h qxtsmtp_p.h qxttcpconnectionmanager.h qxttcpconnectionmanager_p.h qxtxmlrpcclient.h ) set(QXT_WEB_MOC_HEADERS qxtabstracthttpconnector.h qxtabstractwebservice.h qxtabstractwebsessionmanager.h qxtabstractwebsessionmanager_p.h qxthttpsessionmanager.h qxtwebcontent.h qxtwebservicedirectory.h qxtwebservicedirectory_p.h qxtwebslotservice.h qxtwebcgiservice.h qxtwebcgiservice_p.h ) set(QXT_NETWORK_MANUAL_MOC_HEADERS qxtjsonrpccall.h qxtxmlrpccall.h ) set(QXT_CORE_SOURCES qxtabstractconnectionmanager.cpp qxtabstractfileloggerengine.cpp qxtabstractiologgerengine.cpp qxtbasicfileloggerengine.cpp qxtbasicstdloggerengine.cpp qxtcommandoptions.cpp qxtcsvmodel.cpp qxtdaemon.cpp qxtdatastreamsignalserializer.cpp qxtdeplex.cpp qxterror.cpp qxtfifo.cpp qxtfilelock.cpp qxtglobal.cpp qxthmac.cpp qxtlocale.cpp qxtjson.cpp qxtjob.cpp qxtlinesocket.cpp qxtlinkedtree.cpp qxtlogger.cpp qxtloggerengine.cpp qxtlogstream.cpp qxtmetaobject.cpp qxtmodelserializer.cpp qxtmultisignalwaiter.cpp qxtnull.cpp qxtpipe.cpp qxtpointerlist.cpp qxtsignalgroup.cpp qxtsignalwaiter.cpp qxtslotjob.cpp qxtslotmapper.cpp qxtstdio.cpp qxtstdstreambufdevice.cpp qxttimer.cpp qxtrpcservice.cpp qxtxmlfileloggerengine.cpp ) set(QXT_GUI_SOURCES qxtbasespinbox.cpp qxtcheckcombobox.cpp qxtconfigdialog.cpp qxtconfigwidget.cpp qxtconfirmationmessage.cpp qxtcountrymodel.cpp qxtcountrycombobox.cpp qxtcrumbview.cpp qxtflowview.cpp qxtflowview_p.cpp qxtgroupbox.cpp qxtheaderview.cpp qxtitemdelegate.cpp qxtlabel.cpp qxtletterboxwidget.cpp qxtlineedit.cpp qxtlistwidget.cpp qxtlistwidgetitem.cpp qxtlanguagecombobox.cpp qxtprogresslabel.cpp qxtproxystyle.cpp qxtpushbutton.cpp qxtspanslider.cpp qxtstars.cpp qxtstringspinbox.cpp qxtstringvalidator.cpp qxttablewidget.cpp qxttablewidgetitem.cpp qxttabwidget.cpp qxttooltip.cpp qxttreewidget.cpp qxttreewidgetitem.cpp qxtscheduleitemdelegate.cpp qxtscheduleview.cpp qxtscheduleview_p.cpp qxtscheduleviewheadermodel_p.cpp qxtstyleoptionscheduleviewitem.cpp qxtscheduleheaderwidget.cpp qxtsortfilterproxymodel.cpp qxtfilterdialog.cpp qxtlookuplineedit.cpp # !qws:!symbian - qxtapplication.cpp - qxtglobalshortcut.cpp + #qxtapplication.cpp + #qxtglobalshortcut.cpp ) set(QXT_NETWORK_SOURCES qxtjsonrpccall.cpp qxtjsonrpcclient.cpp qxtmailattachment.cpp qxtmailmessage.cpp qxtrpcpeer.cpp qxtsmtp.cpp qxttcpconnectionmanager.cpp qxtxmlrpccall.cpp qxtxmlrpcclient.cpp qxtxmlrpc_p.cpp ) set(QXT_WEB_SOURCES qxtabstracthttpconnector.cpp qxtabstractwebservice.cpp qxtabstractwebsessionmanager.cpp qxthtmltemplate.cpp qxthttpserverconnector.cpp qxthttpsessionmanager.cpp qxtscgiserverconnector.cpp qxtwebcontent.cpp qxtwebevent.cpp qxtwebservicedirectory.cpp qxtwebslotservice.cpp qxtwebcgiservice.cpp ) if(UNIX) - list(APPEND QXT_CORE_MOC_HEADERS qxtserialdevice.h qxtserialdevice_p.h) + list(APPEND QXT_CORE_MOC_HEADERS unix/qxtserialdevice.h unix/qxtserialdevice_p.h) list(APPEND QXT_CORE_SOURCES - qxtfilelock_unix.cpp qxtserialdevice.cpp qxtserialdevice_unix.cpp) + unix/qxtfilelock_unix.cpp unix/qxtserialdevice.cpp unix/qxtserialdevice_unix.cpp) if(APPLE) list(APPEND QXT_GUI_SOURCES - qxtapplication_mac.cpp qxtglobalshortcut_mac.cpp) + #mac/qxtapplication_mac.cpp + #mac/qxtglobalshortcut_mac.cpp + ) else() + if(DESIRED_QT_VERSION MATCHES "5") + find_package(Qt5X11Extras REQUIRED) + endif() list(APPEND QXT_GUI_SOURCES - qxtapplication_x11.cpp qxtglobalshortcut_x11.cpp - qxtscreen_x11.cpp qxtwindowsystem_x11.cpp) + #x11/qxtapplication_x11.cpp + #x11/qxtglobalshortcut_x11.cpp + x11/qxtscreen_x11.cpp + #x11/qxtwindowsystem_x11.cpp + ) endif() endif() if(NOT APPLE) - list(APPEND QXT_GUI_SOURCES qxtscreen.cpp qxtwindowsystem.cpp) + list(APPEND QXT_GUI_SOURCES + qxtscreen.cpp + #qxtwindowsystem.cpp + ) endif() if(WIN32) - list(APPEND QXT_CORE_SOURCES qxtfilelock_win.cpp) + list(APPEND QXT_CORE_SOURCES win/qxtfilelock_win.cpp) list(APPEND QXT_GUI_SOURCES - qxtapplication_win.cpp qxtglobalshortcut_win.cpp - qxtscreen_win.cpp qxtwindowsystem_win.cpp) + #win/qxtapplication_win.cpp + #win/qxtglobalshortcut_win.cpp + win/qxtscreen_win.cpp + #win/qxtwindowsystem_win.cpp + ) endif() set(_qxt_core_moc_headers ) foreach(_header ${QXT_CORE_MOC_HEADERS}) list(APPEND _qxt_core_moc_headers src/core/${_header}) endforeach() set(_qxt_gui_moc_headers ) foreach(_header ${QXT_GUI_MOC_HEADERS}) - list(APPEND _qxt_gui_moc_headers src/gui/${_header}) + list(APPEND _qxt_gui_moc_headers src/widgets/${_header}) endforeach() set(_qxt_network_moc_headers ) foreach(_header ${QXT_NETWORK_MOC_HEADERS}) list(APPEND _qxt_network_moc_headers src/network/${_header}) endforeach() set(_qxt_network_manual_moc_headers ) foreach(_header ${QXT_NETWORK_MANUAL_MOC_HEADERS}) list(APPEND _qxt_network_manual_moc_headers src/network/${_header}) endforeach() set(_qxt_web_moc_headers ) foreach(_header ${QXT_WEB_MOC_HEADERS}) list(APPEND _qxt_web_moc_headers src/web/${_header}) endforeach() set(_qxt_core_sources ) foreach(_source ${QXT_CORE_SOURCES}) list(APPEND _qxt_core_sources src/core/${_source}) endforeach() set(_qxt_gui_sources ) foreach(_source ${QXT_GUI_SOURCES}) - list(APPEND _qxt_gui_sources src/gui/${_source}) + list(APPEND _qxt_gui_sources src/widgets/${_source}) endforeach() set(_qxt_network_sources ) foreach(_source ${QXT_NETWORK_SOURCES}) list(APPEND _qxt_network_sources src/network/${_source}) endforeach() set(_qxt_web_sources ) foreach(_source ${QXT_WEB_SOURCES}) list(APPEND _qxt_web_sources src/web/${_source}) endforeach() -set(_qxt_gui_resources src/gui/resources.qrc) +set(_qxt_gui_resources src/widgets/resources.qrc) set(${PROJECT_NAME}_INCLUDE_DIRS ${CMAKE_CURRENT_SOURCE_DIR}/src/core ${CMAKE_CURRENT_SOURCE_DIR}/include/QxtCore - ${CMAKE_CURRENT_SOURCE_DIR}/src/gui - ${CMAKE_CURRENT_SOURCE_DIR}/include/QxtGui + ${CMAKE_CURRENT_SOURCE_DIR}/src/widgets + ${CMAKE_CURRENT_SOURCE_DIR}/include/QxtWidgets ${CMAKE_CURRENT_SOURCE_DIR}/src/network ${CMAKE_CURRENT_SOURCE_DIR}/include/QxtNetwork ${CMAKE_CURRENT_SOURCE_DIR}/src/web ${CMAKE_CURRENT_SOURCE_DIR}/include/QxtWeb ) include_directories(${${PROJECT_NAME}_INCLUDE_DIRS}) -find_package(Qt4 REQUIRED) - -set(QT_USE_QTNETWORK 1) -set(QT_USE_QTDESIGNER 1) -include(${QT_USE_FILE}) +if(DESIRED_QT_VERSION MATCHES "4") + find_package(Qt4 REQUIRED) + set(QT_USE_QTNETWORK 1) + set(QT_USE_QTDESIGNER 1) + include(${QT_USE_FILE}) +else() + if (WIN32) + cmake_policy(SET CMP0020 NEW) # Automatically link Qt executables to qtmain target on Windows + endif() + find_package(Qt5 COMPONENTS Network Designer Widgets REQUIRED) +endif() # Build the QxtCore library -qt4_wrap_cpp(_qxt_core_sources ${_qxt_core_moc_headers}) +_qt_wrap_cpp(_qxt_core_sources ${_qxt_core_moc_headers}) add_library(QxtCore SHARED ${_qxt_core_sources}) -target_link_libraries(QxtCore ${QT_LIBRARIES}) +if(DESIRED_QT_VERSION MATCHES "4") + target_link_libraries(QxtCore ${QT_LIBRARIES}) +else() + target_link_libraries(QxtCore Qt5::Core) +endif() set_target_properties(QxtCore PROPERTIES SOVERSION ${${PROJECT_NAME}_VERSION} COMPILE_DEFINITIONS "BUILD_QXT_CORE") -# Build the QxtGui library -qt4_wrap_cpp(_qxt_gui_sources ${_qxt_gui_moc_headers}) -qt4_add_resources(_qxt_gui_sources ${_qxt_gui_resources}) +# Build the QxtWidgets (formerly QxtGui) library +_qt_wrap_cpp(_qxt_gui_sources ${_qxt_gui_moc_headers}) +_qt_add_resources(_qxt_gui_sources ${_qxt_gui_resources}) -set(QxtGui_link_libraries ${QT_LIBRARIES}) +if(DESIRED_QT_VERSION MATCHES "4") + set(QxtGui_link_libraries ${QT_LIBRARIES}) +else() + set(QxtGui_link_libraries Qt5::Widgets) + if(UNIX AND NOT APPLE) + list(APPEND QxtGui_link_libraries Qt5::X11Extras) + endif() +endif() if(APPLE) find_library(CARBON_FW NAMES Carbon) list(APPEND QxtGui_link_libraries ${CARBON_FW}) endif() -add_library(QxtGui SHARED ${_qxt_gui_sources}) -target_link_libraries(QxtGui QxtCore ${QxtGui_link_libraries}) +add_library(QxtWidgets SHARED ${_qxt_gui_sources}) +target_link_libraries(QxtWidgets QxtCore ${QxtGui_link_libraries}) -set_target_properties(QxtGui PROPERTIES +set_target_properties(QxtWidgets PROPERTIES SOVERSION ${${PROJECT_NAME}_VERSION} COMPILE_DEFINITIONS "BUILD_QXT_GUI") # Build the QxtNetwork library -qt4_wrap_cpp(_qxt_network_sources ${_qxt_network_moc_headers}) -qt4_add_resources(_qxt_network_sources ${_qxt_network_resources}) +_qt_wrap_cpp(_qxt_network_sources ${_qxt_network_moc_headers}) +_qt_add_resources(_qxt_network_sources ${_qxt_network_resources}) # The generate moc_* sources are included directly in .cpp files -QT4_GENERATE_MOCS(${_qxt_network_manual_moc_headers}) +_qt_generate_mocs(${_qxt_network_manual_moc_headers}) include_directories(${CMAKE_CURRENT_BINARY_DIR}/src/network) add_library(QxtNetwork SHARED ${_qxt_network_sources}) -target_link_libraries(QxtNetwork QxtCore ${QT_LIBRARIES}) +if(DESIRED_QT_VERSION MATCHES "4") + target_link_libraries(QxtNetwork QxtCore ${QT_LIBRARIES}) +else() + target_link_libraries(QxtNetwork Qt5::Network) +endif() set_target_properties(QxtNetwork PROPERTIES SOVERSION ${${PROJECT_NAME}_VERSION} COMPILE_DEFINITIONS "BUILD_QXT_NETWORK") # Build the QxtWeb library -qt4_wrap_cpp(_qxt_web_sources ${_qxt_web_moc_headers}) +_qt_wrap_cpp(_qxt_web_sources ${_qxt_web_moc_headers}) add_library(QxtWeb SHARED ${_qxt_web_sources}) target_link_libraries(QxtWeb QxtCore QxtNetwork ${QT_LIBRARIES}) set_target_properties(QxtWeb PROPERTIES SOVERSION ${${PROJECT_NAME}_VERSION} COMPILE_DEFINITIONS "BUILD_QXT_WEB") # Build the designer plug-in set(_qxt_designer_sources src/designer/qxtbasespinboxplugin.cpp src/designer/qxtcheckcomboboxplugin.cpp src/designer/qxtcountrycomboboxplugin.cpp src/designer/qxtdesignerplugin.cpp src/designer/qxtdesignerplugins.cpp src/designer/qxtflowviewplugin.cpp src/designer/qxtgroupboxplugin.cpp src/designer/qxtlabelplugin.cpp src/designer/qxtlanguagecomboboxplugin.cpp src/designer/qxtletterboxwidgetplugin.cpp src/designer/qxtlineeditplugin.cpp src/designer/qxtlistwidgetplugin.cpp src/designer/qxtprogresslabelplugin.cpp src/designer/qxtpushbuttonplugin.cpp src/designer/qxtspansliderplugin.cpp src/designer/qxtstarsplugin.cpp src/designer/qxtstringspinboxplugin.cpp src/designer/qxttablewidgetplugin.cpp src/designer/qxttreewidgetplugin.cpp ) -qt4_wrap_cpp(_qxt_designer_sources +set(wrap_cpp_options ) +if(DESIRED_QT_VERSION MATCHES "5") + list(APPEND wrap_cpp_options TARGET QxtDesignerPlugins) +endif() + +_qt_wrap_cpp(_qxt_designer_sources src/designer/qxtbasespinboxplugin.h src/designer/qxtcheckcomboboxplugin.h src/designer/qxtcountrycomboboxplugin.h src/designer/qxtdesignerplugins.h src/designer/qxtflowviewplugin.h src/designer/qxtgroupboxplugin.h src/designer/qxtlabelplugin.h src/designer/qxtlanguagecomboboxplugin.h src/designer/qxtletterboxwidgetplugin.h src/designer/qxtlineeditplugin.h src/designer/qxtlistwidgetplugin.h src/designer/qxtprogresslabelplugin.h src/designer/qxtpushbuttonplugin.h src/designer/qxtspansliderplugin.h src/designer/qxtstarsplugin.h src/designer/qxtstringspinboxplugin.h src/designer/qxttablewidgetplugin.h src/designer/qxttreewidgetplugin.h - + ${wrap_cpp_options} ) -qt4_add_resources(_qxt_designer_sources src/designer/resources.qrc) +_qt_add_resources(_qxt_designer_sources src/designer/resources.qrc) add_library(QxtDesignerPlugins SHARED ${_qxt_designer_sources}) -target_link_libraries(QxtDesignerPlugins QxtGui QxtCore ${QT_LIBRARIES}) +if(DESIRED_QT_VERSION MATCHES "4") + target_link_libraries(QxtDesignerPlugins QxtWidgets QxtCore ${QT_LIBRARIES}) +else() + target_link_libraries(QxtDesignerPlugins QxtWidgets QxtCore Qt5::Designer) +endif() set_target_properties(QxtDesignerPlugins PROPERTIES SOVERSION ${${PROJECT_NAME}_VERSION} COMPILE_DEFINITIONS BUILD_QXT_DESIGNER) # Config files configure_file(${PROJECT_NAME}Config.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Config.cmake @ONLY) export(TARGETS ${Qxt_LIBRARIES} FILE ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}Exports.cmake) # Version information configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/${PROJECT_NAME}ConfigVersion.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake @ONLY ) diff --git a/CMakeExternals/VTK.cmake b/CMakeExternals/VTK.cmake index b506779371..a3ef5f7bd6 100644 --- a/CMakeExternals/VTK.cmake +++ b/CMakeExternals/VTK.cmake @@ -1,99 +1,94 @@ #----------------------------------------------------------------------------- # VTK #----------------------------------------------------------------------------- if(WIN32) option(VTK_USE_SYSTEM_FREETYPE OFF) else(WIN32) option(VTK_USE_SYSTEM_FREETYPE ON) endif(WIN32) # Sanity checks if(DEFINED VTK_DIR AND NOT EXISTS ${VTK_DIR}) message(FATAL_ERROR "VTK_DIR variable is defined but corresponds to non-existing directory") endif() set(proj VTK) set(proj_DEPENDENCIES ) set(VTK_DEPENDS ${proj}) if(NOT DEFINED VTK_DIR) set(additional_cmake_args ) if(MINGW) set(additional_cmake_args -DCMAKE_USE_WIN32_THREADS:BOOL=ON -DCMAKE_USE_PTHREADS:BOOL=OFF -DVTK_USE_VIDEO4WINDOWS:BOOL=OFF # no header files provided by MinGW ) endif() if(MITK_USE_Python) list(APPEND additional_cmake_args -DVTK_WRAP_PYTHON:BOOL=ON -DVTK_USE_TK:BOOL=OFF -DVTK_WINDOWS_PYTHON_DEBUGGABLE:BOOL=OFF -DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE} -DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIR} -DPYTHON_INCLUDE_DIR2:PATH=${PYTHON_INCLUDE_DIR2} -DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY} #-DPYTHON_LIBRARIES=${PYTHON_LIBRARY} #-DPYTHON_DEBUG_LIBRARIES=${PYTHON_DEBUG_LIBRARIES} ) else() list(APPEND additional_cmake_args -DVTK_WRAP_PYTHON:BOOL=OFF -DVTK_WINDOWS_PYTHON_DEBUGGABLE:BOOL=OFF ) endif() if(MITK_USE_QT) - if(DESIRED_QT_VERSION MATCHES 4) # current VTK package has a HARD Qt 4 dependency - list(APPEND additional_cmake_args - -DDESIRED_QT_VERSION:STRING=${DESIRED_QT_VERSION} - -DVTK_USE_GUISUPPORT:BOOL=ON - -DVTK_USE_QVTK_QTOPENGL:BOOL=OFF - -DVTK_USE_QT:BOOL=ON - -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE} - -DModule_vtkGUISupportQt:BOOL=ON - -DModule_vtkGUISupportQtWebkit:BOOL=ON - -DModule_vtkGUISupportQtSQL:BOOL=ON - -DModule_vtkRenderingQt:BOOL=ON - -DVTK_Group_Qt:BOOL=ON - ) - endif() + list(APPEND additional_cmake_args + -DVTK_QT_VERSION:STRING=${DESIRED_QT_VERSION} + -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE} + -DModule_vtkGUISupportQt:BOOL=ON + -DModule_vtkGUISupportQtWebkit:BOOL=ON + -DModule_vtkGUISupportQtSQL:BOOL=ON + -DModule_vtkRenderingQt:BOOL=ON + -DVTK_Group_Qt:BOOL=ON + ) endif() set(VTK_URL ${MITK_THIRDPARTY_DOWNLOAD_PREFIX_URL}/VTK-6.1.0.tar.gz) set(VTK_URL_MD5 25e4dfb3bad778722dcaec80cd5dab7d) ExternalProject_Add(${proj} SOURCE_DIR ${CMAKE_BINARY_DIR}/${proj}-src BINARY_DIR ${proj}-build PREFIX ${proj}-cmake URL ${VTK_URL} URL_MD5 ${VTK_URL_MD5} INSTALL_COMMAND "" CMAKE_GENERATOR ${gen} CMAKE_ARGS ${ep_common_args} -DVTK_WRAP_TCL:BOOL=OFF -DVTK_WRAP_PYTHON:BOOL=OFF -DVTK_WRAP_JAVA:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=ON -DVTK_USE_SYSTEM_FREETYPE:BOOL=${VTK_USE_SYSTEM_FREETYPE} -DVTK_LEGACY_REMOVE:BOOL=ON -DModule_vtkTestingRendering:BOOL=ON -DVTK_MAKE_INSTANTIATORS:BOOL=ON ${additional_cmake_args} DEPENDS ${proj_DEPENDENCIES} ) set(VTK_DIR ${CMAKE_CURRENT_BINARY_DIR}/${proj}-build) else() mitkMacroEmptyExternalProject(${proj} "${proj_DEPENDENCIES}") endif() diff --git a/Modules/OpenViewCore/CMakeLists.txt b/Modules/OpenViewCore/CMakeLists.txt index 6fafc479b3..8c78eff114 100644 --- a/Modules/OpenViewCore/CMakeLists.txt +++ b/Modules/OpenViewCore/CMakeLists.txt @@ -1,4 +1,4 @@ MITK_CREATE_MODULE( - PACKAGE_DEPENDS Qt5|Core+Quick VTK OpenGL + PACKAGE_DEPENDS Qt5|Core+Quick VTK|vtkGUISupportQt OpenGL ) diff --git a/SuperBuild.cmake b/SuperBuild.cmake index ec885b5dc4..f48f440462 100644 --- a/SuperBuild.cmake +++ b/SuperBuild.cmake @@ -1,446 +1,446 @@ #----------------------------------------------------------------------------- # Convenient macro allowing to download a file #----------------------------------------------------------------------------- macro(downloadFile url dest) file(DOWNLOAD ${url} ${dest} STATUS status) list(GET status 0 error_code) list(GET status 1 error_msg) if(error_code) message(FATAL_ERROR "error: Failed to download ${url} - ${error_msg}") endif() endmacro() #----------------------------------------------------------------------------- # MITK Prerequisites #----------------------------------------------------------------------------- if(UNIX AND NOT APPLE) include(mitkFunctionCheckPackageHeader) # Check for libxt-dev mitkFunctionCheckPackageHeader(StringDefs.h libxt-dev /usr/include/X11/) # Check for libtiff4-dev mitkFunctionCheckPackageHeader(tiff.h libtiff4-dev) # Check for libwrap0-dev mitkFunctionCheckPackageHeader(tcpd.h libwrap0-dev) endif() #----------------------------------------------------------------------------- # Qt options for external projects and MITK #----------------------------------------------------------------------------- if(MITK_USE_QT) set(qt_project_args -DDESIRED_QT_VERSION:STRING=${DESIRED_QT_VERSION}) else() set(qt_project_args ) endif() if(MITK_USE_Qt4) list(APPEND qt_project_args -DQT_QMAKE_EXECUTABLE:FILEPATH=${QT_QMAKE_EXECUTABLE} ) endif() #----------------------------------------------------------------------------- # ExternalProjects #----------------------------------------------------------------------------- set(external_projects tinyxml GLUT ANN CppUnit GLEW VTK ACVD GDCM CableSwig OpenCV Poco ITK Boost DCMTK CTK SOFA MITKData Qwt ) # Qxt supports Qt5. We need to also support it in QxtCMakeLists.txt -if(MITK_USE_Qt4) +#if(MITK_USE_Qt4) list(APPEND external_projects Qxt) -endif() +#endif() # These are "hard" dependencies and always set to ON set(MITK_USE_tinyxml 1) set(MITK_USE_ANN 1) set(MITK_USE_GLEW 1) set(MITK_USE_GDCM 1) set(MITK_USE_ITK 1) set(MITK_USE_VTK 1) # Semi-hard dependencies, enabled by user-controlled variables set(MITK_USE_CableSwig ${MITK_USE_Python}) if(MITK_USE_QT) - if(MITK_USE_Qt4) - set(MITK_USE_Qwt 1) + set(MITK_USE_Qwt 1) + #if(MITK_USE_Qt4) set(MITK_USE_Qxt 1) #TODO: Check how Qxt builds with Qt 5 - endif() + #endif() endif() if(MITK_USE_SOFA) set(MITK_USE_GLUT 1) endif() # A list of "nice" external projects, playing well together with CMake set(nice_external_projects ${external_projects}) list(REMOVE_ITEM nice_external_projects Boost) foreach(proj ${nice_external_projects}) if(MITK_USE_${proj}) set(EXTERNAL_${proj}_DIR "${${proj}_DIR}" CACHE PATH "Path to ${proj} build directory") mark_as_advanced(EXTERNAL_${proj}_DIR) if(EXTERNAL_${proj}_DIR) set(${proj}_DIR ${EXTERNAL_${proj}_DIR}) endif() endif() endforeach() if(MITK_USE_Boost) set(EXTERNAL_BOOST_ROOT "${BOOST_ROOT}" CACHE PATH "Path to Boost directory") mark_as_advanced(EXTERNAL_BOOST_ROOT) if(EXTERNAL_BOOST_ROOT) set(BOOST_ROOT ${EXTERNAL_BOOST_ROOT}) endif() endif() if(BUILD_TESTING) set(EXTERNAL_MITK_DATA_DIR "${MITK_DATA_DIR}" CACHE PATH "Path to the MITK data directory") mark_as_advanced(EXTERNAL_MITK_DATA_DIR) if(EXTERNAL_MITK_DATA_DIR) set(MITK_DATA_DIR ${EXTERNAL_MITK_DATA_DIR}) endif() endif() # Look for git early on, if needed if((BUILD_TESTING AND NOT EXTERNAL_MITK_DATA_DIR) OR (MITK_USE_CTK AND NOT EXTERNAL_CTK_DIR)) find_package(Git REQUIRED) endif() #----------------------------------------------------------------------------- # External project settings #----------------------------------------------------------------------------- include(ExternalProject) set(ep_base "${CMAKE_BINARY_DIR}/CMakeExternals") set_property(DIRECTORY PROPERTY EP_BASE ${ep_base}) set(ep_install_dir ${ep_base}/Install) #set(ep_build_dir ${ep_base}/Build) set(ep_source_dir ${ep_base}/Source) #set(ep_parallelism_level) set(ep_build_shared_libs ON) set(ep_build_testing OFF) if(NOT MITK_THIRDPARTY_DOWNLOAD_PREFIX_URL) set(MITK_THIRDPARTY_DOWNLOAD_PREFIX_URL http://mitk.org/download/thirdparty) endif() # Compute -G arg for configuring external projects with the same CMake generator: if(CMAKE_EXTRA_GENERATOR) set(gen "${CMAKE_EXTRA_GENERATOR} - ${CMAKE_GENERATOR}") else() set(gen "${CMAKE_GENERATOR}") endif() # Use this value where semi-colons are needed in ep_add args: set(sep "^^") ## if(MSVC_VERSION) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} /bigobj /MP") set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /bigobj /MP") endif() set(ep_common_args -DBUILD_TESTING:BOOL=${ep_build_testing} -DCMAKE_INSTALL_PREFIX:PATH=${ep_install_dir} -DCMAKE_PREFIX_PATH:PATH=${CMAKE_PREFIX_PATH} -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} -DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER} -DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER} -DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS} -DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} #debug flags -DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG} -DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG} #release flags -DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE} -DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE} #relwithdebinfo -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO} #link flags -DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS} -DCMAKE_SHARED_LINKER_FLAGS:STRING=${CMAKE_SHARED_LINKER_FLAGS} -DCMAKE_MODULE_LINKER_FLAGS:STRING=${CMAKE_MODULE_LINKER_FLAGS} ) # Pass the CMAKE_OSX variables to external projects if(APPLE) set(MAC_OSX_ARCHITECTURE_ARGS -DCMAKE_OSX_ARCHITECTURES:PATH=${CMAKE_OSX_ARCHITECTURES} -DCMAKE_OSX_DEPLOYMENT_TARGET:PATH=${CMAKE_OSX_DEPLOYMENT_TARGET} -DCMAKE_OSX_SYSROOT:PATH=${CMAKE_OSX_SYSROOT} ) set(ep_common_args ${MAC_OSX_ARCHITECTURE_ARGS} ${ep_common_args} ) endif() # Include external projects foreach(p ${external_projects}) include(CMakeExternals/${p}.cmake) endforeach() #----------------------------------------------------------------------------- # Set superbuild boolean args #----------------------------------------------------------------------------- set(mitk_cmake_boolean_args BUILD_SHARED_LIBS WITH_COVERAGE BUILD_TESTING MITK_USE_QT MITK_BUILD_ALL_PLUGINS MITK_BUILD_ALL_APPS MITK_BUILD_TUTORIAL # Deprecated. Use MITK_BUILD_EXAMPLES instead MITK_BUILD_EXAMPLES MITK_USE_ACVD MITK_USE_CppUnit MITK_USE_GLEW MITK_USE_Boost MITK_USE_SYSTEM_Boost MITK_USE_BLUEBERRY MITK_USE_CTK MITK_USE_DCMTK MITK_USE_OpenCV MITK_USE_Poco MITK_USE_SOFA MITK_USE_Python MITK_USE_OpenCL MITK_ENABLE_PIC_READER ) #----------------------------------------------------------------------------- # Create the final variable containing superbuild boolean args #----------------------------------------------------------------------------- set(mitk_superbuild_boolean_args) foreach(mitk_cmake_arg ${mitk_cmake_boolean_args}) list(APPEND mitk_superbuild_boolean_args -D${mitk_cmake_arg}:BOOL=${${mitk_cmake_arg}}) endforeach() if(MITK_BUILD_ALL_PLUGINS) list(APPEND mitk_superbuild_boolean_args -DBLUEBERRY_BUILD_ALL_PLUGINS:BOOL=ON) endif() #----------------------------------------------------------------------------- # MITK Utilities #----------------------------------------------------------------------------- set(proj MITK-Utilities) ExternalProject_Add(${proj} DOWNLOAD_COMMAND "" CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" DEPENDS # Mandatory dependencies ${tinyxml_DEPENDS} ${ANN_DEPENDS} ${VTK_DEPENDS} ${ITK_DEPENDS} # Optionnal dependencies ${ACVD_DEPENDS} ${CppUnit_DEPENDS} ${GLUT_DEPENDS} ${GLEW_DEPENDS} ${Boost_DEPENDS} ${CTK_DEPENDS} ${DCMTK_DEPENDS} ${OpenCV_DEPENDS} ${Poco_DEPENDS} ${SOFA_DEPENDS} ${MITK-Data_DEPENDS} ${Qwt_DEPENDS} ${Qxt_DEPENDS} ) #----------------------------------------------------------------------------- # Additional MITK CXX/C Flags #----------------------------------------------------------------------------- set(MITK_ADDITIONAL_C_FLAGS "" CACHE STRING "Additional C Flags for MITK") set(MITK_ADDITIONAL_C_FLAGS_RELEASE "" CACHE STRING "Additional Release C Flags for MITK") set(MITK_ADDITIONAL_C_FLAGS_DEBUG "" CACHE STRING "Additional Debug C Flags for MITK") mark_as_advanced(MITK_ADDITIONAL_C_FLAGS MITK_ADDITIONAL_C_FLAGS_DEBUG MITK_ADDITIONAL_C_FLAGS_RELEASE) set(MITK_ADDITIONAL_CXX_FLAGS "" CACHE STRING "Additional CXX Flags for MITK") set(MITK_ADDITIONAL_CXX_FLAGS_RELEASE "" CACHE STRING "Additional Release CXX Flags for MITK") set(MITK_ADDITIONAL_CXX_FLAGS_DEBUG "" CACHE STRING "Additional Debug CXX Flags for MITK") mark_as_advanced(MITK_ADDITIONAL_CXX_FLAGS MITK_ADDITIONAL_CXX_FLAGS_DEBUG MITK_ADDITIONAL_CXX_FLAGS_RELEASE) set(MITK_ADDITIONAL_EXE_LINKER_FLAGS "" CACHE STRING "Additional exe linker flags for MITK") set(MITK_ADDITIONAL_SHARED_LINKER_FLAGS "" CACHE STRING "Additional shared linker flags for MITK") set(MITK_ADDITIONAL_MODULE_LINKER_FLAGS "" CACHE STRING "Additional module linker flags for MITK") mark_as_advanced(MITK_ADDITIONAL_EXE_LINKER_FLAGS MITK_ADDITIONAL_SHARED_LINKER_FLAGS MITK_ADDITIONAL_MODULE_LINKER_FLAGS) #----------------------------------------------------------------------------- # MITK Configure #----------------------------------------------------------------------------- if(MITK_INITIAL_CACHE_FILE) set(mitk_initial_cache_arg -C "${MITK_INITIAL_CACHE_FILE}") endif() set(mitk_optional_cache_args ) foreach(type RUNTIME ARCHIVE LIBRARY) if(DEFINED CTK_PLUGIN_${type}_OUTPUT_DIRECTORY) list(APPEND mitk_optional_cache_args -DCTK_PLUGIN_${type}_OUTPUT_DIRECTORY:PATH=${CTK_PLUGIN_${type}_OUTPUT_DIRECTORY}) endif() endforeach() # Optional python variables if(MITK_USE_Python) list(APPEND mitk_optional_cache_args -DPYTHON_EXECUTABLE:FILEPATH=${PYTHON_EXECUTABLE} -DPYTHON_INCLUDE_DIR:PATH=${PYTHON_INCLUDE_DIR} -DPYTHON_LIBRARY:FILEPATH=${PYTHON_LIBRARY} -DPYTHON_INCLUDE_DIR2:PATH=${PYTHON_INCLUDE_DIR2} ) endif() set(proj MITK-Configure) ExternalProject_Add(${proj} LIST_SEPARATOR ^^ DOWNLOAD_COMMAND "" CMAKE_GENERATOR ${gen} CMAKE_CACHE_ARGS # --------------- Build options ---------------- -DBUILD_TESTING:BOOL=${ep_build_testing} -DCMAKE_INSTALL_PREFIX:PATH=${CMAKE_BINARY_DIR}/MITK-build/install -DBUILD_SHARED_LIBS:BOOL=ON -DCMAKE_BUILD_TYPE:STRING=${CMAKE_BUILD_TYPE} # --------------- Compile options ---------------- -DCMAKE_C_COMPILER:FILEPATH=${CMAKE_C_COMPILER} -DCMAKE_CXX_COMPILER:FILEPATH=${CMAKE_CXX_COMPILER} "-DCMAKE_C_FLAGS:STRING=${CMAKE_C_FLAGS} ${MITK_ADDITIONAL_C_FLAGS}" "-DCMAKE_CXX_FLAGS:STRING=${CMAKE_CXX_FLAGS} ${MITK_ADDITIONAL_CXX_FLAGS}" # debug flags "-DCMAKE_CXX_FLAGS_DEBUG:STRING=${CMAKE_CXX_FLAGS_DEBUG} ${MITK_ADDITIONAL_CXX_FLAGS_DEBUG}" "-DCMAKE_C_FLAGS_DEBUG:STRING=${CMAKE_C_FLAGS_DEBUG} ${MITK_ADDITIONAL_C_FLAGS_DEBUG}" # release flags "-DCMAKE_CXX_FLAGS_RELEASE:STRING=${CMAKE_CXX_FLAGS_RELEASE} ${MITK_ADDITIONAL_CXX_FLAGS_RELEASE}" "-DCMAKE_C_FLAGS_RELEASE:STRING=${CMAKE_C_FLAGS_RELEASE} ${MITK_ADDITIONAL_C_FLAGS_RELEASE}" # relwithdebinfo -DCMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -DCMAKE_C_FLAGS_RELWITHDEBINFO:STRING=${CMAKE_C_FLAGS_RELWITHDEBINFO} # link flags "-DCMAKE_EXE_LINKER_FLAGS:STRING=${CMAKE_EXE_LINKER_FLAGS} ${MITK_ADDITIONAL_EXE_LINKER_FLAGS}" "-DCMAKE_SHARED_LINKER_FLAGS:STRING=${CMAKE_SHARED_LINKER_FLAGS} ${MITK_ADDITIONAL_SHARED_LINKER_FLAGS}" "-DCMAKE_MODULE_LINKER_FLAGS:STRING=${CMAKE_MODULE_LINKER_FLAGS} ${MITK_ADDITIONAL_MODULE_LINKER_FLAGS}" # Output directories -DMITK_CMAKE_LIBRARY_OUTPUT_DIRECTORY:PATH=${MITK_CMAKE_LIBRARY_OUTPUT_DIRECTORY} -DMITK_CMAKE_RUNTIME_OUTPUT_DIRECTORY:PATH=${MITK_CMAKE_RUNTIME_OUTPUT_DIRECTORY} -DMITK_CMAKE_ARCHIVE_OUTPUT_DIRECTORY:PATH=${MITK_CMAKE_ARCHIVE_OUTPUT_DIRECTORY} # ------------- Boolean build options -------------- ${mitk_superbuild_boolean_args} ${mitk_optional_cache_args} -DMITK_USE_SUPERBUILD:BOOL=OFF -DMITK_BUILD_CONFIGURATION:STRING=${MITK_BUILD_CONFIGURATION} -DCTEST_USE_LAUNCHERS:BOOL=${CTEST_USE_LAUNCHERS} # ----------------- Miscellaneous --------------- -DMITK_CTEST_SCRIPT_MODE:STRING=${MITK_CTEST_SCRIPT_MODE} -DMITK_SUPERBUILD_BINARY_DIR:PATH=${MITK_BINARY_DIR} -DMITK_MODULES_TO_BUILD:INTERNAL=${MITK_MODULES_TO_BUILD} ${qt_project_args} -DMITK_ACCESSBYITK_INTEGRAL_PIXEL_TYPES:STRING=${MITK_ACCESSBYITK_INTEGRAL_PIXEL_TYPES} -DMITK_ACCESSBYITK_FLOATING_PIXEL_TYPES:STRING=${MITK_ACCESSBYITK_FLOATING_PIXEL_TYPES} -DMITK_ACCESSBYITK_COMPOSITE_PIXEL_TYPES:STRING=${MITK_ACCESSBYITK_COMPOSITE_PIXEL_TYPES} -DMITK_ACCESSBYITK_DIMENSIONS:STRING=${MITK_ACCESSBYITK_DIMENSIONS} # --------------- External project dirs --------------- -DMITK_KWSTYLE_EXECUTABLE:FILEPATH=${MITK_KWSTYLE_EXECUTABLE} -DCTK_DIR:PATH=${CTK_DIR} -DDCMTK_DIR:PATH=${DCMTK_DIR} -Dtinyxml_DIR:PATH=${tinyxml_DIR} -DGLUT_DIR:PATH=${GLUT_DIR} -DGLEW_DIR:PATH=${GLEW_DIR} -DANN_DIR:PATH=${ANN_DIR} -DCppUnit_DIR:PATH=${CppUnit_DIR} -DVTK_DIR:PATH=${VTK_DIR} # FindVTK expects VTK_DIR -DITK_DIR:PATH=${ITK_DIR} # FindITK expects ITK_DIR -DACVD_DIR:PATH=${ACVD_DIR} -DOpenCV_DIR:PATH=${OpenCV_DIR} -DPoco_DIR:PATH=${Poco_DIR} -DSOFA_DIR:PATH=${SOFA_DIR} -DGDCM_DIR:PATH=${GDCM_DIR} -DBOOST_ROOT:PATH=${BOOST_ROOT} -DMITK_USE_Boost_LIBRARIES:STRING=${MITK_USE_Boost_LIBRARIES} -DMITK_DATA_DIR:PATH=${MITK_DATA_DIR} -DQwt_DIR:PATH=${Qwt_DIR} -DQxt_DIR:PATH=${Qxt_DIR} CMAKE_ARGS ${mitk_initial_cache_arg} ${MAC_OSX_ARCHITECTURE_ARGS} SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR} BINARY_DIR ${CMAKE_BINARY_DIR}/MITK-build BUILD_COMMAND "" INSTALL_COMMAND "" DEPENDS MITK-Utilities ) #----------------------------------------------------------------------------- # MITK #----------------------------------------------------------------------------- if(CMAKE_GENERATOR MATCHES ".*Makefiles.*") set(mitk_build_cmd "$(MAKE)") else() set(mitk_build_cmd ${CMAKE_COMMAND} --build ${CMAKE_CURRENT_BINARY_DIR}/MITK-build --config ${CMAKE_CFG_INTDIR}) endif() if(NOT DEFINED SUPERBUILD_EXCLUDE_MITKBUILD_TARGET OR NOT SUPERBUILD_EXCLUDE_MITKBUILD_TARGET) set(MITKBUILD_TARGET_ALL_OPTION "ALL") else() set(MITKBUILD_TARGET_ALL_OPTION "") endif() add_custom_target(MITK-build ${MITKBUILD_TARGET_ALL_OPTION} COMMAND ${mitk_build_cmd} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/MITK-build DEPENDS MITK-Configure ) #----------------------------------------------------------------------------- # Custom target allowing to drive the build of the MITK project itself #----------------------------------------------------------------------------- add_custom_target(MITK COMMAND ${mitk_build_cmd} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/MITK-build )