diff options
-rw-r--r-- | cmake/QtBaseGlobalTargets.cmake | 10 | ||||
-rw-r--r-- | cmake/QtBuild.cmake | 25 | ||||
-rw-r--r-- | qmake/CMakeLists.txt | 2 |
3 files changed, 22 insertions, 15 deletions
diff --git a/cmake/QtBaseGlobalTargets.cmake b/cmake/QtBaseGlobalTargets.cmake index 6c5c7e1951..ac039cb4d0 100644 --- a/cmake/QtBaseGlobalTargets.cmake +++ b/cmake/QtBaseGlobalTargets.cmake @@ -4,7 +4,7 @@ add_library(Qt::Platform ALIAS Platform) target_include_directories(Platform INTERFACE $<BUILD_INTERFACE:${PROJECT_SOURCE_DIR}/${QT_PLATFORM_DEFINITION_DIR}> - $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include> + $<BUILD_INTERFACE:${QT_BUILD_DIR}/include> $<INSTALL_INTERFACE:${INSTALL_DATADIR}/${QT_PLATFORM_DEFINITION_DIR}> $<INSTALL_INTERFACE:${INSTALL_INCLUDEDIR}> ) @@ -65,8 +65,8 @@ qt_install(FILES ## files always lived in Qt::Core, so we keep it that way add_library(GlobalConfig INTERFACE) target_include_directories(GlobalConfig INTERFACE - $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include> - $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include/QtCore> + $<BUILD_INTERFACE:${QT_BUILD_DIR}/include> + $<BUILD_INTERFACE:${QT_BUILD_DIR}/include/QtCore> $<INSTALL_INTERFACE:include> $<INSTALL_INTERFACE:include/QtCore> ) @@ -84,8 +84,8 @@ add_library(Qt::GlobalConfig ALIAS GlobalConfig) add_library(GlobalConfigPrivate INTERFACE) target_link_libraries(GlobalConfigPrivate INTERFACE GlobalConfig) target_include_directories(GlobalConfigPrivate INTERFACE - $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include/QtCore/${PROJECT_VERSION}> - $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include/QtCore/${PROJECT_VERSION}/QtCore> + $<BUILD_INTERFACE:${QT_BUILD_DIR}/include/QtCore/${PROJECT_VERSION}> + $<BUILD_INTERFACE:${QT_BUILD_DIR}/include/QtCore/${PROJECT_VERSION}/QtCore> $<INSTALL_INTERFACE:include/QtCore/${PROJECT_VERSION}> $<INSTALL_INTERFACE:include/QtCore/${PROJECT_VERSION}/QtCore> ) diff --git a/cmake/QtBuild.cmake b/cmake/QtBuild.cmake index 9f358d164d..f69c5f5f21 100644 --- a/cmake/QtBuild.cmake +++ b/cmake/QtBuild.cmake @@ -272,6 +272,10 @@ endfunction() # cmake_install.cmake file with an empty one. This means we will always replace the file on # every reconfiguration, but not when doing null builds. function(remove_install_target) + if (TARGET remove_cmake_install) + return() # target was already created + endif() + set(file_in "${CMAKE_BINARY_DIR}/.remove_cmake_install_in.txt") set(file_generated "${CMAKE_BINARY_DIR}/.remove_cmake_install_generated.txt") set(cmake_install_file "${CMAKE_BINARY_DIR}/cmake_install.cmake") @@ -943,20 +947,24 @@ function(qt_install_injections module build_dir install_dir) # # ${some_prefix}'s value depends on the build type. # If doing a prefix build, it should point to - # ${current_repo_build_dir} which is ${qtdeclarative_build_dir}. + # the current repo's build dir which is ${qtdeclarative_build_dir}. # If doing a non-prefix build, it should point to - # ${qtbase_build_dir}. + # qtbase's build dir. # # In the code below, ${some_prefix} == ${build_dir}. set(lower_case_forwarding_header_path "${build_dir}/${INSTALL_INCLUDEDIR}/${module}") if(destinationdir) string(APPEND lower_case_forwarding_header_path "/${destinationdir}") endif() - set(current_repo_build_dir "${PROJECT_BINARY_DIR}") + if (IS_ABSOLUTE "${file}") + set(file_path "${file}") + else() + set(file_path "${PROJECT_BINARY_DIR}/${file}") + endif() file(RELATIVE_PATH relpath "${lower_case_forwarding_header_path}" - "${current_repo_build_dir}/${file}") + "${file_path}") set(main_contents "#include \"${relpath}\"") file(GENERATE OUTPUT "${lower_case_forwarding_header_path}/${original_file_name}" CONTENT "${main_contents}") @@ -966,7 +974,7 @@ function(qt_install_injections module build_dir install_dir) # will be a no-op. qt_path_join(install_destination ${install_dir} ${INSTALL_INCLUDEDIR} ${module} ${destinationdir}) - qt_install(FILES ${current_repo_build_dir}/${file} + qt_install(FILES ${file_path} DESTINATION ${install_destination} RENAME ${destinationname} OPTIONAL) @@ -1137,7 +1145,7 @@ function(add_qt_module target) qt_autogen_tools_initial_setup(${target}) set(_public_includes - $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include> + $<BUILD_INTERFACE:${QT_BUILD_DIR}/include> $<BUILD_INTERFACE:${module_include_dir}> ) if(NOT arg_NO_MODULE_HEADERS) @@ -1489,7 +1497,7 @@ function(add_qt_plugin target) "${CMAKE_CURRENT_SOURCE_DIR}" "${CMAKE_CURRENT_BINARY_DIR}" # For the syncqt headers - $<BUILD_INTERFACE:${PROJECT_BINARY_DIR}/include> + $<BUILD_INTERFACE:${QT_BUILD_DIR}/include> ${arg_INCLUDE_DIRECTORIES} PUBLIC_INCLUDE_DIRECTORIES ${arg_PUBLIC_INCLUDE_DIRECTORIES} LIBRARIES ${arg_LIBRARIES} Qt::PlatformPluginInternal @@ -2055,7 +2063,6 @@ function(qt_compute_injection_forwarding_header target) get_filename_component(file_name "${arg_SOURCE}" NAME) set(source_absolute_path "${CMAKE_CURRENT_BINARY_DIR}/${arg_SOURCE}") - file(RELATIVE_PATH relpath "${CMAKE_BINARY_DIR}" "${source_absolute_path}") if (arg_PRIVATE) set(fwd "${PROJECT_VERSION}/${module}/private/${file_name}") @@ -2063,7 +2070,7 @@ function(qt_compute_injection_forwarding_header target) set(fwd "${file_name}") endif() - string(APPEND ${arg_OUT_VAR} " ${relpath}:${fwd}") + string(APPEND ${arg_OUT_VAR} " ${source_absolute_path}:${fwd}") set(${arg_OUT_VAR} ${${arg_OUT_VAR}} PARENT_SCOPE) endfunction() diff --git a/qmake/CMakeLists.txt b/qmake/CMakeLists.txt index 6f8763524f..22fbda307b 100644 --- a/qmake/CMakeLists.txt +++ b/qmake/CMakeLists.txt @@ -124,7 +124,7 @@ add_qt_tool(qmake # special case generators/win32 library $<TARGET_PROPERTY:Qt::CorePrivate,INTERFACE_INCLUDE_DIRECTORIES> # special case - ${CMAKE_BINARY_DIR}/src/corelib/global # special case: for qconfig.cpp + ${CMAKE_CURRENT_BINARY_DIR}/../src/corelib/global # special case: for qconfig.cpp ) qt_internal_add_target_aliases(Bootstrap) # special case |