version 2.0.0_alpha
Important! All QtWraps macros renamed! Qt 6 support Graphic export feature qad_types cross-Qt small changes
This commit is contained in:
@@ -1,19 +1,19 @@
|
||||
#[[
|
||||
|
||||
find_qt([<Module1> <Module2> ...] [Qt4] [Qt5])
|
||||
qad_find_qt([<Module1> <Module2> ...] [Qt4] [Qt5] [Qt6])
|
||||
|
||||
Find Qt4 or/and Qt5 packages
|
||||
If Qt4/5 found, set
|
||||
* Qt<4/5>_ROOT var to Qt root dir
|
||||
* Qt<4/5>_BIN var to Qt binary dir
|
||||
* Qt<4/5>_PLUGINS_DIR var to Qt plugins dir
|
||||
* Qt<4/5>_LANG_DIR var to Qt translations dir
|
||||
Find Qt4 or/and Qt5, Qt6 packages
|
||||
If Qt4/5/6 found, set
|
||||
* Qt<4/5/6>_ROOT var to Qt root dir
|
||||
* Qt<4/5/6>_BIN var to Qt binary dir
|
||||
* Qt<4/5/6>_PLUGINS_DIR var to Qt plugins dir
|
||||
* Qt<4/5/6>_LANG_DIR var to Qt translations dir
|
||||
Also set variable SOME_QT_FOUND
|
||||
|
||||
|
||||
|
||||
|
||||
qt_sources(<src_out_var> [NO_DEFAULT] [DIR <dir>] [<regexp> ...])
|
||||
qad_sources(<src_out_var> [NO_DEFAULT] [DIR <dir>] [<regexp> ...])
|
||||
|
||||
Collect all sources, optionally in directory <dir> and
|
||||
Additional filters <regexp>. By default filter files with regexps
|
||||
@@ -23,34 +23,34 @@ Default filters disabled with option NO_DEFAULT
|
||||
|
||||
|
||||
|
||||
qt_wrap(<file0> <file1> ... [HDRS <hrd_var>] [CPPS <cpp_var>] [QMS <qm_var>])
|
||||
qad_wrap(<file0> <file1> ... [HDRS <hrd_var>] [CPPS <cpp_var>] [QMS <qm_var>])
|
||||
|
||||
Prepare sources for compile
|
||||
Store headers to <hrd_var>, all wrapped Qt4 files to <cpp_var>_Qt4 and Qt5 files to <cpp_var>_Qt5
|
||||
version are automatic detected after find_qt() call
|
||||
Store headers to <hrd_var>, all wrapped Qt4 files to <cpp_var>_Qt4, Qt5 files to <cpp_var>_Qt5 and Qt6 files to <cpp_var>_Qt6
|
||||
version are automatic detected after qad_find_qt() call
|
||||
|
||||
|
||||
|
||||
|
||||
qt_add_executable(<name> [WIN32] [MACOSX_BUNDLE] [EXCLUDE_FROM_ALL] source1 [source2 ...])
|
||||
qad_add_executable(<name> [WIN32] [MACOSX_BUNDLE] [EXCLUDE_FROM_ALL] source1 [source2 ...])
|
||||
|
||||
Add executables for founded Qt versions, target names is <name><TARGET_SUFFIX_Qt?>
|
||||
All needed Qt includes automatic added to corresponding targets
|
||||
<source> cant be CPPS variable passed to qt_wrap() or some list or filename
|
||||
<source> cant be CPPS variable passed to qad_wrap() or some list or filename
|
||||
|
||||
|
||||
|
||||
|
||||
qt_add_library(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] source1 [source2 ...])
|
||||
qad_add_library(<name> [STATIC | SHARED | MODULE] [EXCLUDE_FROM_ALL] source1 [source2 ...])
|
||||
|
||||
Add library for founded Qt versions, target names is <name><TARGET_SUFFIX_Qt?>
|
||||
All needed Qt includes automatic added to corresponding targets
|
||||
<source> cant be CPPS variable passed to qt_wrap() or some list or filename
|
||||
<source> cant be CPPS variable passed to qad_wrap() or some list or filename
|
||||
|
||||
|
||||
|
||||
|
||||
qt_target_link_libraries(<name> ... <item> ...)
|
||||
qad_target_link_libraries(<name> ... <item> ...)
|
||||
|
||||
Link targets for founded Qt versions, target names is <name><TARGET_SUFFIX_Qt?>
|
||||
All needed Qt libraries automatic added to corresponding targets
|
||||
@@ -60,7 +60,7 @@ add <MULTILIB_SUFFIX_Qt?> or individual <MULTILIB_>libname<_SUFFIX_Qt?>
|
||||
|
||||
|
||||
|
||||
qt_target_compile_definitions(<name> ...)
|
||||
qad_target_compile_definitions(<name> ...)
|
||||
|
||||
Syntax similar to original "target_compile_definitions()"
|
||||
Specify compile definitions to use when compiling a given <name>
|
||||
@@ -68,7 +68,7 @@ Specify compile definitions to use when compiling a given <name>
|
||||
|
||||
|
||||
|
||||
qt_target_include_directories(<name> ...)
|
||||
qad_target_include_directories(<name> ...)
|
||||
|
||||
Syntax similar to original "target_include_directories()"
|
||||
Add include directories to a target
|
||||
@@ -76,7 +76,7 @@ Add include directories to a target
|
||||
|
||||
|
||||
|
||||
qt_install(...)
|
||||
qad_install(...)
|
||||
|
||||
Syntax similar to original "install()"
|
||||
Install targets for founded Qt versions
|
||||
@@ -90,12 +90,12 @@ to corresponding Qt plugins directory
|
||||
|
||||
Add LANG type for first argument - in this case you should
|
||||
specify variable name, not variable value!
|
||||
e.g. "qt_install(LANG my_QM DESTINATION QtLang)"
|
||||
e.g. "qad_install(LANG my_QM DESTINATION QtLang)"
|
||||
|
||||
|
||||
|
||||
|
||||
qt_install_lang(<name> DESTINATION <dir> [PATHS <path0> [<path1>] [...] ])
|
||||
qad_install_lang(<name> DESTINATION <dir> [PATHS <path0> [<path1>] [...] ])
|
||||
|
||||
Search Qt translations for all <name> dependencies
|
||||
in Qt<?>_LANG_DIR for <name>_LANG languages
|
||||
@@ -105,23 +105,23 @@ You should use "set_lang()" macro before this action
|
||||
|
||||
|
||||
|
||||
qt_get_target(<name> <var> [Qt4 | Qt5])
|
||||
qad_get_target(<name> <var> [Qt4 | Qt5 | Qt6])
|
||||
|
||||
Write real <name> Qt target name to <var>
|
||||
If Qt4 or Qt5 specified, search for this version,
|
||||
If Qt4 or Qt5, Qt6 specified, search for this version,
|
||||
otherwise returns greatest version
|
||||
|
||||
|
||||
|
||||
|
||||
qt_get_targets(<name> <var>)
|
||||
qad_get_targets(<name> <var>)
|
||||
|
||||
Write all real <name> Qt target names to <var>
|
||||
|
||||
|
||||
|
||||
|
||||
qt_generate_export_header(<name> ...)
|
||||
qad_generate_export_header(<name> ...)
|
||||
|
||||
Call generate_export_header on Qt multitarget
|
||||
|
||||
@@ -162,7 +162,7 @@ QuickControls2;QuickParticles;QuickShapes;QuickTemplates2;QuickTest;QuickWidgets
|
||||
ShaderTools;Sql;Svg;SvgWidgets;Test;Tools;UiPlugin;UiTools;Widgets;Xml")
|
||||
|
||||
|
||||
set(_QT_VERSIONS_ 4 5)
|
||||
set(_QT_VERSIONS_ 4 5 6)
|
||||
foreach(_v ${_QT_VERSIONS_})
|
||||
if (NOT DEFINED TARGET_SUFFIX_Qt${_v})
|
||||
set(TARGET_SUFFIX_Qt${_v} "${_v}")
|
||||
@@ -176,7 +176,7 @@ endif()
|
||||
#set(TARGET_SUFFIX_Qt4 "")
|
||||
|
||||
|
||||
macro(find_qt)
|
||||
macro(qad_find_qt)
|
||||
set(_QCOMP)
|
||||
foreach(_v ${_QT_VERSIONS_})
|
||||
set(_NEED${_v} 0)
|
||||
@@ -307,6 +307,75 @@ macro(find_qt)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
if (_NEED6)
|
||||
#set(_MSG 1)
|
||||
#if (Qt6_FOUND)
|
||||
# set(_MSG 0)
|
||||
#endif()
|
||||
set(_QCOMP6 Core LinguistTools UiPlugin Widgets ${_QCOMP})
|
||||
list(REMOVE_DUPLICATES _QCOMP6)
|
||||
find_package(Qt6 COMPONENTS ${_QCOMP6} QUIET)
|
||||
if (DEFINED ANDROID_PLATFORM)
|
||||
set(CMAKE_SHARED_MODULE_SUFFIX_CXX ".so")
|
||||
set(CMAKE_SHARED_LIBRARY_SUFFIX_CXX ".so")
|
||||
set(CMAKE_SHARED_MODULE_SUFFIX_C ".so")
|
||||
set(CMAKE_SHARED_LIBRARY_SUFFIX_C ".so")
|
||||
endif()
|
||||
if (Qt6Core_FOUND)
|
||||
set(LOCAL_FOUND6 1)
|
||||
set(_Qt6Modules)
|
||||
foreach(m ${_QCOMP6})
|
||||
if (m IN_LIST __qt_modules_6)
|
||||
if (${Qt6${m}_FOUND})
|
||||
set(__lib ${Qt6${m}_LIBRARIES})
|
||||
if (DEFINED ANDROID_PLATFORM)
|
||||
if (m IN_LIST __qt_bug_modules)
|
||||
get_target_property(__lib Qt6::${m} LOCATION)
|
||||
endif()
|
||||
endif()
|
||||
list(APPEND _Qt6Modules ${m})
|
||||
list(APPEND Qt6_INCLUDES ${Qt6${m}_INCLUDE_DIRS})
|
||||
list(APPEND Qt6_LIBRARIES ${__lib})
|
||||
else()
|
||||
if (NOT "x${_QUIET}" STREQUAL "xQUIET")
|
||||
message(FATAL_ERROR "Qt6${m} NOT FOUND")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
endforeach()
|
||||
#get_property(_up_dir TARGET Qt6::UiPlugin PROPERTY INTERFACE_INCLUDE_DIRECTORIES)
|
||||
#message("${_up_dir}")
|
||||
#if (NOT "x${_up_dir}" STREQUAL "x")
|
||||
# list(APPEND Qt6_INCLUDES ${_up_dir})
|
||||
#endif()
|
||||
get_target_property(_Qt6_qmake Qt6::qmake LOCATION)
|
||||
get_filename_component(_Qt6_BIN ${_Qt6_qmake} PATH)
|
||||
foreach(_p ${Qt6Gui_PLUGINS})
|
||||
get_target_property(_l ${_p} LOCATION)
|
||||
get_filename_component(_l ${_l} DIRECTORY)
|
||||
string(FIND "${_l}" "/" _ind REVERSE)
|
||||
string(SUBSTRING "${_l}" 0 ${_ind} _l)
|
||||
#message("Qt6: plugins dir: ${Qt6_PLUGINS_DIR}")
|
||||
break()
|
||||
endforeach()
|
||||
string(FIND "${_Qt6_BIN}" "/" _ind REVERSE)
|
||||
string(SUBSTRING "${_Qt6_BIN}" 0 ${_ind} _Qt6_ROOT)
|
||||
set(Qt6_ROOT "${_Qt6_ROOT}" CACHE STRING "")
|
||||
set(Qt6_BIN "${_Qt6_BIN}" CACHE STRING "")
|
||||
set(Qt6_LANG_DIR ${Qt6_BIN}/../translations CACHE STRING "")
|
||||
if ("x${Qt6_PLUGINS_DIR}" STREQUAL "x")
|
||||
set(Qt6_PLUGINS_DIR "${Qt6_ROOT}/plugins" CACHE STRING "")
|
||||
endif()
|
||||
if (APPLE)
|
||||
list(APPEND MOC_INC_Qt6 "-F${Qt6_ROOT}/lib")
|
||||
endif()
|
||||
if (NOT _QT6_MSG)
|
||||
message(STATUS "Found Qt6: ${_Qt6_qmake} (version \"${Qt6_VERSION}\")")
|
||||
set(_QT6_MSG 1 CACHE BOOL "msg_qt6" FORCE)
|
||||
message(STATUS "Found Qt6 modules: ${_Qt6Modules}")
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
foreach(_v ${_QT_VERSIONS_})
|
||||
if (LOCAL_FOUND${_v})
|
||||
set(SOME_QT_FOUND 1 CACHE BOOL "" FORCE)
|
||||
@@ -321,7 +390,7 @@ macro(find_qt)
|
||||
endmacro()
|
||||
|
||||
|
||||
macro(qt_sources OUT)
|
||||
macro(qad_sources OUT)
|
||||
set(${OUT})
|
||||
set(_DIR "")
|
||||
set(_IS_DIR 0)
|
||||
@@ -357,7 +426,7 @@ macro(qt_sources OUT)
|
||||
endmacro()
|
||||
|
||||
|
||||
macro(qt_wrap)
|
||||
macro(qad_wrap)
|
||||
set(HDR_VAR)
|
||||
set(CPP_VAR)
|
||||
set(QM_VAR)
|
||||
@@ -471,8 +540,16 @@ macro(qt_wrap)
|
||||
set(${QM${_v}_VAR} "")
|
||||
qt5_add_translation(${QM${_v}_VAR} ${TS_LIST})
|
||||
endif()
|
||||
elseif (${_v} EQUAL 6)
|
||||
qt6_wrap_cpp(MOCS${_v} ${H_LIST} OPTIONS -nw ${MOC_INC_Qt6})
|
||||
qt6_wrap_ui(CUIS${_v} ${UI_LIST})
|
||||
qt6_add_resources(CRES${_v} ${RES_LIST})
|
||||
if (WAS_QM_ARG)
|
||||
set(${QM${_v}_VAR} "")
|
||||
qt6_add_translation(${QM${_v}_VAR} ${TS_LIST})
|
||||
endif()
|
||||
else()
|
||||
# Qt6 ...
|
||||
# Qt7 ...
|
||||
endif()
|
||||
#message("${${QM${_v}_VAR}}")
|
||||
list(APPEND ${CPP${_v}_VAR} ${CPP_LIST})
|
||||
@@ -520,7 +597,8 @@ macro(__qt_set_defines _NAME _T)
|
||||
endmacro()
|
||||
|
||||
|
||||
macro(qt_add_executable _NAME)
|
||||
macro(qad_add_executable _NAME)
|
||||
#message("*qad_add_executable: \"${_NAME}\"")
|
||||
foreach(_v ${_QT_VERSIONS_})
|
||||
if (LOCAL_FOUND${_v})
|
||||
_qt_split_add_args(_PREF _ARGS ${ARGN})
|
||||
@@ -537,6 +615,7 @@ macro(qt_add_executable _NAME)
|
||||
set(_${_NAME}_is_qt 1)
|
||||
target_include_directories(${_TARGET} PRIVATE ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_BINARY_DIR}/qt${_v} ${Qt${_v}_INCLUDES})
|
||||
__qt_set_defines(${_NAME} ${_TARGET})
|
||||
#message("add exe: \"${_TARGET}\"")
|
||||
|
||||
if(APPLE)
|
||||
set(CMAKE_INSTALL_NAME_DIR "${_PREV_CIND}")
|
||||
@@ -559,7 +638,8 @@ macro(qt_add_executable _NAME)
|
||||
endmacro()
|
||||
|
||||
|
||||
macro(qt_add_library _NAME)
|
||||
macro(qad_add_library _NAME)
|
||||
#message("*qad_add_library: \"${_NAME}\"")
|
||||
foreach(_v ${_QT_VERSIONS_})
|
||||
if (LOCAL_FOUND${_v})
|
||||
_qt_split_add_args(_PREF _ARGS ${ARGN})
|
||||
@@ -573,6 +653,7 @@ macro(qt_add_library _NAME)
|
||||
endif()
|
||||
set(_TARGET ${_NAME}${TARGET_SUFFIX_Qt${_v}})
|
||||
add_library(${_TARGET} ${_PREF} ${_ARGS})
|
||||
#message("add lib: \"${_TARGET} ${_PREF}\"")
|
||||
set(_${_NAME}_is_qt 1)
|
||||
target_include_directories(${_TARGET} PRIVATE ${CMAKE_CURRENT_BINARY_DIR}/qt${_v})
|
||||
target_include_directories(${_TARGET} PUBLIC ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR} ${Qt${_v}_INCLUDES})
|
||||
@@ -610,7 +691,7 @@ macro(_qt_multitarget_suffix_ _OUT _IN _v)
|
||||
endmacro()
|
||||
|
||||
|
||||
macro(qt_target_link_libraries _NAME)
|
||||
macro(qad_target_link_libraries _NAME)
|
||||
foreach(_v ${_QT_VERSIONS_})
|
||||
if (LOCAL_FOUND${_v})
|
||||
set(_TARGET ${_NAME}${TARGET_SUFFIX_Qt${_v}})
|
||||
@@ -633,7 +714,7 @@ macro(qt_target_link_libraries _NAME)
|
||||
endmacro()
|
||||
|
||||
|
||||
macro(qt_target_compile_definitions _NAME)
|
||||
macro(qad_target_compile_definitions _NAME)
|
||||
foreach(_v ${_QT_VERSIONS_})
|
||||
if (LOCAL_FOUND${_v})
|
||||
set(_TARGET ${_NAME}${TARGET_SUFFIX_Qt${_v}})
|
||||
@@ -643,7 +724,7 @@ macro(qt_target_compile_definitions _NAME)
|
||||
endmacro()
|
||||
|
||||
|
||||
macro(qt_target_include_directories _NAME)
|
||||
macro(qad_target_include_directories _NAME)
|
||||
foreach(_v ${_QT_VERSIONS_})
|
||||
if (LOCAL_FOUND${_v})
|
||||
set(_TARGET ${_NAME}${TARGET_SUFFIX_Qt${_v}})
|
||||
@@ -653,7 +734,7 @@ macro(qt_target_include_directories _NAME)
|
||||
endmacro()
|
||||
|
||||
|
||||
macro(qt_install)
|
||||
macro(qad_install)
|
||||
set(_prev_inst)
|
||||
set(__add_args)
|
||||
#message("command: ${ARGN}")
|
||||
@@ -771,7 +852,7 @@ macro(_qt_gather_deps _T _out __p)
|
||||
endmacro()
|
||||
|
||||
|
||||
macro(qt_install_lang _NAME)
|
||||
macro(qad_install_lang _NAME)
|
||||
set(_prev_inst)
|
||||
#message("command: ${ARGN}")
|
||||
set(_PATHS)
|
||||
@@ -849,7 +930,7 @@ macro(qt_install_lang _NAME)
|
||||
endmacro()
|
||||
|
||||
|
||||
macro(qt_get_target _NAME _OUT)
|
||||
macro(qad_get_target _NAME _OUT)
|
||||
set(${_OUT})
|
||||
set(_ver)
|
||||
foreach(_i ${ARGN})
|
||||
@@ -871,7 +952,7 @@ macro(qt_get_target _NAME _OUT)
|
||||
endmacro()
|
||||
|
||||
|
||||
macro(qt_get_targets _NAME _OUT)
|
||||
macro(qad_get_targets _NAME _OUT)
|
||||
set(${_OUT})
|
||||
foreach(_v ${_QT_VERSIONS_})
|
||||
if (LOCAL_FOUND${_v})
|
||||
@@ -881,9 +962,9 @@ macro(qt_get_targets _NAME _OUT)
|
||||
endmacro()
|
||||
|
||||
|
||||
macro(qt_generate_export_header _NAME)
|
||||
qt_get_target(${_NAME} _some_target)
|
||||
qt_get_target(${_NAME} _targets)
|
||||
macro(qad_generate_export_header _NAME)
|
||||
qad_get_target(${_NAME} _some_target)
|
||||
qad_get_target(${_NAME} _targets)
|
||||
foreach(_t ${_targets})
|
||||
set_target_properties(${_t} PROPERTIES DEFINE_SYMBOL ${_NAME}_EXPORTS)
|
||||
endforeach()
|
||||
|
||||
Reference in New Issue
Block a user