aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarath Kannan <barathsotd@gmail.com>2016-10-25 02:06:27 +1100
committerBarath Kannan <barathsotd@gmail.com>2016-10-25 02:06:27 +1100
commit0af6ca8123b280f082ce6286700ee1a6e5b9a0f2 (patch)
treec561566d4e51b3199aff361658093049b51de4ca
parent7625d837d52aa218526d02a98d1748e479b994a1 (diff)
downloadvcpkg-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/CONTROL4
-rw-r--r--ports/qt5/portfile.cmake107
-rw-r--r--scripts/cmake/vcpkg_find_acquire_program.cmake6
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()