diff options
| author | Barath Kannan <barathsotd@gmail.com> | 2016-10-25 02:06:27 +1100 |
|---|---|---|
| committer | Barath Kannan <barathsotd@gmail.com> | 2016-10-25 02:06:27 +1100 |
| commit | 0af6ca8123b280f082ce6286700ee1a6e5b9a0f2 (patch) | |
| tree | c561566d4e51b3199aff361658093049b51de4ca | |
| parent | 7625d837d52aa218526d02a98d1748e479b994a1 (diff) | |
| download | vcpkg-0af6ca8123b280f082ce6286700ee1a6e5b9a0f2.tar.gz vcpkg-0af6ca8123b280f082ce6286700ee1a6e5b9a0f2.zip | |
add qt5 support, working install but static linkage with RT needs to be implemented
| -rw-r--r-- | ports/qt5/CONTROL | 4 | ||||
| -rw-r--r-- | ports/qt5/portfile.cmake | 107 | ||||
| -rw-r--r-- | scripts/cmake/vcpkg_find_acquire_program.cmake | 6 |
3 files changed, 117 insertions, 0 deletions
diff --git a/ports/qt5/CONTROL b/ports/qt5/CONTROL new file mode 100644 index 000000000..6afd3e5c5 --- /dev/null +++ b/ports/qt5/CONTROL @@ -0,0 +1,4 @@ +Source: qt5 +Version: 5.7 +Build-Depends: +Description: Qt5 base components. diff --git a/ports/qt5/portfile.cmake b/ports/qt5/portfile.cmake new file mode 100644 index 000000000..53abe8e02 --- /dev/null +++ b/ports/qt5/portfile.cmake @@ -0,0 +1,107 @@ +include(vcpkg_common_functions) +set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/qt-5.7.0) +set(ENV{QMAKESPEC} win32-msvc2015) +set(OUTPUT_PATH ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}) +set(ENV{QTDIR} ${OUTPUT_PATH}/qtbase) +set(ENV{PATH} "${OUTPUT_PATH}/qtbase/bin;$ENV{PATH}") + +find_program(NMAKE nmake) +vcpkg_find_acquire_program(JOM) +get_filename_component(JOM_EXE_PATH ${JOM} DIRECTORY) +set(ENV{PATH} "${JOM_EXE_PATH};$ENV{PATH}") + +vcpkg_download_distfile(ARCHIVE_FILE + URLS "http://download.qt.io/official_releases/qt/5.7/5.7.0/single/qt-everywhere-opensource-src-5.7.0.7z" + FILENAME "qt-5.7.0.7z" + SHA512 96f0b6bd221be0ed819bc9b52eefcee1774945e25b89169fa927148c1c4a2d85faf63b1d09ef5067573bda9bbf1270fce5f181d086bfe585ddbad4cd77f7f418 +) +vcpkg_extract_source_archive(${ARCHIVE_FILE}) +if (EXISTS ${CURRENT_BUILDTREES_DIR}/src/qt-everywhere-opensource-src-5.7.0) + file(RENAME ${CURRENT_BUILDTREES_DIR}/src/qt-everywhere-opensource-src-5.7.0 ${CURRENT_BUILDTREES_DIR}/src/qt-5.7.0) +endif() + +file(MAKE_DIRECTORY ${OUTPUT_PATH}) +message(STATUS "Configuring ${TARGET_TRIPLET}") +vcpkg_execute_required_process( + COMMAND "${SOURCE_PATH}/configure.bat" + -confirm-license -opensource + -debug-and-release -force-debug-info + -nomake examples -nomake tests -skip webengine + -prefix "${CURRENT_PACKAGES_DIR}" + WORKING_DIRECTORY ${OUTPUT_PATH} + LOGNAME configure-${TARGET_TRIPLET} +) +message(STATUS "Configure ${TARGET_TRIPLET} done") + +message(STATUS "Building ${TARGET_TRIPLET}") +vcpkg_execute_required_process( + COMMAND ${JOM} + WORKING_DIRECTORY ${OUTPUT_PATH} + LOGNAME build-${TARGET_TRIPLET} +) +message(STATUS "Build ${TARGET_TRIPLET} done") + +message(STATUS "Installing ${TARGET_TRIPLET}") +vcpkg_execute_required_process( + COMMAND ${NMAKE} install + WORKING_DIRECTORY ${OUTPUT_PATH} + LOGNAME install-${TARGET_TRIPLET} +) +message(STATUS "Install ${TARGET_TRIPLET} done") + +message(STATUS "Packaging ${TARGET_TRIPLET}") +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug) +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/lib) +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/debug/bin) +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share) +file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake) + +file(INSTALL ${CURRENT_PACKAGES_DIR}/bin + DESTINATION ${CURRENT_PACKAGES_DIR}/debug + FILES_MATCHING PATTERN "*d.dll" +) +file(INSTALL ${CURRENT_PACKAGES_DIR}/bin + DESTINATION ${CURRENT_PACKAGES_DIR}/debug + FILES_MATCHING PATTERN "*d.pdb" +) +file(GLOB DEBUG_BIN_FILES "${CURRENT_PACKAGES_DIR}/bin/*d.dll") +file(REMOVE ${DEBUG_BIN_FILES}) +file(GLOB DEBUG_BIN_FILES "${CURRENT_PACKAGES_DIR}/bin/*d.pdb") +file(REMOVE ${DEBUG_BIN_FILES}) +file(RENAME ${CURRENT_PACKAGES_DIR}/debug/bin/Qt5Gamepad.dll ${CURRENT_PACKAGES_DIR}/bin/Qt5Gamepad.dll) + +file(INSTALL ${CURRENT_PACKAGES_DIR}/lib + DESTINATION ${CURRENT_PACKAGES_DIR}/debug + FILES_MATCHING PATTERN "*d.lib" +) +file(INSTALL ${CURRENT_PACKAGES_DIR}/lib + DESTINATION ${CURRENT_PACKAGES_DIR}/debug + FILES_MATCHING PATTERN "*d.prl" +) +file(INSTALL ${CURRENT_PACKAGES_DIR}/lib + DESTINATION ${CURRENT_PACKAGES_DIR}/debug + FILES_MATCHING PATTERN "*d.pdb" +) +file(GLOB DEBUG_LIB_FILES "${CURRENT_PACKAGES_DIR}/lib/*d.lib") +file(REMOVE ${DEBUG_LIB_FILES}) +file(GLOB DEBUG_LIB_FILES "${CURRENT_PACKAGES_DIR}/lib/*d.prl") +file(REMOVE ${DEBUG_LIB_FILES}) +file(GLOB DEBUG_LIB_FILES "${CURRENT_PACKAGES_DIR}/lib/*d.pdb") +file(REMOVE ${DEBUG_LIB_FILES}) +file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/Qt5Gamepad.lib ${CURRENT_PACKAGES_DIR}/lib/Qt5Gamepad.lib) +file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/Qt5Gamepad.prl ${CURRENT_PACKAGES_DIR}/lib/Qt5Gamepad.prl) +file(GLOB BINARY_TOOLS "${CURRENT_PACKAGES_DIR}/bin/*.exe") +file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/tools) +file(INSTALL ${BINARY_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools) +FILE(REMOVE ${BINARY_TOOLS}) + +set(SHARE_PATH ${CURRENT_PACKAGES_DIR}/share/qt5) +file(MAKE_DIRECTORY ${SHARE_PATH}) +file(INSTALL ${SOURCE_PATH}/LICENSE.LGPLv3 DESTINATION ${SHARE_PATH} RENAME copyright) +file(RENAME ${CURRENT_PACKAGES_DIR}/doc ${SHARE_PATH}/doc) +file(RENAME ${CURRENT_PACKAGES_DIR}/mkspecs ${SHARE_PATH}/mkspecs) +file(RENAME ${CURRENT_PACKAGES_DIR}/phrasebooks ${SHARE_PATH}/phrasebooks) +file(RENAME ${CURRENT_PACKAGES_DIR}/plugins ${SHARE_PATH}/plugins) +file(RENAME ${CURRENT_PACKAGES_DIR}/qml ${SHARE_PATH}/qml) +file(RENAME ${CURRENT_PACKAGES_DIR}/translations ${SHARE_PATH}/translations) +vcpkg_copy_pdbs() diff --git a/scripts/cmake/vcpkg_find_acquire_program.cmake b/scripts/cmake/vcpkg_find_acquire_program.cmake index 8f974240f..230c4b1e7 100644 --- a/scripts/cmake/vcpkg_find_acquire_program.cmake +++ b/scripts/cmake/vcpkg_find_acquire_program.cmake @@ -24,6 +24,12 @@ function(vcpkg_find_acquire_program VAR) set(ARCHIVE "yasm.exe") set(NOEXTRACT ON) set(HASH 850b26be5bbbdaeaf45ac39dd27f69f1a85e600c35afbd16b9f621396b3c7a19863ea3ff316b025b578fce0a8280eef2203306a2b3e46ee1389abb65313fb720) +elseif(VAR MATCHES "JOM") +set(PROGNAME jom) +set(PATHS ${DOWNLOADS}/tools/jom/jom-1.1.1) +set(URL "http://download.qt.io/official_releases/jom/jom_1_1_1.zip") +set(ARCHIVE "jom_1_1_1.zip") +set(HASH 850b26be5bbbdaeaf45ac39dd27f69f1a85e600c35afbd16b9f621396b3c7a19863ea3ff316b025b578fce0a8280eef2203306a2b3e46ee1389abb65313fb720) else() message(FATAL "unknown tool ${VAR} -- unable to acquire.") endif() |
