cmake: Create Qt5 compat targets in config files
For now create targets a la "Qt5::Core" to stay compatible with the current Qt5 naming scheme. The name is controllable via a CMake option. Change-Id: If43c058221949b1900c2093f39ccc9d0f38028f1 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
This commit is contained in:
parent
61b5a32df3
commit
4bfd6c010b
@ -59,7 +59,7 @@ target_include_directories(GlobalConfigPrivate INTERFACE
|
|||||||
add_library(Qt::GlobalConfigPrivate ALIAS GlobalConfigPrivate)
|
add_library(Qt::GlobalConfigPrivate ALIAS GlobalConfigPrivate)
|
||||||
|
|
||||||
install(TARGETS Platform GlobalConfig GlobalConfigPrivate EXPORT "${INSTALL_CMAKE_NAMESPACE}Targets")
|
install(TARGETS Platform GlobalConfig GlobalConfigPrivate EXPORT "${INSTALL_CMAKE_NAMESPACE}Targets")
|
||||||
install(EXPORT "${INSTALL_CMAKE_NAMESPACE}Targets" NAMESPACE Qt:: DESTINATION "${config_install_dir}")
|
install(EXPORT "${INSTALL_CMAKE_NAMESPACE}Targets" NAMESPACE ${INSTALL_CMAKE_EXPORT_NAMESPACE}:: DESTINATION "${config_install_dir}")
|
||||||
|
|
||||||
## Install some QtBase specific CMake files:
|
## Install some QtBase specific CMake files:
|
||||||
install(FILES
|
install(FILES
|
||||||
|
@ -38,6 +38,8 @@ set(INSTALL_TESTSDIR "tests" CACHE PATH "Tests [PREFIX/tests]")
|
|||||||
|
|
||||||
set(INSTALL_CMAKE_NAMESPACE "Qt${PROJECT_VERSION_MAJOR}" CACHE STRING "CMake namespace [Qt${PROJECT_VERSION_MAJOR}]")
|
set(INSTALL_CMAKE_NAMESPACE "Qt${PROJECT_VERSION_MAJOR}" CACHE STRING "CMake namespace [Qt${PROJECT_VERSION_MAJOR}]")
|
||||||
|
|
||||||
|
set(QT_CMAKE_EXPORT_NAMESPACE "Qt${PROJECT_VERSION_MAJOR}" CACHE STRING "CMake namespace used when exporting targets [Qt${PROJECT_VERSION_MAJOR}]")
|
||||||
|
|
||||||
# Platform define path, etc.
|
# Platform define path, etc.
|
||||||
if(WIN32)
|
if(WIN32)
|
||||||
set(QT_DEFAULT_PLATFORM_DEFINITIONS UNICODE _UNICODE WIN32 _ENABLE_EXTENDED_ALIGNED_STORAGE)
|
set(QT_DEFAULT_PLATFORM_DEFINITIONS UNICODE _UNICODE WIN32 _ENABLE_EXTENDED_ALIGNED_STORAGE)
|
||||||
@ -153,7 +155,7 @@ endfunction()
|
|||||||
function(qt_ensure_sync_qt)
|
function(qt_ensure_sync_qt)
|
||||||
qt_ensure_perl()
|
qt_ensure_perl()
|
||||||
if(NOT DEFINED QT_SYNCQT)
|
if(NOT DEFINED QT_SYNCQT)
|
||||||
get_target_property(mocPath "Qt::moc" LOCATION)
|
get_target_property(mocPath "${QT_CMAKE_EXPORT_NAMESPACE}::moc" LOCATION)
|
||||||
get_filename_component(binDirectory "${mocPath}" DIRECTORY)
|
get_filename_component(binDirectory "${mocPath}" DIRECTORY)
|
||||||
# We could put this into the cache, but on the other hand there's no real need to
|
# We could put this into the cache, but on the other hand there's no real need to
|
||||||
# pollute the app's cache with this. For the first qtbase build, the variable is
|
# pollute the app's cache with this. For the first qtbase build, the variable is
|
||||||
@ -286,11 +288,11 @@ function(extend_target target)
|
|||||||
|
|
||||||
set_target_properties("${target}" PROPERTIES
|
set_target_properties("${target}" PROPERTIES
|
||||||
AUTOMOC ON
|
AUTOMOC ON
|
||||||
AUTOMOC_EXECUTABLE "$<TARGET_FILE:Qt::moc>"
|
AUTOMOC_EXECUTABLE "$<TARGET_FILE:${QT_CMAKE_EXPORT_NAMESPACE}::moc>"
|
||||||
AUTORCC ON
|
AUTORCC ON
|
||||||
AUTORCC_EXECUTABLE "$<TARGET_FILE:Qt::rcc>"
|
AUTORCC_EXECUTABLE "$<TARGET_FILE:${QT_CMAKE_EXPORT_NAMESPACE}::rcc>"
|
||||||
AUTOUIC ON
|
AUTOUIC ON
|
||||||
AUTOUIC_EXECUTABLE "$<TARGET_FILE:Qt::uic>"
|
AUTOUIC_EXECUTABLE "$<TARGET_FILE:${QT_CMAKE_EXPORT_NAMESPACE}::uic>"
|
||||||
)
|
)
|
||||||
|
|
||||||
target_sources("${target}" PRIVATE ${arg_SOURCES} ${dbus_sources})
|
target_sources("${target}" PRIVATE ${arg_SOURCES} ${dbus_sources})
|
||||||
@ -525,7 +527,7 @@ function(add_qt_module target)
|
|||||||
)
|
)
|
||||||
|
|
||||||
set(config_install_dir "${INSTALL_LIBDIR}/cmake/${INSTALL_CMAKE_NAMESPACE}${target}")
|
set(config_install_dir "${INSTALL_LIBDIR}/cmake/${INSTALL_CMAKE_NAMESPACE}${target}")
|
||||||
install(EXPORT "${module_versioned}Targets" NAMESPACE Qt:: DESTINATION ${config_install_dir})
|
install(EXPORT "${module_versioned}Targets" NAMESPACE ${QT_CMAKE_EXPORT_NAMESPACE}:: DESTINATION ${config_install_dir})
|
||||||
|
|
||||||
set(target_deps)
|
set(target_deps)
|
||||||
foreach(lib ${arg_PUBLIC_LIBRARIES})
|
foreach(lib ${arg_PUBLIC_LIBRARIES})
|
||||||
@ -644,7 +646,7 @@ function(add_qt_plugin target)
|
|||||||
LIBRARY DESTINATION ${INSTALL_PLUGINSDIR}/${arg_TYPE}
|
LIBRARY DESTINATION ${INSTALL_PLUGINSDIR}/${arg_TYPE}
|
||||||
ARCHIVE DESTINATION ${INSTALL_LIBDIR}/${arg_TYPE}
|
ARCHIVE DESTINATION ${INSTALL_LIBDIR}/${arg_TYPE}
|
||||||
)
|
)
|
||||||
install(EXPORT "${target}Targets" NAMESPACE Qt:: DESTINATION ${INSTALL_LIBDIR}/cmake)
|
install(EXPORT "${target}Targets" NAMESPACE ${QT_CMAKE_EXPORT_NAMESPACE}:: DESTINATION ${INSTALL_LIBDIR}/cmake)
|
||||||
|
|
||||||
### fixme: cmake is missing a built-in variable for this. We want to apply it only to modules and plugins
|
### fixme: cmake is missing a built-in variable for this. We want to apply it only to modules and plugins
|
||||||
# that belong to Qt.
|
# that belong to Qt.
|
||||||
@ -704,7 +706,7 @@ function(add_qt_test name)
|
|||||||
"${CMAKE_CURRENT_BINARY_DIR}"
|
"${CMAKE_CURRENT_BINARY_DIR}"
|
||||||
"${arg_INCLUDE_DIRECTORIES}"
|
"${arg_INCLUDE_DIRECTORIES}"
|
||||||
DEFINES "${arg_DEFINES}"
|
DEFINES "${arg_DEFINES}"
|
||||||
LIBRARIES Qt::Core Qt::Test ${arg_LIBRARIES}
|
LIBRARIES ${QT_CMAKE_EXPORT_NAMESPACE}::Core ${QT_CMAKE_EXPORT_NAMESPACE}::Test ${arg_LIBRARIES}
|
||||||
COMPILE_OPTIONS ${arg_COMPILE_OPTIONS}
|
COMPILE_OPTIONS ${arg_COMPILE_OPTIONS}
|
||||||
LINK_OPTIONS ${arg_LINK_OPTIONS}
|
LINK_OPTIONS ${arg_LINK_OPTIONS}
|
||||||
MOC_OPTIONS ${arg_MOC_OPTIONS}
|
MOC_OPTIONS ${arg_MOC_OPTIONS}
|
||||||
@ -732,9 +734,9 @@ function(add_qt_tool name)
|
|||||||
qt_parse_all_arguments(arg "add_qt_tool" "BOOTSTRAP" "" "${__default_private_args}" ${ARGN})
|
qt_parse_all_arguments(arg "add_qt_tool" "BOOTSTRAP" "" "${__default_private_args}" ${ARGN})
|
||||||
|
|
||||||
if (arg_BOOTSTRAP)
|
if (arg_BOOTSTRAP)
|
||||||
set(corelib Qt::Bootstrap)
|
set(corelib ${QT_CMAKE_EXPORT_NAMESPACE}::Bootstrap)
|
||||||
else()
|
else()
|
||||||
set(corelib Qt::Core)
|
set(corelib ${QT_CMAKE_EXPORT_NAMESPACE}::Core)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_qt_executable("${name}" OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${INSTALL_BINDIR}"
|
add_qt_executable("${name}" OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/${INSTALL_BINDIR}"
|
||||||
@ -789,7 +791,7 @@ function(add_qt_resource target resourceName)
|
|||||||
|
|
||||||
set(generatedSourceCode "${CMAKE_CURRENT_BINARY_DIR}/qrc_${resourceName}.cpp")
|
set(generatedSourceCode "${CMAKE_CURRENT_BINARY_DIR}/qrc_${resourceName}.cpp")
|
||||||
add_custom_command(OUTPUT "${generatedSourceCode}"
|
add_custom_command(OUTPUT "${generatedSourceCode}"
|
||||||
COMMAND "Qt::rcc"
|
COMMAND "${QT_CMAKE_EXPORT_NAMESPACE}::rcc"
|
||||||
ARGS --name "${resourceName}"
|
ARGS --name "${resourceName}"
|
||||||
--output "${generatedSourceCode}" "${generatedResourceFile}"
|
--output "${generatedSourceCode}" "${generatedResourceFile}"
|
||||||
DEPENDS ${files}
|
DEPENDS ${files}
|
||||||
@ -838,8 +840,8 @@ function(qt_manual_moc result)
|
|||||||
file(GENERATE OUTPUT "${moc_parameters_file}" CONTENT "${moc_parameters}\n")
|
file(GENERATE OUTPUT "${moc_parameters_file}" CONTENT "${moc_parameters}\n")
|
||||||
|
|
||||||
add_custom_command(OUTPUT "${outfile}"
|
add_custom_command(OUTPUT "${outfile}"
|
||||||
COMMAND Qt::moc "@${moc_parameters_file}"
|
COMMAND ${QT_CMAKE_EXPORT_NAMESPACE}::moc "@${moc_parameters_file}"
|
||||||
DEPENDS "${infile}" ${moc_depends} Qt::moc
|
DEPENDS "${infile}" ${moc_depends} ${QT_CMAKE_EXPORT_NAMESPACE}::moc
|
||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" VERBATIM)
|
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" VERBATIM)
|
||||||
endforeach()
|
endforeach()
|
||||||
set("${result}" ${moc_files} PARENT_SCOPE)
|
set("${result}" ${moc_files} PARENT_SCOPE)
|
||||||
@ -873,7 +875,7 @@ function(qt_create_qdbusxml2cpp_command target infile)
|
|||||||
set(source_file "${CMAKE_CURRENT_BINARY_DIR}/${file_name}.cpp")
|
set(source_file "${CMAKE_CURRENT_BINARY_DIR}/${file_name}.cpp")
|
||||||
|
|
||||||
add_custom_command(OUTPUT "${header_file}" "${source_file}"
|
add_custom_command(OUTPUT "${header_file}" "${source_file}"
|
||||||
COMMAND Qt::qdbusxml2cpp ${arg_FLAGS} "${option}" "${header_file}:${source_file}" "${infile}"
|
COMMAND ${QT_CMAKE_EXPORT_NAMESPACE}::qdbusxml2cpp ${arg_FLAGS} "${option}" "${header_file}:${source_file}" "${infile}"
|
||||||
DEPENDS "${infile}"
|
DEPENDS "${infile}"
|
||||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
VERBATIM)
|
VERBATIM)
|
||||||
|
@ -36,6 +36,7 @@ foreach(module ${@INSTALL_CMAKE_NAMESPACE@_FIND_COMPONENTS})
|
|||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
set(QT_BUILD_SHARED_LIBS @BUILD_SHARED_LIBS@)
|
set(QT_BUILD_SHARED_LIBS @BUILD_SHARED_LIBS@)
|
||||||
|
set(QT_CMAKE_EXPORT_NAMESPACE @QT_CMAKE_EXPORT_NAMESPACE@)
|
||||||
|
|
||||||
if (_Qt_NOTFOUND_MESSAGE)
|
if (_Qt_NOTFOUND_MESSAGE)
|
||||||
set(@INSTALL_CMAKE_NAMESPACE@_NOT_FOUND_MESSAGE "${_Qt_NOTFOUND_MESSAGE}")
|
set(@INSTALL_CMAKE_NAMESPACE@_NOT_FOUND_MESSAGE "${_Qt_NOTFOUND_MESSAGE}")
|
||||||
|
@ -409,8 +409,8 @@ function(qt_config_compile_test_x86simd extension label)
|
|||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
function(qt_make_features_available target)
|
function(qt_make_features_available target)
|
||||||
if(NOT "${target}" MATCHES "^Qt::[a-zA-z][a-zA-Z0-9_]*$")
|
if(NOT "${target}" MATCHES "^${QT_CMAKE_EXPORT_NAMESPACE}::[a-zA-z][a-zA-Z0-9_]*$")
|
||||||
message(FATAL_ERROR "${target} does not match Qt::[a-zA-z][a-zA-Z0-9_]*. INVALID NAME.")
|
message(FATAL_ERROR "${target} does not match ${QT_CMAKE_EXPORT_NAMESPACE}::[a-zA-z][a-zA-Z0-9_]*. INVALID NAME.")
|
||||||
endif()
|
endif()
|
||||||
if(NOT TARGET ${target})
|
if(NOT TARGET ${target})
|
||||||
message(FATAL_ERROR "${target} not found.")
|
message(FATAL_ERROR "${target} not found.")
|
||||||
|
@ -31,4 +31,4 @@ endif()
|
|||||||
|
|
||||||
include(${_import_prefix}/../@INSTALL_CMAKE_NAMESPACE@/QtFeature.cmake)
|
include(${_import_prefix}/../@INSTALL_CMAKE_NAMESPACE@/QtFeature.cmake)
|
||||||
|
|
||||||
qt_make_features_available(Qt::@target@)
|
qt_make_features_available(@QT_CMAKE_EXPORT_NAMESPACE@::@target@)
|
||||||
|
@ -46,7 +46,7 @@ function(find_or_build_bootstrap_names)
|
|||||||
find_or_build_bootstrap_tool(tracegen)
|
find_or_build_bootstrap_tool(tracegen)
|
||||||
|
|
||||||
if (_build_tools)
|
if (_build_tools)
|
||||||
install(EXPORT "Qt${PROJECT_VERSION_MAJOR}ToolsTargets" NAMESPACE "Qt::" DESTINATION "${INSTALL_LIBDIR}/cmake/Qt${PROJECT_VERSION_MAJOR}")
|
install(EXPORT "Qt${PROJECT_VERSION_MAJOR}ToolsTargets" NAMESPACE "${QT_CMAKE_EXPORT_NAMESPACE}::" DESTINATION "${INSTALL_LIBDIR}/cmake/Qt${PROJECT_VERSION_MAJOR}")
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ function(QT5_CREATE_MOC_COMMAND infile outfile moc_flags moc_options moc_target
|
|||||||
|
|
||||||
set(_moc_extra_parameters_file @${_moc_parameters_file})
|
set(_moc_extra_parameters_file @${_moc_parameters_file})
|
||||||
add_custom_command(OUTPUT ${outfile}
|
add_custom_command(OUTPUT ${outfile}
|
||||||
COMMAND ${Qt5Core_MOC_EXECUTABLE} ${_moc_extra_parameters_file}
|
COMMAND ${QT_CMAKE_EXPORT_NAMESPACE}::moc ${_moc_extra_parameters_file}
|
||||||
DEPENDS ${infile} ${moc_depends}
|
DEPENDS ${infile} ${moc_depends}
|
||||||
${_moc_working_dir}
|
${_moc_working_dir}
|
||||||
VERBATIM)
|
VERBATIM)
|
||||||
@ -249,7 +249,7 @@ function(QT5_ADD_BINARY_RESOURCES target )
|
|||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
add_custom_command(OUTPUT ${rcc_destination}
|
add_custom_command(OUTPUT ${rcc_destination}
|
||||||
COMMAND ${Qt5Core_RCC_EXECUTABLE}
|
COMMAND ${QT_CMAKE_EXPORT_NAMESPACE}::rcc
|
||||||
ARGS ${rcc_options} --binary --name ${target} --output ${rcc_destination} ${infiles}
|
ARGS ${rcc_options} --binary --name ${target} --output ${rcc_destination} ${infiles}
|
||||||
DEPENDS ${rc_depends} ${out_depends} ${infiles} VERBATIM)
|
DEPENDS ${rc_depends} ${out_depends} ${infiles} VERBATIM)
|
||||||
add_custom_target(${target} ALL DEPENDS ${rcc_destination})
|
add_custom_target(${target} ALL DEPENDS ${rcc_destination})
|
||||||
@ -282,7 +282,7 @@ function(QT5_ADD_RESOURCES outfiles )
|
|||||||
set_source_files_properties(${infile} PROPERTIES SKIP_AUTORCC ON)
|
set_source_files_properties(${infile} PROPERTIES SKIP_AUTORCC ON)
|
||||||
|
|
||||||
add_custom_command(OUTPUT ${outfile}
|
add_custom_command(OUTPUT ${outfile}
|
||||||
COMMAND ${Qt5Core_RCC_EXECUTABLE}
|
COMMAND ${QT_CMAKE_EXPORT_NAMESPACE}::rcc
|
||||||
ARGS ${rcc_options} --name ${outfilename} --output ${outfile} ${infile}
|
ARGS ${rcc_options} --name ${outfilename} --output ${outfile} ${infile}
|
||||||
MAIN_DEPENDENCY ${infile}
|
MAIN_DEPENDENCY ${infile}
|
||||||
DEPENDS ${_rc_depends} "${out_depends}" VERBATIM)
|
DEPENDS ${_rc_depends} "${out_depends}" VERBATIM)
|
||||||
@ -319,7 +319,7 @@ function(QT5_ADD_BIG_RESOURCES outfiles )
|
|||||||
_QT5_PARSE_QRC_FILE(${infile} _out_depends _rc_depends)
|
_QT5_PARSE_QRC_FILE(${infile} _out_depends _rc_depends)
|
||||||
set_source_files_properties(${infile} PROPERTIES SKIP_AUTORCC ON)
|
set_source_files_properties(${infile} PROPERTIES SKIP_AUTORCC ON)
|
||||||
add_custom_command(OUTPUT ${tmpoutfile}
|
add_custom_command(OUTPUT ${tmpoutfile}
|
||||||
COMMAND ${Qt5Core_RCC_EXECUTABLE} ${rcc_options} --name ${outfilename} --pass 1 --output ${tmpoutfile} ${infile}
|
COMMAND ${QT_CMAKE_EXPORT_NAMESPACE}::rcc ${rcc_options} --name ${outfilename} --pass 1 --output ${tmpoutfile} ${infile}
|
||||||
DEPENDS ${infile} ${_rc_depends} "${out_depends}" VERBATIM)
|
DEPENDS ${infile} ${_rc_depends} "${out_depends}" VERBATIM)
|
||||||
set_source_files_properties(${tmpoutfile} PROPERTIES SKIP_AUTOMOC ON)
|
set_source_files_properties(${tmpoutfile} PROPERTIES SKIP_AUTOMOC ON)
|
||||||
set_source_files_properties(${tmpoutfile} PROPERTIES SKIP_AUTOUIC ON)
|
set_source_files_properties(${tmpoutfile} PROPERTIES SKIP_AUTOUIC ON)
|
||||||
@ -327,7 +327,7 @@ function(QT5_ADD_BIG_RESOURCES outfiles )
|
|||||||
add_library(rcc_object_${outfilename} OBJECT ${tmpoutfile})
|
add_library(rcc_object_${outfilename} OBJECT ${tmpoutfile})
|
||||||
add_dependencies(rcc_object_${outfilename} big_resources_${outfilename})
|
add_dependencies(rcc_object_${outfilename} big_resources_${outfilename})
|
||||||
add_custom_command(OUTPUT ${outfile}
|
add_custom_command(OUTPUT ${outfile}
|
||||||
COMMAND ${Qt5Core_RCC_EXECUTABLE}
|
COMMAND ${QT_CMAKE_EXPORT_NAMESPACE}::rcc
|
||||||
ARGS ${rcc_options} --name ${outfilename} --pass 2 --temp $<TARGET_OBJECTS:rcc_object_${outfilename}> --output ${outfile} ${infile}
|
ARGS ${rcc_options} --name ${outfilename} --pass 2 --temp $<TARGET_OBJECTS:rcc_object_${outfilename}> --output ${outfile} ${infile}
|
||||||
DEPENDS rcc_object_${outfilename}
|
DEPENDS rcc_object_${outfilename}
|
||||||
VERBATIM)
|
VERBATIM)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user