mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-11-25 04:59:00 +08:00
put qtmain in manual link directory, resolve resultant build issues with qtdeclarative
This commit is contained in:
parent
768acf1966
commit
c6a82f27f1
@ -42,6 +42,17 @@ for f in files:
|
||||
builder += " else()"
|
||||
builder += "\n " + line.replace("/plugins/", "/debug/plugins/")
|
||||
builder += " endif()\n"
|
||||
elif "_install_prefix}/lib/qtmaind.lib" in line:
|
||||
# qtmaind.lib has been moved to manual-link:
|
||||
builder += line.replace("/lib/", "/debug/lib/manual-link/")
|
||||
elif "_install_prefix}/lib/qtmain.lib" in line:
|
||||
# qtmain(d).lib has been moved to manual-link:
|
||||
builder += line.replace("/lib/", "/lib/manual-link/")
|
||||
builder += " set(imported_location_debug \"${_qt5Core_install_prefix}/debug/lib/manual-link/qtmaind.lib\")\n"
|
||||
builder += "\n"
|
||||
builder += " set_target_properties(Qt5::WinMain PROPERTIES\n"
|
||||
builder += " IMPORTED_LOCATION_DEBUG ${imported_location_debug}\n"
|
||||
builder += " )\n"
|
||||
elif dllpattern.search(line) != None:
|
||||
builder += line.replace("/bin/", "/debug/bin/")
|
||||
elif libpattern.search(line) != None:
|
||||
|
@ -91,4 +91,24 @@ vcpkg_execute_required_process(
|
||||
vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
|
||||
vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/qt5)
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
# qtmain(d) vs. Qt5AxServer(d)
|
||||
#---------------------------------------------------------------------------
|
||||
# Qt applications have to either link to qtmain(d) or to Qt5AxServer(d),
|
||||
# never both. See http://doc.qt.io/qt-5/activeqt-server.html for more info.
|
||||
#
|
||||
# Create manual-link folders:
|
||||
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/lib/manual-link)
|
||||
file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
|
||||
#
|
||||
# Either have users explicitly link against qtmain.lib, qtmaind.lib:
|
||||
file(COPY ${CURRENT_PACKAGES_DIR}/lib/qtmain.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link)
|
||||
file(COPY ${CURRENT_PACKAGES_DIR}/lib/qtmain.prl DESTINATION ${CURRENT_PACKAGES_DIR}/lib/manual-link)
|
||||
file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qtmain.lib)
|
||||
file(REMOVE ${CURRENT_PACKAGES_DIR}/lib/qtmain.prl)
|
||||
file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
|
||||
file(COPY ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.prl DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib/manual-link)
|
||||
file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.lib)
|
||||
file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/qtmaind.prl)
|
||||
|
||||
file(INSTALL ${SOURCE_PATH}/LICENSE.LGPLv3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5base RENAME copyright)
|
||||
|
@ -41,6 +41,12 @@ function(qt_modular_library NAME HASH)
|
||||
get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
|
||||
set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
|
||||
|
||||
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}" NATIVE_INSTALLED_DIR)
|
||||
file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" NATIVE_PACKAGES_DIR)
|
||||
|
||||
string(SUBSTRING "${NATIVE_INSTALLED_DIR}" 2 -1 INSTALLED_DIR_WITHOUT_DRIVE)
|
||||
string(SUBSTRING "${NATIVE_PACKAGES_DIR}" 2 -1 PACKAGES_DIR_WITHOUT_DRIVE)
|
||||
|
||||
#Configure debug
|
||||
vcpkg_configure_qmake_debug(
|
||||
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
|
||||
@ -56,6 +62,7 @@ function(qt_modular_library NAME HASH)
|
||||
file(READ "${DEBUG_MAKEFILE}" _contents)
|
||||
string(REPLACE "zlib.lib" "zlibd.lib" _contents "${_contents}")
|
||||
string(REPLACE "vcpkg\\installed\\${TARGET_TRIPLET}\\lib" "vcpkg\\installed\\${TARGET_TRIPLET}\\debug\\lib" _contents "${_contents}")
|
||||
string(REPLACE "/LIBPATH:${NATIVE_INSTALLED_DIR}\\debug\\lib qtmaind.lib" "shell32.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\debug\\lib\\manual-link qtmaind.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\debug\\lib" _contents "${_contents}")
|
||||
file(WRITE "${DEBUG_MAKEFILE}" "${_contents}")
|
||||
endforeach()
|
||||
|
||||
@ -73,6 +80,12 @@ function(qt_modular_library NAME HASH)
|
||||
#Store release makefile path
|
||||
file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
|
||||
|
||||
foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
|
||||
file(READ "${RELEASE_MAKEFILE}" _contents)
|
||||
string(REPLACE "/LIBPATH:${NATIVE_INSTALLED_DIR}\\lib qtmain.lib" "shell32.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\lib\\manual-link qtmain.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\lib" _contents "${_contents}")
|
||||
file(WRITE "${RELEASE_MAKEFILE}" "${_contents}")
|
||||
endforeach()
|
||||
|
||||
#Build release
|
||||
vcpkg_build_qmake_release()
|
||||
|
||||
@ -84,13 +97,7 @@ function(qt_modular_library NAME HASH)
|
||||
LOGNAME fix-cmake
|
||||
)
|
||||
endif()
|
||||
|
||||
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}" NATIVE_INSTALLED_DIR)
|
||||
file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" NATIVE_PACKAGES_DIR)
|
||||
|
||||
string(SUBSTRING "${NATIVE_INSTALLED_DIR}" 2 -1 INSTALLED_DIR_WITHOUT_DRIVE)
|
||||
string(SUBSTRING "${NATIVE_PACKAGES_DIR}" 2 -1 PACKAGES_DIR_WITHOUT_DRIVE)
|
||||
|
||||
|
||||
#Set the correct install directory to packages
|
||||
foreach(MAKEFILE ${RELEASE_MAKEFILES} ${DEBUG_MAKEFILES})
|
||||
vcpkg_replace_string(${MAKEFILE} "(INSTALL_ROOT)${INSTALLED_DIR_WITHOUT_DRIVE}" "(INSTALL_ROOT)${PACKAGES_DIR_WITHOUT_DRIVE}")
|
||||
|
Loading…
Reference in New Issue
Block a user