diff --git a/docs/maintainers/vcpkg_configure_qmake.md b/docs/maintainers/vcpkg_configure_qmake.md index 53526e10321468..6b980b3c0f1c65 100644 --- a/docs/maintainers/vcpkg_configure_qmake.md +++ b/docs/maintainers/vcpkg_configure_qmake.md @@ -10,6 +10,9 @@ vcpkg_configure_qmake( [OPTIONS arg1 [arg2 ...]] [OPTIONS_RELEASE arg1 [arg2 ...]] [OPTIONS_DEBUG arg1 [arg2 ...]] + [BUILD_OPTIONS arg1 [arg2 ...]] + [BUILD_OPTIONS_RELEASE arg1 [arg2 ...]] + [BUILD_OPTIONS_DEBUG arg1 [arg2 ...]] ) ``` @@ -17,7 +20,10 @@ vcpkg_configure_qmake( The path to the *.pro qmake project file. ### OPTIONS, OPTIONS\_RELEASE, OPTIONS\_DEBUG -The options passed to qmake. +The options passed to qmake to the configure step. + +### BUILD\_OPTIONS, BUILD\_OPTIONS\_RELEASE, BUILD\_OPTIONS\_DEBUG +The options passed to qmake to the build step. ## Source [scripts/cmake/vcpkg\_configure\_qmake.cmake](https://github.com/Microsoft/vcpkg/blob/master/scripts/cmake/vcpkg_configure_qmake.cmake) diff --git a/ports/qt5-base/vcpkg.json b/ports/qt5-base/vcpkg.json index 6115a5e4fd4afa..072baa2f1f1bbc 100644 --- a/ports/qt5-base/vcpkg.json +++ b/ports/qt5-base/vcpkg.json @@ -1,7 +1,7 @@ { "name": "qt5-base", "version-semver": "5.15.2", - "port-version": 11, + "port-version": 12, "description": "Qt5 Application Framework Base Module. Includes Core, GUI, Widgets, Networking, SQL, Concurrent and other essential qt components.", "homepage": "https://www.qt.io/", "dependencies": [ @@ -25,6 +25,11 @@ "libpng", "openssl", "pcre2", + { + "name": "qt5-base", + "host": true, + "default-features": false + }, "sqlite3", { "name": "vcpkg-pkgconfig-get-modules", diff --git a/scripts/cmake/vcpkg_build_qmake.cmake b/scripts/cmake/vcpkg_build_qmake.cmake index 6b85234c838793..d592a2eeac613a 100644 --- a/scripts/cmake/vcpkg_build_qmake.cmake +++ b/scripts/cmake/vcpkg_build_qmake.cmake @@ -8,102 +8,79 @@ vcpkg_build_qmake() ``` #]===] +function(z_run_jom_build invoke_command targets log_prefix log_suffix) + message(STATUS "Package ${log_prefix}-${TARGET_TRIPLET}-${log_suffix}") + vcpkg_execute_build_process( + COMMAND "${invoke_command}" -j ${VCPKG_CONCURRENCY} ${targets} + NO_PARALLEL_COMMAND "${invoke_command}" -j 1 ${targets} + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${log_suffix}" + LOGNAME "package-${log_prefix}-${TARGET_TRIPLET}-${log_suffix}" + ) +endfunction() + function(vcpkg_build_qmake) # parse parameters such that semicolons in options arguments to COMMAND don't get erased - cmake_parse_arguments(PARSE_ARGV 0 _csc "SKIP_MAKEFILES" "BUILD_LOGNAME" "TARGETS;RELEASE_TARGETS;DEBUG_TARGETS") + cmake_parse_arguments(PARSE_ARGV 0 arg + "SKIP_MAKEFILES" + "BUILD_LOGNAME" + "TARGETS;RELEASE_TARGETS;DEBUG_TARGETS" + ) + + # Make sure that the linker finds the libraries used + vcpkg_backup_env_variables(VARS PATH LD_LIBRARY_PATH CL _CL_) + + # This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings + set(ENV{_CL_} "/utf-8") if(CMAKE_HOST_WIN32) if (VCPKG_QMAKE_USE_NMAKE) find_program(NMAKE nmake) - set(INVOKE "${NMAKE}") - get_filename_component(NMAKE_EXE_PATH ${NMAKE} DIRECTORY) - set(PATH_GLOBAL "$ENV{PATH}") - set(ENV{PATH} "$ENV{PATH};${NMAKE_EXE_PATH}") + set(invoke_command "${NMAKE}") + get_filename_component(nmake_exe_path "${NMAKE}" DIRECTORY) + vcpkg_host_path_list(APPEND ENV{PATH} "${nmake_exe_path}") set(ENV{CL} "$ENV{CL} /MP${VCPKG_CONCURRENCY}") else() vcpkg_find_acquire_program(JOM) - set(INVOKE "${JOM}") + set(invoke_command "${JOM}") endif() else() find_program(MAKE make) - set(INVOKE "${MAKE}") + set(invoke_command "${MAKE}") endif() - # Make sure that the linker finds the libraries used - set(ENV_PATH_BACKUP "$ENV{PATH}") - file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}" NATIVE_INSTALLED_DIR) - if(NOT _csc_BUILD_LOGNAME) - set(_csc_BUILD_LOGNAME build) + if(NOT DEFINED arg_BUILD_LOGNAME) + set(arg_BUILD_LOGNAME build) endif() - function(run_jom TARGETS LOG_PREFIX LOG_SUFFIX) - message(STATUS "Package ${LOG_PREFIX}-${TARGET_TRIPLET}-${LOG_SUFFIX}") - vcpkg_execute_build_process( - COMMAND ${INVOKE} -j ${VCPKG_CONCURRENCY} ${TARGETS} - NO_PARALLEL_COMMAND ${INVOKE} -j 1 ${TARGETS} - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${LOG_SUFFIX} - LOGNAME package-${LOG_PREFIX}-${TARGET_TRIPLET}-${LOG_SUFFIX} - ) - endfunction() + set(short_name_debug "dbg") + set(path_suffix_debug "/debug") + set(targets_debug "${arg_DEBUG_TARGETS}") - # This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings - set(ENV_CL_BACKUP "$ENV{_CL_}") - set(ENV{_CL_} "/utf-8") - - #Replace with VCPKG variables if PR #7733 is merged - unset(BUILDTYPES) - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - set(_buildname "DEBUG") - list(APPEND BUILDTYPES ${_buildname}) - set(_short_name_${_buildname} "dbg") - set(_path_suffix_${_buildname} "/debug") - endif() - if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - set(_buildname "RELEASE") - list(APPEND BUILDTYPES ${_buildname}) - set(_short_name_${_buildname} "rel") - set(_path_suffix_${_buildname} "") - endif() - unset(_buildname) + set(short_name_release "rel") + set(path_suffix_release "") + set(targets_release "${arg_RELEASE_TARGETS}") - foreach(_buildname ${BUILDTYPES}) - set(_installed_prefix_ "${CURRENT_INSTALLED_DIR}${_path_suffix_${_buildname}}") - set(_installed_libpath_ "${_installed_prefix_}/lib/${VCPKG_HOST_PATH_SEPARATOR}${_installed_prefix_}/lib/manual-link/") + foreach(build_type IN ITEMS debug release) + set(current_installed_prefix "${CURRENT_INSTALLED_DIR}${path_suffix_${build_type}}") - vcpkg_add_to_path(PREPEND "${_installed_prefix_}/bin") - vcpkg_add_to_path(PREPEND "${_installed_prefix_}/lib") + vcpkg_add_to_path(PREPEND "${current_installed_prefix}/lib" "${current_installed_prefix}/bin") # We set LD_LIBRARY_PATH ENV variable to allow executing Qt tools (rcc,...) even with dynamic linking if(CMAKE_HOST_UNIX) - if(DEFINED ENV{LD_LIBRARY_PATH}) - set(_ld_library_path_defined_ TRUE) - set(_ld_library_path_backup_ $ENV{LD_LIBRARY_PATH}) - set(ENV{LD_LIBRARY_PATH} "${_installed_libpath_}${VCPKG_HOST_PATH_SEPARATOR}${_ld_library_path_backup_}") - else() - set(_ld_library_path_defined_ FALSE) - set(ENV{LD_LIBRARY_PATH} "${_installed_libpath_}") - endif() - endif() - - list(APPEND _csc_${_buildname}_TARGETS ${_csc_TARGETS}) - if(NOT _csc_SKIP_MAKEFILES) - run_jom(qmake_all makefiles ${_short_name_${_buildname}}) + set(ENV{LD_LIBRARY_PATH} "") + vcpkg_host_path_list(APPEND ENV{LD_LIBRARY_PATH} "${current_installed_prefix}/lib" "${current_installed_prefix}/lib/manual-link") endif() - run_jom("${_csc_${_buildname}_TARGETS}" ${_csc_BUILD_LOGNAME} ${_short_name_${_buildname}}) - # Restore backup - if(CMAKE_HOST_UNIX) - if(_ld_library_path_defined_) - set(ENV{LD_LIBRARY_PATH} "${_ld_library_path_backup_}") - else() - unset(ENV{LD_LIBRARY_PATH}) - endif() + vcpkg_list(SET targets ${targets_${build_type}} ${arg_TARGETS}) + if(NOT arg_SKIP_MAKEFILES) + z_run_jom_build("${invoke_command}" qmake_all makefiles "${short_name_${build_type}}") endif() + z_run_jom_build("${invoke_command}" "${targets}" "${arg_BUILD_LOGNAME}" "${short_name_${build_type}}") + + vcpkg_restore_env_variables(VARS PATH LD_LIBRARY_PATH) endforeach() - # Restore the original value of ENV{PATH} - set(ENV{PATH} "${ENV_PATH_BACKUP}") - set(ENV{_CL_} "${ENV_CL_BACKUP}") + vcpkg_restore_env_variables(VARS CL _CL_) endfunction() diff --git a/scripts/cmake/vcpkg_configure_qmake.cmake b/scripts/cmake/vcpkg_configure_qmake.cmake index 6fa3a609a5cc50..0bed7567e3c761 100644 --- a/scripts/cmake/vcpkg_configure_qmake.cmake +++ b/scripts/cmake/vcpkg_configure_qmake.cmake @@ -9,6 +9,9 @@ vcpkg_configure_qmake( [OPTIONS arg1 [arg2 ...]] [OPTIONS_RELEASE arg1 [arg2 ...]] [OPTIONS_DEBUG arg1 [arg2 ...]] + [BUILD_OPTIONS arg1 [arg2 ...]] + [BUILD_OPTIONS_RELEASE arg1 [arg2 ...]] + [BUILD_OPTIONS_DEBUG arg1 [arg2 ...]] ) ``` @@ -16,118 +19,121 @@ vcpkg_configure_qmake( The path to the *.pro qmake project file. ### OPTIONS, OPTIONS\_RELEASE, OPTIONS\_DEBUG -The options passed to qmake. +The options passed to qmake to the configure step. + +### BUILD\_OPTIONS, BUILD\_OPTIONS\_RELEASE, BUILD\_OPTIONS\_DEBUG +The options passed to qmake to the build step. #]===] function(vcpkg_configure_qmake) # parse parameters such that semicolons in options arguments to COMMAND don't get erased - cmake_parse_arguments(PARSE_ARGV 0 _csc "" "SOURCE_PATH" "OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG;BUILD_OPTIONS;BUILD_OPTIONS_RELEASE;BUILD_OPTIONS_DEBUG") - + cmake_parse_arguments(PARSE_ARGV 0 arg + "" + "SOURCE_PATH" + "OPTIONS;OPTIONS_RELEASE;OPTIONS_DEBUG;BUILD_OPTIONS;BUILD_OPTIONS_RELEASE;BUILD_OPTIONS_DEBUG" + ) + # Find qmake executable - set(_triplet_hostbindir ${CURRENT_INSTALLED_DIR}/tools/qt5/bin) - if(DEFINED VCPKG_QT_HOST_TOOLS_ROOT_DIR) - find_program(QMAKE_COMMAND NAMES qmake PATHS ${VCPKG_QT_HOST_TOOLS_ROOT_DIR}/bin ${_triplet_hostbindir} NO_DEFAULT_PATH) - else() - find_program(QMAKE_COMMAND NAMES qmake PATHS ${_triplet_hostbindir} NO_DEFAULT_PATH) - endif() + find_program(qmake_executable NAMES qmake PATHS "${CURRENT_HOST_INSTALLED_DIR}/tools/qt5/bin" NO_DEFAULT_PATH) - if(NOT QMAKE_COMMAND) + if(NOT qmake_executable) message(FATAL_ERROR "vcpkg_configure_qmake: unable to find qmake.") endif() if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") - list(APPEND _csc_OPTIONS "CONFIG-=shared") - list(APPEND _csc_OPTIONS "CONFIG*=static") + vcpkg_list(APPEND arg_OPTIONS "CONFIG-=shared" "CONFIG*=static") else() - list(APPEND _csc_OPTIONS "CONFIG-=static") - list(APPEND _csc_OPTIONS "CONFIG*=shared") - list(APPEND _csc_OPTIONS_DEBUG "CONFIG*=separate_debug_info") + vcpkg_list(APPEND arg_OPTIONS "CONFIG-=static" "CONFIG*=shared") + vcpkg_list(APPEND arg_OPTIONS_DEBUG "CONFIG*=separate_debug_info") endif() - + if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_CRT_LINKAGE STREQUAL "static") - list(APPEND _csc_OPTIONS "CONFIG*=static-runtime") + vcpkg_list(APPEND arg_OPTIONS "CONFIG*=static-runtime") endif() - # Cleanup build directories - file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) - if(DEFINED VCPKG_OSX_DEPLOYMENT_TARGET) set(ENV{QMAKE_MACOSX_DEPLOYMENT_TARGET} ${VCPKG_OSX_DEPLOYMENT_TARGET}) endif() + vcpkg_backup_env_variables(VARS PKG_CONFIG_PATH) + vcpkg_find_acquire_program(PKGCONFIG) set(ENV{PKG_CONFIG} "${PKGCONFIG}") get_filename_component(PKGCONFIG_PATH "${PKGCONFIG}" DIRECTORY) vcpkg_add_to_path("${PKGCONFIG_PATH}") if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release") - set(_config RELEASE) - set(PKGCONFIG_INSTALLED_DIR "${_VCPKG_INSTALLED_PKGCONF}${PATH_SUFFIX_${_config}}/lib/pkgconfig") - set(PKGCONFIG_INSTALLED_SHARE_DIR "${_VCPKG_INSTALLED_PKGCONF}/share/pkgconfig") - set(PKGCONFIG_PACKAGES_DIR "${_VCPKG_PACKAGES_PKGCONF}${PATH_SUFFIX_${_config}}/lib/pkgconfig") - set(PKGCONFIG_PACKAGES_SHARE_DIR "${_VCPKG_PACKAGES_PKGCONF}/share/pkgconfig") - if(DEFINED ENV{PKG_CONFIG_PATH}) - set(BACKUP_ENV_PKG_CONFIG_PATH_${_config} $ENV{PKG_CONFIG_PATH}) - set(ENV{PKG_CONFIG_PATH} "${PKGCONFIG_INSTALLED_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_INSTALLED_SHARE_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_SHARE_DIR}${VCPKG_HOST_PATH_SEPARATOR}$ENV{PKG_CONFIG_PATH}") - else() - set(ENV{PKG_CONFIG_PATH} "${PKGCONFIG_INSTALLED_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_INSTALLED_SHARE_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_SHARE_DIR}") - endif() + vcpkg_host_path_list(PREPEND ENV{PKG_CONFIG_PATH} + "${CURRENT_INSTALLED_DIR}/lib/pkgconfig" + "${CURRENT_INSTALLED_DIR}/share/pkgconfig" + "${CURRENT_PACKAGES_DIR}/lib/pkgconfig" + "${CURRENT_PACKAGES_DIR}/share/pkgconfig") - configure_file(${CURRENT_INSTALLED_DIR}/tools/qt5/qt_release.conf ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/qt.conf) + set(current_binary_dir "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") + + # Cleanup build directories + file(REMOVE_RECURSE "${current_binary_dir}") + + configure_file("${CURRENT_INSTALLED_DIR}/tools/qt5/qt_release.conf" "${current_binary_dir}/qt.conf") message(STATUS "Configuring ${TARGET_TRIPLET}-rel") - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel) - if(DEFINED _csc_BUILD_OPTIONS OR DEFINED _csc_BUILD_OPTIONS_RELEASE) - set(BUILD_OPT -- ${_csc_BUILD_OPTIONS} ${_csc_BUILD_OPTIONS_RELEASE}) + file(MAKE_DIRECTORY "${current_binary_dir}") + + vcpkg_list(SET build_opt_param) + if(DEFINED arg_BUILD_OPTIONS OR DEFINED arg_BUILD_OPTIONS_RELEASE) + vcpkg_list(SET build_opt_param -- ${arg_BUILD_OPTIONS} ${arg_BUILD_OPTIONS_RELEASE}) endif() + vcpkg_execute_required_process( - COMMAND ${QMAKE_COMMAND} CONFIG-=debug CONFIG+=release - ${_csc_OPTIONS} ${_csc_OPTIONS_RELEASE} ${_csc_SOURCE_PATH} - -qtconf "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/qt.conf" - ${BUILD_OPT} - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel - LOGNAME config-${TARGET_TRIPLET}-rel + COMMAND "${qmake_executable}" CONFIG-=debug CONFIG+=release + ${arg_OPTIONS} ${arg_OPTIONS_RELEASE} ${arg_SOURCE_PATH} + -qtconf "${current_binary_dir}/qt.conf" + ${build_opt_param} + WORKING_DIRECTORY "${current_binary_dir}" + LOGNAME "config-${TARGET_TRIPLET}-rel" ) message(STATUS "Configuring ${TARGET_TRIPLET}-rel done") - if(EXISTS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/config.log") + if(EXISTS "${current_binary_dir}/config.log") file(REMOVE "${CURRENT_BUILDTREES_DIR}/internal-config-${TARGET_TRIPLET}-rel.log") - file(RENAME "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/config.log" "${CURRENT_BUILDTREES_DIR}/internal-config-${TARGET_TRIPLET}-rel.log") + file(RENAME "${current_binary_dir}/config.log" "${CURRENT_BUILDTREES_DIR}/internal-config-${TARGET_TRIPLET}-rel.log") endif() + + vcpkg_restore_env_variables(VARS PKG_CONFIG_PATH) endif() if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug") - set(_config DEBUG) - set(PATH_SUFFIX_DEBUG /debug) - set(PKGCONFIG_INSTALLED_DIR "${_VCPKG_INSTALLED_PKGCONF}${PATH_SUFFIX_${_config}}/lib/pkgconfig") - set(PKGCONFIG_INSTALLED_SHARE_DIR "${_VCPKG_INSTALLED_PKGCONF}/share/pkgconfig") - set(PKGCONFIG_PACKAGES_DIR "${_VCPKG_PACKAGES_PKGCONF}${PATH_SUFFIX_${_config}}/lib/pkgconfig") - set(PKGCONFIG_PACKAGES_SHARE_DIR "${_VCPKG_PACKAGES_PKGCONF}/share/pkgconfig") - if(DEFINED ENV{PKG_CONFIG_PATH}) - set(BACKUP_ENV_PKG_CONFIG_PATH_${_config} $ENV{PKG_CONFIG_PATH}) - set(ENV{PKG_CONFIG_PATH} "${PKGCONFIG_INSTALLED_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_INSTALLED_SHARE_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_SHARE_DIR}${VCPKG_HOST_PATH_SEPARATOR}$ENV{PKG_CONFIG_PATH}") - else() - set(ENV{PKG_CONFIG_PATH} "${PKGCONFIG_INSTALLED_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_INSTALLED_SHARE_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_DIR}${VCPKG_HOST_PATH_SEPARATOR}${PKGCONFIG_PACKAGES_SHARE_DIR}") - endif() + vcpkg_host_path_list(PREPEND ENV{PKG_CONFIG_PATH} + "${CURRENT_INSTALLED_DIR}/debug/lib/pkgconfig" + "${CURRENT_INSTALLED_DIR}/share/pkgconfig" + "${CURRENT_PACKAGES_DIR}/debug/lib/pkgconfig" + "${CURRENT_PACKAGES_DIR}/share/pkgconfig") + + set(current_binary_dir "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") - configure_file(${CURRENT_INSTALLED_DIR}/tools/qt5/qt_debug.conf ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/qt.conf) + # Cleanup build directories + file(REMOVE_RECURSE "${current_binary_dir}") + + configure_file("${CURRENT_INSTALLED_DIR}/tools/qt5/qt_debug.conf" "${current_binary_dir}/qt.conf") message(STATUS "Configuring ${TARGET_TRIPLET}-dbg") - file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) - if(DEFINED _csc_BUILD_OPTIONS OR DEFINED _csc_BUILD_OPTIONS_DEBUG) - set(BUILD_OPT -- ${_csc_BUILD_OPTIONS} ${_csc_BUILD_OPTIONS_DEBUG}) + file(MAKE_DIRECTORY "${current_binary_dir}") + + vcpkg_list(SET build_opt_param) + if(DEFINED arg_BUILD_OPTIONS OR DEFINED arg_BUILD_OPTIONS_DEBUG) + vcpkg_list(SET build_opt_param -- ${arg_BUILD_OPTIONS} ${arg_BUILD_OPTIONS_DEBUG}) endif() vcpkg_execute_required_process( - COMMAND ${QMAKE_COMMAND} CONFIG-=release CONFIG+=debug - ${_csc_OPTIONS} ${_csc_OPTIONS_DEBUG} ${_csc_SOURCE_PATH} - -qtconf "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/qt.conf" - ${BUILD_OPT} - WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg - LOGNAME config-${TARGET_TRIPLET}-dbg + COMMAND "${qmake_executable}" CONFIG-=release CONFIG+=debug + ${arg_OPTIONS} ${arg_OPTIONS_DEBUG} ${arg_SOURCE_PATH} + -qtconf "${current_binary_dir}/qt.conf" + ${build_opt_param} + WORKING_DIRECTORY "${current_binary_dir}" + LOGNAME "config-${TARGET_TRIPLET}-dbg" ) message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done") - if(EXISTS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/config.log") + if(EXISTS "${current_binary_dir}/config.log") file(REMOVE "${CURRENT_BUILDTREES_DIR}/internal-config-${TARGET_TRIPLET}-dbg.log") - file(RENAME "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/config.log" "${CURRENT_BUILDTREES_DIR}/internal-config-${TARGET_TRIPLET}-dbg.log") + file(RENAME "${current_binary_dir}/config.log" "${CURRENT_BUILDTREES_DIR}/internal-config-${TARGET_TRIPLET}-dbg.log") endif() endif() diff --git a/scripts/cmake/vcpkg_install_qmake.cmake b/scripts/cmake/vcpkg_install_qmake.cmake index d8362697abc762..38d9eacf9d2814 100644 --- a/scripts/cmake/vcpkg_install_qmake.cmake +++ b/scripts/cmake/vcpkg_install_qmake.cmake @@ -23,44 +23,47 @@ staging directories. #]===] function(vcpkg_install_qmake) - vcpkg_build_qmake(${ARGN}) - file(GLOB_RECURSE RELEASE_LIBS - ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.lib - ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.a - ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.so - ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.so.* - ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.dylib + z_vcpkg_function_arguments(args) + + vcpkg_build_qmake(${args}) + + file(GLOB_RECURSE release_libs + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.lib" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.a" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.so" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.so.*" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.dylib" ) - file(GLOB_RECURSE RELEASE_BINS - ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.dll + file(GLOB_RECURSE release_bins + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/*.dll" ) - file(GLOB_RECURSE DEBUG_LIBS - ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.lib - ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.a - ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.so - ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.so.* - ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.dylib + file(GLOB_RECURSE debug_libs + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.lib" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.a" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.so" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.so.*" + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.dylib" ) - file(GLOB_RECURSE DEBUG_BINS - ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.dll + file(GLOB_RECURSE debug_bins + "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/*.dll" ) - if(NOT RELEASE_LIBS AND NOT DEBUG_LIBS) + if("${release_libs}" STREQUAL "" AND "${debug_libs}" STREQUAL "") message(FATAL_ERROR "Build did not appear to produce any libraries. If this is intended, use `vcpkg_build_qmake()` directly.") endif() - if(RELEASE_LIBS) - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib) - file(COPY ${RELEASE_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/lib) + if(NOT "${release_libs}" STREQUAL "") + file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/lib") + file(COPY ${release_libs} DESTINATION "${CURRENT_PACKAGES_DIR}/lib") endif() - if(DEBUG_LIBS) - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib) - file(COPY ${DEBUG_LIBS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib) + if(NOT "${debug_libs}" STREQUAL "") + file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/lib") + file(COPY ${debug_libs} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") endif() - if(RELEASE_BINS) - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/bin) - file(COPY ${RELEASE_BINS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin) + if(NOT "${release_bins}" STREQUAL "") + file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/bin") + file(COPY ${release_bins} DESTINATION "${CURRENT_PACKAGES_DIR}/bin") endif() - if(DEBUG_BINS) - file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin) - file(COPY ${DEBUG_BINS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin) + if(NOT "${debug_bins}" STREQUAL "") + file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/debug/bin") + file(COPY ${debug_bins} DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") endif() endfunction() diff --git a/versions/baseline.json b/versions/baseline.json index cbbdd6004850c6..768dc12a3df00e 100644 --- a/versions/baseline.json +++ b/versions/baseline.json @@ -5450,7 +5450,7 @@ }, "qt5-base": { "baseline": "5.15.2", - "port-version": 11 + "port-version": 12 }, "qt5-canvas3d": { "baseline": "0", diff --git a/versions/q-/qt5-base.json b/versions/q-/qt5-base.json index ad6aee5fd36913..e51f704074b1e3 100644 --- a/versions/q-/qt5-base.json +++ b/versions/q-/qt5-base.json @@ -1,5 +1,10 @@ { "versions": [ + { + "git-tree": "9a65e1b0d631a1c2879d566140c11d634601fca6", + "version-semver": "5.15.2", + "port-version": 12 + }, { "git-tree": "72ca286ac98e08f2fef35f85a6e393795428d033", "version-semver": "5.15.2",