mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-03 05:29:14 +08:00
941d546454
* [qt5-imageformats] freeglut is not a dependency on osx * [qt5-base] fontconfig can require iconv on linux and osx * include the jasper fix to get CI coverage? * trying to get ci coverage for qt on osx * Revert "trying to get ci coverage for qt on osx" This reverts commit8b9b188839
. * apply the correct ci hack * fix wrapper to include macosx debug suffix * update baseline * first try to fix the Qt5 cmake configs at the root. * fix missing backslash * fix plugin patch * fix qt config patch * remove 90% of fixcmake.py * update baseline * experimental removal of fixcmake.py and dll copying into tools/qt5/bin * fix experimental dll copying. * fix static windows builds * fix static builds * fix plugin copy * add quotes around configuration to make it work * remove dll debug messages * note about the cmake fix * revert fontconfig changes on linux. Make qt.conf relative and not absolute * make qt.conf relative * trying to fix ogre osx ci regression * fix silly path error * Revert "trying to fix ogre osx ci regression" This reverts commit708d8250d6
. * add ogre:x64-osx=fail to CI baseline * retry on osx * fix configure error. since in qt5-base everything is in the package directory and not in the installed * revert change to ci.baseline * update ci baseline * bump control * update baseline * ws change to osg-qt * reset ci baseline to upstream/master * update baseline * fix osg-qt? * skip ms-angle on osx and linux since the normal angle port should be used! * update ci baseline * try adding fontconfig manually * update ci baseline to remove osg-qt for the time being * remove manual library.
102 lines
5.2 KiB
CMake
102 lines
5.2 KiB
CMake
|
|
function(qt_build_submodule SOURCE_PATH)
|
|
# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
|
|
set(ENV{_CL_} "/utf-8")
|
|
|
|
vcpkg_find_acquire_program(PYTHON2)
|
|
get_filename_component(PYTHON2_EXE_PATH ${PYTHON2} DIRECTORY)
|
|
vcpkg_add_to_path("${PYTHON2_EXE_PATH}")
|
|
|
|
vcpkg_configure_qmake(SOURCE_PATH ${SOURCE_PATH} ${ARGV})
|
|
|
|
vcpkg_build_qmake(SKIP_MAKEFILES)
|
|
|
|
#Fix the installation location within the makefiles
|
|
qt_fix_makefile_install("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/")
|
|
qt_fix_makefile_install("${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/")
|
|
|
|
#Install the module files
|
|
vcpkg_build_qmake(TARGETS install SKIP_MAKEFILES BUILD_LOGNAME install)
|
|
|
|
qt_fix_cmake(${CURRENT_PACKAGES_DIR} ${PORT})
|
|
|
|
#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)
|
|
|
|
foreach(_buildname ${BUILDTYPES})
|
|
set(CURRENT_BUILD_PACKAGE_DIR "${CURRENT_PACKAGES_DIR}${_path_suffix_${_buildname}}")
|
|
#Fix PRL files
|
|
file(GLOB_RECURSE PRL_FILES "${CURRENT_BUILD_PACKAGE_DIR}/lib/*.prl" "${CURRENT_PACKAGES_DIR}/tools/qt5${_path_suffix_${_buildname}}/lib/*.prl"
|
|
"${CURRENT_PACKAGES_DIR}/tools/qt5${_path_suffix_${_buildname}}/mkspecs/*.pri")
|
|
qt_fix_prl("${CURRENT_BUILD_PACKAGE_DIR}" "${PRL_FILES}")
|
|
|
|
# This makes it impossible to use the build tools in any meaningful way. qt5 assumes they are all in one folder!
|
|
# So does the Qt VS Plugin which even assumes all of the in a bin folder
|
|
#Move tools to the correct directory
|
|
#if(EXISTS ${CURRENT_BUILD_PACKAGE_DIR}/tools/qt5)
|
|
# file(RENAME ${CURRENT_BUILD_PACKAGE_DIR}/tools/qt5 ${CURRENT_PACKAGES_DIR}/tools/${PORT})
|
|
#endif()
|
|
|
|
# Move executables in bin to tools
|
|
# This is ok since those are not build tools.
|
|
file(GLOB PACKAGE_EXE ${CURRENT_BUILD_PACKAGE_DIR}/bin/*.exe)
|
|
if(PACKAGE_EXE)
|
|
file(INSTALL ${PACKAGE_EXE} DESTINATION "${CURRENT_BUILD_PACKAGE_DIR}/tools/${PORT}")
|
|
file(REMOVE ${PACKAGE_EXE})
|
|
foreach(_exe ${PACKAGE_EXE})
|
|
string(REPLACE ".exe" ".pdb" _prb_file ${_exe})
|
|
if(EXISTS ${_prb_file})
|
|
file(INSTALL ${_prb_file} DESTINATION "${CURRENT_BUILD_PACKAGE_DIR}/tools/${PORT}")
|
|
file(REMOVE ${_prb_file})
|
|
endif()
|
|
endforeach()
|
|
endif()
|
|
|
|
#cleanup empty folders
|
|
file(GLOB PACKAGE_LIBS "${CURRENT_BUILD_PACKAGE_DIR}/lib/*")
|
|
if(NOT PACKAGE_LIBS)
|
|
file(REMOVE_RECURSE "${CURRENT_BUILD_PACKAGE_DIR}/lib")
|
|
endif()
|
|
|
|
file(GLOB PACKAGE_BINS "${CURRENT_BUILD_PACKAGE_DIR}/bin/*")
|
|
if(NOT PACKAGE_BINS)
|
|
file(REMOVE_RECURSE "${CURRENT_BUILD_PACKAGE_DIR}/bin")
|
|
endif()
|
|
endforeach()
|
|
if(EXISTS "${CURRENT_PACKAGES_DIR}/tools/qt5/bin")
|
|
file(COPY "${CURRENT_PACKAGES_DIR}/tools/qt5/bin" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
|
|
|
|
set(CURRENT_INSTALLED_DIR_BACKUP "${CURRENT_INSTALLED_DIR}")
|
|
set(CURRENT_INSTALLED_DIR "./../../.." ) # Making the qt.conf relative and not absolute
|
|
configure_file(${CURRENT_INSTALLED_DIR_BACKUP}/tools/qt5/qt_release.conf ${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/qt.conf) # This makes the tools at least useable for release
|
|
set(CURRENT_INSTALLED_DIR "${CURRENT_INSTALLED_DIR_BACKUP}")
|
|
|
|
vcpkg_copy_tool_dependencies("${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin")
|
|
if(VCPKG_TARGET_IS_WINDOWS AND VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
|
|
file(GLOB_RECURSE DLL_DEPS_AVAIL "${CURRENT_INSTALLED_DIR}/tools/qt5/bin/*.dll")
|
|
string(REPLACE "${CURRENT_INSTALLED_DIR}/tools/qt5/bin/" "" DLL_DEPS_AVAIL "${DLL_DEPS_AVAIL}")
|
|
file(GLOB_RECURSE DLL_DEPS_NEEDED "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/*.dll")
|
|
string(REPLACE "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/" "" DLL_DEPS_NEEDED "${DLL_DEPS_NEEDED}")
|
|
if(DLL_DEPS_AVAIL AND DLL_DEPS_NEEDED)
|
|
list(REMOVE_ITEM DLL_DEPS_NEEDED ${DLL_DEPS_AVAIL})
|
|
endif()
|
|
foreach(dll_dep ${DLL_DEPS_NEEDED})
|
|
string(REGEX REPLACE "[^/]+$" "" dll_subpath "${dll_dep}")
|
|
file(COPY "${CURRENT_PACKAGES_DIR}/tools/${PORT}/bin/${dll_dep}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/qt5/bin/${dll_subpath}")
|
|
endforeach()
|
|
endif()
|
|
endif()
|
|
endfunction() |