Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Applications/Testing/Cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ if(CTK_APP_ctkDICOMQuery AND CTK_APP_ctkDICOMRetrieve)
if(CTK_QT_VERSION VERSION_LESS "5")
target_link_libraries(ctkDICOMApplicationTest1 ${QT_LIBRARIES})
else()
target_link_libraries(ctkDICOMApplicationTest1 Qt5::Core)
target_link_libraries(ctkDICOMApplicationTest1 Qt${CTK_QT_VERSION}::Core)
endif()

ADD_TEST( NAME ctkDICOMApplicationTest1
Expand Down
2 changes: 1 addition & 1 deletion Applications/ctkExampleHost/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ set(KIT_resources
ctkFunctionGetTargetLibraries(KIT_target_libraries)

if(CTK_QT_VERSION VERSION_GREATER "4")
list(APPEND KIT_target_libraries Qt5::Widgets)
list(APPEND KIT_target_libraries Qt${CTK_QT_VERSION}::Widgets)
endif()

ctkMacroBuildApp(
Expand Down
2 changes: 1 addition & 1 deletion Applications/ctkPluginBrowser/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ set(KIT_resources
ctkFunctionGetTargetLibraries(KIT_target_libraries)

if(CTK_QT_VERSION VERSION_GREATER "4")
list(APPEND KIT_target_libraries Qt5::Widgets)
list(APPEND KIT_target_libraries Qt${CTK_QT_VERSION}::Widgets)
endif()

ctkMacroBuildApp(
Expand Down
14 changes: 8 additions & 6 deletions CMake/CMakeFindDependencyMacro.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -65,14 +65,16 @@ macro(find_dependency dep)
set(cmake_fd_version ${ARGV1})
endif()
set(cmake_fd_exact_arg)
if(${ARGC} GREATER 2)
if (NOT "${ARGV2}" STREQUAL EXACT)
if(CTK_QT_VERSION VERSION_LESS "6")
if(${ARGC} GREATER 2)
if (NOT "${ARGV2}" STREQUAL EXACT)
message(FATAL_ERROR "Invalid arguments to find_dependency")
endif()
set(cmake_fd_exact_arg EXACT)
endif()
if(${ARGC} GREATER 3)
message(FATAL_ERROR "Invalid arguments to find_dependency")
endif()
set(cmake_fd_exact_arg EXACT)
endif()
if(${ARGC} GREATER 3)
message(FATAL_ERROR "Invalid arguments to find_dependency")
endif()
set(cmake_fd_quiet_arg)
if(${CMAKE_FIND_PACKAGE_NAME}_FIND_QUIETLY)
Expand Down
17 changes: 13 additions & 4 deletions CMake/ctkMacroBuildLib.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ ${${MY_EXPORT_CUSTOM_CONTENT_FROM_VARIABLE}}
# moc files can get very long and can't be resolved by the MSVC compiler.
if(CTK_QT_VERSION VERSION_GREATER "4")
foreach(moc_src ${MY_MOC_SRCS})
qt5_wrap_cpp(MY_MOC_CPP ${moc_src} OPTIONS -f${moc_src} OPTIONS -DHAVE_QT5)
qt_wrap_cpp(MY_MOC_CPP ${moc_src} OPTIONS -f${moc_src} OPTIONS "-DHAVE_QT${CTK_QT_VERSION}")
endforeach()
else()
foreach(moc_src ${MY_MOC_SRCS})
Expand All @@ -130,8 +130,15 @@ ${${MY_EXPORT_CUSTOM_CONTENT_FROM_VARIABLE}}
if(MY_GENERATE_MOC_SRCS)
QT4_GENERATE_MOCS(${MY_GENERATE_MOC_SRCS})
endif()
if(CTK_QT_VERSION VERSION_GREATER "4")
if(Qt5Widgets_FOUND)
if(CTK_QT_VERSION VERSION_GREATER "5")
if(Qt6Widgets_FOUND OR Qt6_FOUND)
qt_wrap_ui(MY_UI_CPP ${MY_UI_FORMS})
elseif(MY_UI_FORMS)
message(FATAL_ERROR "Argument UI_FORMS ignored because Qt6Widgets module was not specified")
endif()
elseif(CTK_QT_VERSION VERSION_GREATER "4")
MESSAGE(STATUS "CALLING QT WRAPUI 5")
if(Qt5Widgets_FOUND)
qt5_wrap_ui(MY_UI_CPP ${MY_UI_FORMS})
elseif(MY_UI_FORMS)
message(WARNING "Argument UI_FORMS ignored because Qt5Widgets module was not specified")
Expand All @@ -140,7 +147,9 @@ ${${MY_EXPORT_CUSTOM_CONTENT_FROM_VARIABLE}}
QT4_WRAP_UI(MY_UI_CPP ${MY_UI_FORMS})
endif()
if(DEFINED MY_RESOURCES AND NOT MY_RESOURCES STREQUAL "")
if(CTK_QT_VERSION VERSION_GREATER "4")
if(CTK_QT_VERSION VERSION_GREATER "5")
qt_add_resources(MY_QRC_SRCS ${MY_RESOURCES})
elseif(CTK_QT_VERSION VERSION_GREATER "4")
qt5_add_resources(MY_QRC_SRCS ${MY_RESOURCES})
else()
QT4_ADD_RESOURCES(MY_QRC_SRCS ${MY_RESOURCES})
Expand Down
16 changes: 8 additions & 8 deletions CMake/ctkMacroBuildPlugin.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -150,7 +150,7 @@ macro(ctkMacroBuildPlugin)
# Add Qt include dirs and defines
include(${QT_USE_FILE})
else()
find_package(Qt5 COMPONENTS LinguistTools REQUIRED)
find_package(Qt${CTK_QT_VERSION} COMPONENTS LinguistTools REQUIRED)
endif()

# Add the library directories from the external project
Expand Down Expand Up @@ -316,16 +316,16 @@ macro(ctkMacroBuildPlugin)
endforeach()
endif()
else()
find_package(Qt5LinguistTools REQUIRED)
find_package(Qt${CTK_QT_VERSION}LinguistTools REQUIRED)
endif()

if(MY_TEST_PLUGIN AND CTK_QT_VERSION VERSION_GREATER "4")
find_package(Qt5Test REQUIRED)
if(CMAKE_VERSION VERSION_LESS 2.8.12)
target_link_libraries(${lib_name} Qt5::Test)
else()
target_link_libraries(${lib_name} PRIVATE Qt5::Test)
endif()
find_package(Qt${CTK_QT_VERSION} Test REQUIRED)
if(CMAKE_VERSION VERSION_LESS 2.8.12)
target_link_libraries(${lib_name} Qt${CTK_QT_VERSION}::Test)
else()
target_link_libraries(${lib_name} PRIVATE Qt${CTK_QT_VERSION}::Test)
endif()
endif()

# Set the output directory for the plugin
Expand Down
23 changes: 15 additions & 8 deletions CMake/ctkMacroBuildQtPlugin.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -89,13 +89,20 @@ macro(ctkMacroBuildQtPlugin)
set(MY_QRC_SRCS "")
if(CTK_QT_VERSION VERSION_GREATER "4")
set(target)
if(Qt5Core_VERSION VERSION_GREATER "5.2.0")
if(Qt${CTK_QT_VERSION}Core_VERSION VERSION_GREATER "5.2.0")
set(target TARGET ${MY_LIBNAME})
endif()
qt5_wrap_cpp(MY_MOC_CPP ${MY_MOC_SRCS} OPTIONS -DHAVE_QT5 ${target})

if(CTK_QT_VERSION VERSION_GREATER "5")
qt_wrap_cpp(MY_MOC_CPP ${MY_MOC_SRCS} OPTIONS -DHAVE_QT${CTK_QT_VERSION} ${target})
else()
qt5_wrap_cpp(MY_MOC_CPP ${MY_MOC_SRCS} OPTIONS -DHAVE_QT${CTK_QT_VERSION} ${target})
endif()
if(DEFINED MY_RESOURCES)
qt5_add_resources(MY_QRC_SRCS ${MY_RESOURCES})
if(CTK_QT_VERSION VERSION_GREATER "5")
qt_add_resources(MY_QRC_SRCS ${MY_RESOURCES})
else()
qt5_add_resources(MY_QRC_SRCS ${MY_RESOURCES})
endif()
endif()
else()
QT4_WRAP_CPP(MY_MOC_CPP ${MY_MOC_SRCS})
Expand Down Expand Up @@ -191,9 +198,9 @@ endmacro()

macro(ctkMacroBuildQtDesignerPlugin)
if(CTK_QT_VERSION VERSION_GREATER "4")
find_package(Qt5 COMPONENTS Designer REQUIRED)
add_definitions(${Qt5Designer_DEFINITIONS})
include_directories(${Qt5Designer_INCLUDE_DIRS})
find_package(Qt${CTK_QT_VERSION} COMPONENTS Designer REQUIRED)
add_definitions(${Qt${CTK_QT_VERSION}Designer_DEFINITIONS})
include_directories(${Qt${CTK_QT_VERSION}Designer_INCLUDE_DIRS})
endif()
ctkMacroBuildQtPlugin(
PLUGIN_DIR designer
Expand All @@ -205,7 +212,7 @@ macro(ctkMacroBuildQtDesignerPlugin)
"SRCS;MOC_SRCS;UI_FORMS;INCLUDE_DIRECTORIES;TARGET_LIBRARIES;RESOURCES" # multi value args
${ARGN}
)
target_link_libraries(${MY_NAME} Qt5::Designer)
target_link_libraries(${MY_NAME} Qt${CTK_QT_VERSION}::Designer)
endif()
endmacro()

Expand Down
18 changes: 13 additions & 5 deletions CMake/ctkMacroGenerateMocs.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ include(MacroAddFileDependencies)

function(_ctk_generate_mocs)
if(CTK_QT_VERSION VERSION_GREATER "4")
if(Qt5_VERSION VERSION_LESS "5.15.0")
if(CTK_QT_VERSION VERSION_LESS "6")
QT5_GET_MOC_FLAGS(_moc_flags)
else()
# _moc_flags is not needed because it is internally handled
Expand All @@ -29,17 +29,19 @@ function(_ctk_generate_mocs)
endif()

set(moc_file ${CMAKE_CURRENT_BINARY_DIR}/moc_${source_name}${source_ext})

if(CTK_QT_VERSION VERSION_GREATER "4")

if(CTK_QT_VERSION VERSION_GREATER "5")
qt_generate_moc(${abs_file} ${moc_file})
elseif(CTK_QT_VERSION VERSION_GREATER "4")
if(Qt5_VERSION VERSION_LESS "5.6")
QT5_CREATE_MOC_COMMAND(${abs_file} ${moc_file} "${_moc_flags}" "" "")
elseif(Qt5_VERSION VERSION_LESS "5.15.0")
QT5_CREATE_MOC_COMMAND(${abs_file} ${moc_file} "${_moc_flags}" "" "" "")
else()
elseif(Qt5_VERSION VERSION_LESS "6")
# qt5_generate_moc internally calls qt5_get_moc_flags and ensure
# no warnings are reported.
qt5_generate_moc(${abs_file} ${moc_file})
endif()
endif()
else()
QT4_CREATE_MOC_COMMAND(${abs_file} ${moc_file} "${_moc_flags}" "" "")
endif()
Expand All @@ -56,3 +58,9 @@ endmacro()
macro(QT5_GENERATE_MOCS)
_ctk_generate_mocs(${ARGN})
endmacro()


# create a Qt5 alias
macro(QT6_GENERATE_MOCS)
_ctk_generate_mocs(${ARGN})
endmacro()
4 changes: 2 additions & 2 deletions CMake/ctkMacroSetupPlugins.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -115,10 +115,10 @@ macro(ctkMacroSetupPlugins )
# Qt shared libraries
if (CTK_QT_VERSION VERSION_GREATER "4")
if(WIN32)
get_target_property(_qt5_moc_executable Qt5::moc LOCATION)
get_target_property(_qt5_moc_executable Qt${CTK_QT_VERSION}::moc LOCATION)
get_filename_component(QT_INSTALLED_LIBRARY_DIR ${_qt5_moc_executable} PATH)
else()
get_target_property(_qt5_core_lib Qt5::Core LOCATION)
get_target_property(_qt5_core_lib Qt${CTK_QT_VERSION}::Core LOCATION)
get_filename_component(QT_INSTALLED_LIBRARY_DIR ${_qt5_core_lib} PATH)
endif()
else()
Expand Down
40 changes: 33 additions & 7 deletions CMake/ctkMacroSetupQt.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -23,22 +23,48 @@ macro(ctkMacroSetupQt)
set(CTK_QT_VERSION "4" CACHE STRING "Expected Qt version")
mark_as_advanced(CTK_QT_VERSION)

set_property(CACHE CTK_QT_VERSION PROPERTY STRINGS 4 5)
set_property(CACHE CTK_QT_VERSION PROPERTY STRINGS 4 5 6)

if(NOT (CTK_QT_VERSION VERSION_EQUAL "4" OR CTK_QT_VERSION VERSION_EQUAL "5"))
message(FATAL_ERROR "Expected value for CTK_QT_VERSION is either '4' or '5'")
if(NOT (CTK_QT_VERSION VERSION_EQUAL "4" OR CTK_QT_VERSION VERSION_EQUAL "5" OR CTK_QT_VERSION VERSION_EQUAL "6"))
message(FATAL_ERROR "Expected value for CTK_QT_VERSION is either '4' or '5' or '6'")
endif()

if(CTK_QT_VERSION VERSION_GREATER "5")
cmake_minimum_required(VERSION 2.8.12)
find_package(Qt6 COMPONENTS Core)
set(CTK_QT6_COMPONENTS Core Xml Concurrent Sql Test StateMachine Core5Compat)
# XmlPatterns
if(CTK_ENABLE_Widgets OR CTK_LIB_Widgets OR CTK_LIB_CommandLineModules/Frontend/QtGui OR CTK_BUILD_ALL OR CTK_BUILD_ALL_LIBRARIES)
list(APPEND CTK_QT6_COMPONENTS Widgets OpenGL UiTools)
endif()
if(CTK_LIB_CommandLineModules/Frontend/QtWebKit OR CTK_BUILD_ALL OR CTK_BUILD_ALL_LIBRARIES)
if(TARGET Qt6::WebKitWidgets)
list(APPEND CTK_QT6_COMPONENTS WebKitWidgets)
else()
list(APPEND CTK_QT6_COMPONENTS WebEngineWidgets)
endif()
endif()
if(CTK_LIB_XNAT/Core OR CTK_BUILD_ALL OR CTK_BUILD_ALL_LIBRARIES)
list(APPEND CTK_QT6_COMPONENTS Script)
endif()
find_package(Qt6 COMPONENTS ${CTK_QT6_COMPONENTS} REQUIRED)

mark_as_superbuild(Qt6_DIR) # Qt 6

# XXX Backward compatible way
if(DEFINED CMAKE_PREFIX_PATH)
mark_as_superbuild(CMAKE_PREFIX_PATH) # Qt 6
endif()

if(CTK_QT_VERSION VERSION_GREATER "4")
elseif(CTK_QT_VERSION VERSION_GREATER "4")
cmake_minimum_required(VERSION 2.8.12)
find_package(Qt5 COMPONENTS Core)
find_package(Qt${CTK_QT_VERSION} COMPONENTS Core)
set(CTK_QT5_COMPONENTS Core Xml XmlPatterns Concurrent Sql Test Multimedia)
if(CTK_ENABLE_Widgets OR CTK_LIB_Widgets OR CTK_LIB_CommandLineModules/Frontend/QtGui OR CTK_BUILD_ALL OR CTK_BUILD_ALL_LIBRARIES)
list(APPEND CTK_QT5_COMPONENTS Widgets OpenGL UiTools)
endif()
if(CTK_LIB_CommandLineModules/Frontend/QtWebKit OR CTK_BUILD_ALL OR CTK_BUILD_ALL_LIBRARIES)
if(TARGET Qt5::WebKitWidgets)
if(TARGET Qt${CTK_QT_VERSION}::WebKitWidgets)
list(APPEND CTK_QT5_COMPONENTS WebKitWidgets)
else()
list(APPEND CTK_QT5_COMPONENTS WebEngineWidgets)
Expand All @@ -47,7 +73,7 @@ macro(ctkMacroSetupQt)
if(CTK_LIB_XNAT/Core OR CTK_BUILD_ALL OR CTK_BUILD_ALL_LIBRARIES)
list(APPEND CTK_QT5_COMPONENTS Script)
endif()
find_package(Qt5 COMPONENTS ${CTK_QT5_COMPONENTS} REQUIRED)
find_package(Qt${CTK_QT_VERSION} COMPONENTS ${CTK_QT5_COMPONENTS} REQUIRED)

mark_as_superbuild(Qt5_DIR) # Qt 5

Expand Down
5 changes: 4 additions & 1 deletion Libs/CommandLineModules/Core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -79,8 +79,11 @@ set(KIT_resources
# The following macro will read the target libraries from the file 'target_libraries.cmake'
ctkFunctionGetTargetLibraries(KIT_target_libraries)

if(CTK_QT_VERSION VERSION_EQUAL "5")
list(APPEND KIT_target_libraries Qt${CTK_QT_VERSION}::XmlPatterns)
endif()
if(CTK_QT_VERSION VERSION_GREATER "4")
list(APPEND KIT_target_libraries Qt5::XmlPatterns Qt5::Widgets Qt5::Concurrent)
list(APPEND KIT_target_libraries Qt${CTK_QT_VERSION}::Widgets Qt${CTK_QT_VERSION}::Concurrent)
else()
set(QT_USE_QTXMLPATTERNS 1)
include(${QT_USE_FILE})
Expand Down
2 changes: 1 addition & 1 deletion Libs/CommandLineModules/Core/Testing/Cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ ctk_add_executable_utf8(${KIT}CppTests ${Tests} ${Tests_SRCS} ${Tests_MOC_CPP} $
target_link_libraries(${KIT}CppTests ${LIBRARY_NAME} ${CTK_BASE_LIBRARIES})

if(CTK_QT_VERSION VERSION_GREATER "4")
target_link_libraries(${KIT}CppTests Qt5::Test)
target_link_libraries(${KIT}CppTests Qt${CTK_QT_VERSION}::Test)
endif()

#
Expand Down
3 changes: 1 addition & 2 deletions Libs/CommandLineModules/Frontend/QtGui/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,8 @@ set(KIT_resources
# Target libraries - See CMake/ctkFunctionGetTargetLibraries.cmake
# The following macro will read the target libraries from the file 'target_libraries.cmake'
ctkFunctionGetTargetLibraries(KIT_target_libraries)

if(CTK_QT_VERSION VERSION_GREATER "4")
list(APPEND KIT_target_libraries Qt5::UiTools Qt5::Widgets)
list(APPEND KIT_target_libraries Qt${CTK_QT_VERSION}::UiTools Qt${CTK_QT_VERSION}::Widgets)
else()
set(QT_USE_QTUITOOLS 1)
include(${QT_USE_FILE})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ ctk_add_executable_utf8(${KIT}CppTests ${Tests} ${Tests_SRCS} ${Tests_MOC_CPP} $
target_link_libraries(${KIT}CppTests ${LIBRARY_NAME} ${CTK_BASE_LIBRARIES})

if(CTK_QT_VERSION VERSION_GREATER "4")
target_link_libraries(${KIT}CppTests Qt5::Test)
target_link_libraries(${KIT}CppTests Qt${CTK_QT_VERSION}::Test)
endif()

#
Expand Down
6 changes: 3 additions & 3 deletions Libs/CommandLineModules/Frontend/QtWebKit/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -37,10 +37,10 @@ set(KIT_resources
ctkFunctionGetTargetLibraries(KIT_target_libraries)

if(CTK_QT_VERSION VERSION_GREATER "4")
if(TARGET Qt5::WebKitWidgets)
list(APPEND KIT_target_libraries Qt5::WebKitWidgets)
if(TARGET Qt${CTK_QT_VERSION}::WebKitWidgets)
list(APPEND KIT_target_libraries Qt${CTK_QT_VERSION}::WebKitWidgets)
else()
list(APPEND KIT_target_libraries Qt5::WebEngineWidgets)
list(APPEND KIT_target_libraries Qt${CTK_QT_VERSION}::WebEngineWidgets)
endif()
else()
set(QT_USE_QTWEBKIT 1)
Expand Down
2 changes: 1 addition & 1 deletion Libs/CommandLineModules/Testing/Cpp/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ target_link_libraries(${KIT}CppTests ${_additional_link_libraries})
add_dependencies(${KIT}CppTests ctkCmdLineTestModules)

if(CTK_QT_VERSION VERSION_GREATER "4")
target_link_libraries(${KIT}CppTests Qt5::Gui Qt5::Test)
target_link_libraries(${KIT}CppTests Qt${CTK_QT_VERSION}::Gui Qt${CTK_QT_VERSION}::Test)
endif()

if(TARGET CTKCommandLineModulesCoreCppTests)
Expand Down
2 changes: 1 addition & 1 deletion Libs/CommandLineModules/Testing/Modules/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ function(ctkFunctionCreateCmdLineModule name)
if(CTK_QT_VERSION VERSION_LESS "5")
target_link_libraries(ctkCmdLineModule${name} CTKCore ${QT_LIBRARIES})
else()
target_link_libraries(ctkCmdLineModule${name} CTKCore Qt5::Widgets)
target_link_libraries(ctkCmdLineModule${name} CTKCore Qt${CTK_QT_VERSION}::Widgets)
endif()
add_dependencies(ctkCmdLineTestModules ctkCmdLineModule${name})
endfunction()
Expand Down
11 changes: 10 additions & 1 deletion Libs/Core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,9 @@ set(KIT_target_libraries)

ctkFunctionGetTargetLibraries(KIT_target_libraries)

if(CTK_QT_VERSION VERSION_GREATER "4")
if(CTK_QT_VERSION VERSION_GREATER "5")
list(APPEND KIT_target_libraries Qt6::Core Qt6::StateMachine Qt6::Core5Compat)
elseif(CTK_QT_VERSION VERSION_GREATER "4")
list(APPEND KIT_target_libraries Qt5::Core)
endif()

Expand Down Expand Up @@ -169,6 +171,13 @@ if(CTK_WRAP_PYTHONQT_LIGHT)
)
endif()

if( CTK_QT_VERSION VERSION_GREATER_EQUAL "6")
set_property(
SOURCE moc_ctkWorkflow.cpp
PROPERTY COMPILE_DEFINITIONS
CTK_COMPILING_FROM_MOC_CPP
)
endif()

# Testing
if(BUILD_TESTING)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
#include <ctkCommandLineParser.h>

#include <QCoreApplication>
#include <QIODevice>
#include <QTextStream>

#include <cstdlib>
Expand Down
Loading