diff options
| author | Maurice Kalinowski <mauricek@users.noreply.github.com> | 2019-04-15 14:00:14 +0200 |
|---|---|---|
| committer | Griffin Downs <35574547+grdowns@users.noreply.github.com> | 2019-04-15 05:00:14 -0700 |
| commit | 60db384541ad9e0c65a8219d9628140692dc600a (patch) | |
| tree | b069732c8ea088600ae8b5a9e4843f583422e6a5 | |
| parent | e23e54ae4b6284da1a44cf29a7c255a0648e701d (diff) | |
| download | vcpkg-60db384541ad9e0c65a8219d9628140692dc600a.tar.gz vcpkg-60db384541ad9e0c65a8219d9628140692dc600a.zip | |
Fix PATH modification on Linux/Mac (#6083)
* Fix lineendings
Some files were checked in as always CRLF.
* [qt5-base] Fix path separators on non Windows (fixes #5246)
Use vcpkg_add_to_path instead of cmake environment manipulation.
| -rw-r--r-- | ports/qt5-base/CONTROL | 8 | ||||
| -rw-r--r-- | ports/qt5-base/configure_qt.cmake | 2 | ||||
| -rw-r--r-- | ports/qt5-base/install_qt.cmake | 9 | ||||
| -rw-r--r-- | ports/qt5-base/portfile.cmake | 446 | ||||
| -rw-r--r-- | ports/qt5-base/vcpkg-cmake-wrapper.cmake | 132 |
5 files changed, 299 insertions, 298 deletions
diff --git a/ports/qt5-base/CONTROL b/ports/qt5-base/CONTROL index 7574d011d..8bdf69050 100644 --- a/ports/qt5-base/CONTROL +++ b/ports/qt5-base/CONTROL @@ -1,4 +1,4 @@ -Source: qt5-base
-Version: 5.12.1-4
-Description: Qt5 Application Framework Base Module. Includes Core, GUI, Widgets, Networking, SQL, Concurrent and other essential qt components.
-Build-Depends: zlib, libjpeg-turbo, libpng, freetype, pcre2, harfbuzz, sqlite3, libpq, double-conversion, openssl
+Source: qt5-base +Version: 5.12.1-5 +Description: Qt5 Application Framework Base Module. Includes Core, GUI, Widgets, Networking, SQL, Concurrent and other essential qt components. +Build-Depends: zlib, libjpeg-turbo, libpng, freetype, pcre2, harfbuzz, sqlite3, libpq, double-conversion, openssl diff --git a/ports/qt5-base/configure_qt.cmake b/ports/qt5-base/configure_qt.cmake index 332c003ec..5d72fb8aa 100644 --- a/ports/qt5-base/configure_qt.cmake +++ b/ports/qt5-base/configure_qt.cmake @@ -9,7 +9,7 @@ function(configure_qt) get_filename_component(PERL_EXE_PATH ${PERL} DIRECTORY) file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg) - set(ENV{PATH} "$ENV{PATH};${PERL_EXE_PATH}") + vcpkg_add_to_path("${PERL_EXE_PATH}") if(VCPKG_LIBRARY_LINKAGE STREQUAL static) list(APPEND _csc_OPTIONS "-static") diff --git a/ports/qt5-base/install_qt.cmake b/ports/qt5-base/install_qt.cmake index 482802f38..443a6b548 100644 --- a/ports/qt5-base/install_qt.cmake +++ b/ports/qt5-base/install_qt.cmake @@ -25,11 +25,11 @@ function(install_qt) endif() vcpkg_find_acquire_program(PYTHON3) get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY) - set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}") + vcpkg_add_to_path(PREPEND "${PYTHON3_EXE_PATH}") set(_path "$ENV{PATH}") message(STATUS "Package ${TARGET_TRIPLET}-dbg") - set(ENV{PATH} "${CURRENT_INSTALLED_DIR}/debug/bin;${_path}") + vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/debug/bin") vcpkg_execute_required_process( COMMAND ${INVOKE} WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg @@ -43,7 +43,8 @@ function(install_qt) message(STATUS "Package ${TARGET_TRIPLET}-dbg done") message(STATUS "Package ${TARGET_TRIPLET}-rel") - set(ENV{PATH} "${CURRENT_INSTALLED_DIR}/bin;${_path}") + set(ENV{PATH} "${_path}") + vcpkg_add_to_path(PREPEND "${CURRENT_INSTALLED_DIR}/bin") vcpkg_execute_required_process( COMMAND ${INVOKE} WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel @@ -58,4 +59,4 @@ function(install_qt) set(ENV{PATH} "${_path}") -endfunction()
\ No newline at end of file +endfunction() diff --git a/ports/qt5-base/portfile.cmake b/ports/qt5-base/portfile.cmake index 4b8869196..87019ead6 100644 --- a/ports/qt5-base/portfile.cmake +++ b/ports/qt5-base/portfile.cmake @@ -1,224 +1,224 @@ -include(vcpkg_common_functions)
-
-string(LENGTH "${CURRENT_BUILDTREES_DIR}" BUILDTREES_PATH_LENGTH)
-if(BUILDTREES_PATH_LENGTH GREATER 37 AND CMAKE_HOST_WIN32)
- message(WARNING "Qt5's buildsystem uses very long paths and may fail on your system.\n"
- "We recommend moving vcpkg to a short path such as 'C:\\src\\vcpkg' or using the subst command."
- )
-endif()
-
-list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR})
-include(configure_qt)
-include(install_qt)
-
-set(MAJOR_MINOR 5.12)
-set(FULL_VERSION ${MAJOR_MINOR}.1)
-set(ARCHIVE_NAME "qtbase-everywhere-src-${FULL_VERSION}.tar.xz")
-
-vcpkg_download_distfile(ARCHIVE_FILE
- URLS "http://download.qt.io/official_releases/qt/${MAJOR_MINOR}/${FULL_VERSION}/submodules/${ARCHIVE_NAME}"
- FILENAME ${ARCHIVE_NAME}
- SHA512 51494d8947ae16ab7aee22aca156035718f5a700737547de59b4d61d3919c00f4de858111c8928a66c0385604623d847d231892d964d53924a8c97b6e2bedf25
-)
-vcpkg_extract_source_archive_ex(
- OUT_SOURCE_PATH SOURCE_PATH
- ARCHIVE "${ARCHIVE_FILE}"
- REF ${FULL_VERSION}
- PATCHES
- fix-gui-configure-json.patch
-)
-
-# Remove vendored dependencies to ensure they are not picked up by the build
-foreach(DEPENDENCY freetype zlib harfbuzzng libjpeg libpng double-conversion sqlite)
- if(EXISTS ${SOURCE_PATH}/src/3rdparty/${DEPENDENCY})
- file(REMOVE_RECURSE ${SOURCE_PATH}/src/3rdparty/${DEPENDENCY})
- endif()
-endforeach()
-
-file(REMOVE_RECURSE ${SOURCE_PATH}/include/QtZlib)
-
-# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
-set(ENV{_CL_} "/utf-8")
-
-set(CORE_OPTIONS
- -confirm-license
- -opensource
- -system-zlib
- -system-libjpeg
- -system-libpng
- -system-freetype
- -system-pcre
- -system-doubleconversion
- -system-sqlite
- -system-harfbuzz
- -no-fontconfig
- -nomake examples
- -nomake tests
-)
-
-if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
- list(APPEND CORE_OPTIONS
- -static
- )
-endif()
-
-if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore")
- set(PLATFORM "win32-msvc")
-
- configure_qt(
- SOURCE_PATH ${SOURCE_PATH}
- PLATFORM ${PLATFORM}
- OPTIONS
- ${CORE_OPTIONS}
- -mp
- -opengl desktop # other options are "-no-opengl", "-opengl angle", and "-opengl desktop"
- OPTIONS_RELEASE
- LIBJPEG_LIBS="-ljpeg"
- ZLIB_LIBS="-lzlib"
- LIBPNG_LIBS="-llibpng16"
- PSQL_LIBS="-llibpq"
- PCRE2_LIBS="-lpcre2-16"
- FREETYPE_LIBS="-lfreetype"
- OPTIONS_DEBUG
- LIBJPEG_LIBS="-ljpegd"
- ZLIB_LIBS="-lzlibd"
- LIBPNG_LIBS="-llibpng16d"
- PSQL_LIBS="-llibpqd"
- PCRE2_LIBS="-lpcre2-16d"
- FREETYPE_LIBS="-lfreetyped"
- )
-
-elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
- configure_qt(
- SOURCE_PATH ${SOURCE_PATH}
- PLATFORM "linux-g++"
- OPTIONS
- ${CORE_OPTIONS}
- OPTIONS_RELEASE
- "LIBJPEG_LIBS=${CURRENT_INSTALLED_DIR}/lib/libjpeg.a"
- "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/lib/libpng16.a"
- "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/lib/libz.a"
- "ZLIB_LIBS=${CURRENT_INSTALLED_DIR}/lib/libz.a"
- "LIBPNG_LIBS=${CURRENT_INSTALLED_DIR}/lib/libpng16.a"
- "FREETYPE_LIBS=${CURRENT_INSTALLED_DIR}/lib/libfreetype.a"
- "PSQL_LIBS=${CURRENT_INSTALLED_DIR}/lib/libpq.a ${CURRENT_INSTALLED_DIR}/lib/libssl.a ${CURRENT_INSTALLED_DIR}/lib/libcrypto.a -ldl -lpthread"
- "SQLITE_LIBS=${CURRENT_INSTALLED_DIR}/lib/libsqlite3.a -ldl -lpthread"
- OPTIONS_DEBUG
- "LIBJPEG_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libjpeg.a"
- "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.a"
- "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/debug/lib/libz.a"
- "ZLIB_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libz.a"
- "LIBPNG_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.a"
- "FREETYPE_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libfreetyped.a"
- "PSQL_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libpqd.a ${CURRENT_INSTALLED_DIR}/debug/lib/libssl.a ${CURRENT_INSTALLED_DIR}/debug/lib/libcrypto.a -ldl -lpthread"
- "SQLITE_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libsqlite3.a -ldl -lpthread"
- )
-
-elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin")
-configure_qt(
- SOURCE_PATH ${SOURCE_PATH}
- PLATFORM "macx-clang"
- OPTIONS
- ${CORE_OPTIONS}
- OPTIONS_RELEASE
- "LIBJPEG_LIBS=${CURRENT_INSTALLED_DIR}/lib/libjpeg.a"
- "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/lib/libpng16.a"
- "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/lib/libz.a"
- "ZLIB_LIBS=${CURRENT_INSTALLED_DIR}/lib/libz.a"
- "LIBPNG_LIBS=${CURRENT_INSTALLED_DIR}/lib/libpng16.a"
- "FREETYPE_LIBS=${CURRENT_INSTALLED_DIR}/lib/libfreetype.a"
- "PSQL_LIBS=${CURRENT_INSTALLED_DIR}/lib/libpq.a ${CURRENT_INSTALLED_DIR}/lib/libssl.a ${CURRENT_INSTALLED_DIR}/lib/libcrypto.a -ldl -lpthread"
- "SQLITE_LIBS=${CURRENT_INSTALLED_DIR}/lib/libsqlite3.a -ldl -lpthread"
- "HARFBUZZ_LIBS=${CURRENT_INSTALLED_DIR}/lib/libharfbuzz.a -framework ApplicationServices"
- OPTIONS_DEBUG
- "LIBJPEG_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libjpeg.a"
- "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.a"
- "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/debug/lib/libz.a"
- "ZLIB_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libz.a"
- "LIBPNG_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.a"
- "FREETYPE_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libfreetyped.a"
- "PSQL_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libpqd.a ${CURRENT_INSTALLED_DIR}/debug/lib/libssl.a ${CURRENT_INSTALLED_DIR}/debug/lib/libcrypto.a -ldl -lpthread"
- "SQLITE_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libsqlite3.a -ldl -lpthread"
- "HARFBUZZ_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libharfbuzz.a -framework ApplicationServices"
-)
-endif()
-
-if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin")
- install_qt(DISABLE_PARALLEL) # prevent race condition on Mac
-else()
- install_qt()
-endif()
-
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
-
-file(GLOB BINARY_TOOLS "${CURRENT_PACKAGES_DIR}/bin/*")
-list(FILTER BINARY_TOOLS EXCLUDE REGEX "\\.dll\$")
-file(INSTALL ${BINARY_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/qt5)
-file(REMOVE ${BINARY_TOOLS})
-file(GLOB BINARY_TOOLS "${CURRENT_PACKAGES_DIR}/debug/bin/*")
-list(FILTER BINARY_TOOLS EXCLUDE REGEX "\\.dll\$")
-file(REMOVE ${BINARY_TOOLS})
-if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
- file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
-endif()
-
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/qt_debug.conf ${CMAKE_CURRENT_LIST_DIR}/qt_release.conf DESTINATION ${CURRENT_PACKAGES_DIR}/tools/qt5)
-
-vcpkg_execute_required_process(
- COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
- WORKING_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/cmake
- LOGNAME fix-cmake
-)
-
-vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT})
-vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/qt5)
-
-if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/qtmain.lib)
- #---------------------------------------------------------------------------
- # 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)
-
- #---------------------------------------------------------------------------
- # Qt5Bootstrap: only used to bootstrap qmake dependencies
- #---------------------------------------------------------------------------
- file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/Qt5Bootstrap.lib)
- file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/Qt5Bootstrap.prl)
- file(RENAME ${CURRENT_PACKAGES_DIR}/lib/Qt5Bootstrap.lib ${CURRENT_PACKAGES_DIR}/tools/qt5/Qt5Bootstrap.lib)
- file(RENAME ${CURRENT_PACKAGES_DIR}/lib/Qt5Bootstrap.prl ${CURRENT_PACKAGES_DIR}/tools/qt5/Qt5Bootstrap.prl)
- #---------------------------------------------------------------------------
-endif()
-
-file(GLOB_RECURSE PRL_FILES "${CURRENT_PACKAGES_DIR}/lib/*.prl" "${CURRENT_PACKAGES_DIR}/debug/lib/*.prl")
-file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}/lib" CMAKE_RELEASE_LIB_PATH)
-file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib" CMAKE_DEBUG_LIB_PATH)
-foreach(PRL_FILE IN LISTS PRL_FILES)
- file(READ "${PRL_FILE}" _contents)
- string(REPLACE "${CMAKE_RELEASE_LIB_PATH}" "\$\$[QT_INSTALL_LIBS]" _contents "${_contents}")
- string(REPLACE "${CMAKE_DEBUG_LIB_PATH}" "\$\$[QT_INSTALL_LIBS]" _contents "${_contents}")
- file(WRITE "${PRL_FILE}" "${_contents}")
-endforeach()
-
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/qtdeploy.ps1 DESTINATION ${CURRENT_PACKAGES_DIR}/plugins)
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/qtdeploy.ps1 DESTINATION ${CURRENT_PACKAGES_DIR}/debug/plugins)
-
-file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5core)
-
-file(INSTALL ${SOURCE_PATH}/LICENSE.LGPLv3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright)
+include(vcpkg_common_functions) + +string(LENGTH "${CURRENT_BUILDTREES_DIR}" BUILDTREES_PATH_LENGTH) +if(BUILDTREES_PATH_LENGTH GREATER 37 AND CMAKE_HOST_WIN32) + message(WARNING "Qt5's buildsystem uses very long paths and may fail on your system.\n" + "We recommend moving vcpkg to a short path such as 'C:\\src\\vcpkg' or using the subst command." + ) +endif() + +list(APPEND CMAKE_MODULE_PATH ${CMAKE_CURRENT_LIST_DIR}) +include(configure_qt) +include(install_qt) + +set(MAJOR_MINOR 5.12) +set(FULL_VERSION ${MAJOR_MINOR}.1) +set(ARCHIVE_NAME "qtbase-everywhere-src-${FULL_VERSION}.tar.xz") + +vcpkg_download_distfile(ARCHIVE_FILE + URLS "http://download.qt.io/official_releases/qt/${MAJOR_MINOR}/${FULL_VERSION}/submodules/${ARCHIVE_NAME}" + FILENAME ${ARCHIVE_NAME} + SHA512 51494d8947ae16ab7aee22aca156035718f5a700737547de59b4d61d3919c00f4de858111c8928a66c0385604623d847d231892d964d53924a8c97b6e2bedf25 +) +vcpkg_extract_source_archive_ex( + OUT_SOURCE_PATH SOURCE_PATH + ARCHIVE "${ARCHIVE_FILE}" + REF ${FULL_VERSION} + PATCHES + fix-gui-configure-json.patch +) + +# Remove vendored dependencies to ensure they are not picked up by the build +foreach(DEPENDENCY freetype zlib harfbuzzng libjpeg libpng double-conversion sqlite) + if(EXISTS ${SOURCE_PATH}/src/3rdparty/${DEPENDENCY}) + file(REMOVE_RECURSE ${SOURCE_PATH}/src/3rdparty/${DEPENDENCY}) + endif() +endforeach() + +file(REMOVE_RECURSE ${SOURCE_PATH}/include/QtZlib) + +# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings +set(ENV{_CL_} "/utf-8") + +set(CORE_OPTIONS + -confirm-license + -opensource + -system-zlib + -system-libjpeg + -system-libpng + -system-freetype + -system-pcre + -system-doubleconversion + -system-sqlite + -system-harfbuzz + -no-fontconfig + -nomake examples + -nomake tests +) + +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + list(APPEND CORE_OPTIONS + -static + ) +endif() + +if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore") + set(PLATFORM "win32-msvc") + + configure_qt( + SOURCE_PATH ${SOURCE_PATH} + PLATFORM ${PLATFORM} + OPTIONS + ${CORE_OPTIONS} + -mp + -opengl desktop # other options are "-no-opengl", "-opengl angle", and "-opengl desktop" + OPTIONS_RELEASE + LIBJPEG_LIBS="-ljpeg" + ZLIB_LIBS="-lzlib" + LIBPNG_LIBS="-llibpng16" + PSQL_LIBS="-llibpq" + PCRE2_LIBS="-lpcre2-16" + FREETYPE_LIBS="-lfreetype" + OPTIONS_DEBUG + LIBJPEG_LIBS="-ljpegd" + ZLIB_LIBS="-lzlibd" + LIBPNG_LIBS="-llibpng16d" + PSQL_LIBS="-llibpqd" + PCRE2_LIBS="-lpcre2-16d" + FREETYPE_LIBS="-lfreetyped" + ) + +elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux") + configure_qt( + SOURCE_PATH ${SOURCE_PATH} + PLATFORM "linux-g++" + OPTIONS + ${CORE_OPTIONS} + OPTIONS_RELEASE + "LIBJPEG_LIBS=${CURRENT_INSTALLED_DIR}/lib/libjpeg.a" + "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/lib/libpng16.a" + "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/lib/libz.a" + "ZLIB_LIBS=${CURRENT_INSTALLED_DIR}/lib/libz.a" + "LIBPNG_LIBS=${CURRENT_INSTALLED_DIR}/lib/libpng16.a" + "FREETYPE_LIBS=${CURRENT_INSTALLED_DIR}/lib/libfreetype.a" + "PSQL_LIBS=${CURRENT_INSTALLED_DIR}/lib/libpq.a ${CURRENT_INSTALLED_DIR}/lib/libssl.a ${CURRENT_INSTALLED_DIR}/lib/libcrypto.a -ldl -lpthread" + "SQLITE_LIBS=${CURRENT_INSTALLED_DIR}/lib/libsqlite3.a -ldl -lpthread" + OPTIONS_DEBUG + "LIBJPEG_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libjpeg.a" + "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.a" + "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/debug/lib/libz.a" + "ZLIB_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libz.a" + "LIBPNG_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.a" + "FREETYPE_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libfreetyped.a" + "PSQL_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libpqd.a ${CURRENT_INSTALLED_DIR}/debug/lib/libssl.a ${CURRENT_INSTALLED_DIR}/debug/lib/libcrypto.a -ldl -lpthread" + "SQLITE_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libsqlite3.a -ldl -lpthread" + ) + +elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin") +configure_qt( + SOURCE_PATH ${SOURCE_PATH} + PLATFORM "macx-clang" + OPTIONS + ${CORE_OPTIONS} + OPTIONS_RELEASE + "LIBJPEG_LIBS=${CURRENT_INSTALLED_DIR}/lib/libjpeg.a" + "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/lib/libpng16.a" + "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/lib/libz.a" + "ZLIB_LIBS=${CURRENT_INSTALLED_DIR}/lib/libz.a" + "LIBPNG_LIBS=${CURRENT_INSTALLED_DIR}/lib/libpng16.a" + "FREETYPE_LIBS=${CURRENT_INSTALLED_DIR}/lib/libfreetype.a" + "PSQL_LIBS=${CURRENT_INSTALLED_DIR}/lib/libpq.a ${CURRENT_INSTALLED_DIR}/lib/libssl.a ${CURRENT_INSTALLED_DIR}/lib/libcrypto.a -ldl -lpthread" + "SQLITE_LIBS=${CURRENT_INSTALLED_DIR}/lib/libsqlite3.a -ldl -lpthread" + "HARFBUZZ_LIBS=${CURRENT_INSTALLED_DIR}/lib/libharfbuzz.a -framework ApplicationServices" + OPTIONS_DEBUG + "LIBJPEG_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libjpeg.a" + "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.a" + "QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/debug/lib/libz.a" + "ZLIB_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libz.a" + "LIBPNG_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libpng16d.a" + "FREETYPE_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libfreetyped.a" + "PSQL_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libpqd.a ${CURRENT_INSTALLED_DIR}/debug/lib/libssl.a ${CURRENT_INSTALLED_DIR}/debug/lib/libcrypto.a -ldl -lpthread" + "SQLITE_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libsqlite3.a -ldl -lpthread" + "HARFBUZZ_LIBS=${CURRENT_INSTALLED_DIR}/debug/lib/libharfbuzz.a -framework ApplicationServices" +) +endif() + +if(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Darwin") + install_qt(DISABLE_PARALLEL) # prevent race condition on Mac +else() + install_qt() +endif() + +file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake) +file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake) + +file(GLOB BINARY_TOOLS "${CURRENT_PACKAGES_DIR}/bin/*") +list(FILTER BINARY_TOOLS EXCLUDE REGEX "\\.dll\$") +file(INSTALL ${BINARY_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/qt5) +file(REMOVE ${BINARY_TOOLS}) +file(GLOB BINARY_TOOLS "${CURRENT_PACKAGES_DIR}/debug/bin/*") +list(FILTER BINARY_TOOLS EXCLUDE REGEX "\\.dll\$") +file(REMOVE ${BINARY_TOOLS}) +if(VCPKG_LIBRARY_LINKAGE STREQUAL "static") + file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin") +endif() + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/qt_debug.conf ${CMAKE_CURRENT_LIST_DIR}/qt_release.conf DESTINATION ${CURRENT_PACKAGES_DIR}/tools/qt5) + +vcpkg_execute_required_process( + COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py + WORKING_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/cmake + LOGNAME fix-cmake +) + +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/${PORT}) +vcpkg_copy_tool_dependencies(${CURRENT_PACKAGES_DIR}/tools/qt5) + +if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/qtmain.lib) + #--------------------------------------------------------------------------- + # 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) + + #--------------------------------------------------------------------------- + # Qt5Bootstrap: only used to bootstrap qmake dependencies + #--------------------------------------------------------------------------- + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/Qt5Bootstrap.lib) + file(REMOVE ${CURRENT_PACKAGES_DIR}/debug/lib/Qt5Bootstrap.prl) + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/Qt5Bootstrap.lib ${CURRENT_PACKAGES_DIR}/tools/qt5/Qt5Bootstrap.lib) + file(RENAME ${CURRENT_PACKAGES_DIR}/lib/Qt5Bootstrap.prl ${CURRENT_PACKAGES_DIR}/tools/qt5/Qt5Bootstrap.prl) + #--------------------------------------------------------------------------- +endif() + +file(GLOB_RECURSE PRL_FILES "${CURRENT_PACKAGES_DIR}/lib/*.prl" "${CURRENT_PACKAGES_DIR}/debug/lib/*.prl") +file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}/lib" CMAKE_RELEASE_LIB_PATH) +file(TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}/debug/lib" CMAKE_DEBUG_LIB_PATH) +foreach(PRL_FILE IN LISTS PRL_FILES) + file(READ "${PRL_FILE}" _contents) + string(REPLACE "${CMAKE_RELEASE_LIB_PATH}" "\$\$[QT_INSTALL_LIBS]" _contents "${_contents}") + string(REPLACE "${CMAKE_DEBUG_LIB_PATH}" "\$\$[QT_INSTALL_LIBS]" _contents "${_contents}") + file(WRITE "${PRL_FILE}" "${_contents}") +endforeach() + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/qtdeploy.ps1 DESTINATION ${CURRENT_PACKAGES_DIR}/plugins) +file(COPY ${CMAKE_CURRENT_LIST_DIR}/qtdeploy.ps1 DESTINATION ${CURRENT_PACKAGES_DIR}/debug/plugins) + +file(COPY ${CMAKE_CURRENT_LIST_DIR}/vcpkg-cmake-wrapper.cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5core) + +file(INSTALL ${SOURCE_PATH}/LICENSE.LGPLv3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT} RENAME copyright) #
\ No newline at end of file diff --git a/ports/qt5-base/vcpkg-cmake-wrapper.cmake b/ports/qt5-base/vcpkg-cmake-wrapper.cmake index 6b5727755..7f3e7df2f 100644 --- a/ports/qt5-base/vcpkg-cmake-wrapper.cmake +++ b/ports/qt5-base/vcpkg-cmake-wrapper.cmake @@ -1,66 +1,66 @@ -_find_package(${ARGS})
-
-function(add_qt_library _target)
- foreach(_lib IN LISTS ARGN)
- find_library(${_lib}_LIBRARY_DEBUG NAMES ${_lib}d PATH_SUFFIXES plugins/platforms)
- find_library(${_lib}_LIBRARY_RELEASE NAMES ${_lib} PATH_SUFFIXES plugins/platforms)
- set_property(TARGET ${_target} APPEND PROPERTY INTERFACE_LINK_LIBRARIES
- \$<\$<NOT:\$<CONFIG:DEBUG>>:${${_lib}_LIBRARY_RELEASE}>\$<\$<CONFIG:DEBUG>:${${_lib}_LIBRARY_DEBUG}>)
- endforeach()
-endfunction()
-
-get_target_property(_target_type Qt5::Core TYPE)
-if("${_target_type}" STREQUAL "STATIC_LIBRARY")
- find_package(ZLIB)
- find_package(JPEG)
- find_package(PNG)
- find_package(Freetype)
- find_package(sqlite3 CONFIG)
- find_package(PostgreSQL MODULE REQUIRED)
- find_package(double-conversion CONFIG)
- find_package(OpenSSL)
- find_package(harfbuzz CONFIG)
-
- set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_LINK_LIBRARIES
- ZLIB::ZLIB JPEG::JPEG PNG::PNG Freetype::Freetype sqlite3 harfbuzz::harfbuzz
- ${PostgreSQL_LIBRARY} double-conversion::double-conversion OpenSSL::SSL OpenSSL::Crypto
- )
-
- add_qt_library(Qt5::Core
- pcre2-16
- Qt5ThemeSupport
- Qt5EventDispatcherSupport
- Qt5PlatformCompositorSupport
- Qt5FontDatabaseSupport)
-
- if(MSVC)
- set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_LINK_LIBRARIES
- Netapi32.lib Ws2_32.lib Mincore.lib Winmm.lib Iphlpapi.lib Wtsapi32.lib Dwmapi.lib Imm32.lib)
-
- add_qt_library(Qt5::Core Qt5WindowsUIAutomationSupport qwindows qdirect2d)
-
- elseif(APPLE)
- set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_LINK_LIBRARIES
- "-weak_framework DiskArbitration" "-weak_framework IOKit" "-weak_framework Foundation" "-weak_framework CoreServices"
- "-weak_framework AppKit" "-weak_framework Security" "-weak_framework ApplicationServices"
- "-weak_framework CoreFoundation" "-weak_framework SystemConfiguration"
- "-weak_framework Carbon"
- "-weak_framework QuartzCore"
- "-weak_framework CoreVideo"
- "-weak_framework Metal"
- "-weak_framework CoreText"
- "-weak_framework ApplicationServices"
- "-weak_framework CoreGraphics"
- "-weak_framework OpenGL"
- "-weak_framework AGL"
- "-weak_framework ImageIO"
- "z" "m"
- cups)
- add_qt_library(Qt5::Core
- Qt5GraphicsSupport
- Qt5ClipboardSupport
- Qt5AccessibilitySupport
- qcocoa)
- endif()
-
-endif()
+_find_package(${ARGS}) + +function(add_qt_library _target) + foreach(_lib IN LISTS ARGN) + find_library(${_lib}_LIBRARY_DEBUG NAMES ${_lib}d PATH_SUFFIXES plugins/platforms) + find_library(${_lib}_LIBRARY_RELEASE NAMES ${_lib} PATH_SUFFIXES plugins/platforms) + set_property(TARGET ${_target} APPEND PROPERTY INTERFACE_LINK_LIBRARIES + \$<\$<NOT:\$<CONFIG:DEBUG>>:${${_lib}_LIBRARY_RELEASE}>\$<\$<CONFIG:DEBUG>:${${_lib}_LIBRARY_DEBUG}>) + endforeach() +endfunction() + +get_target_property(_target_type Qt5::Core TYPE) +if("${_target_type}" STREQUAL "STATIC_LIBRARY") + find_package(ZLIB) + find_package(JPEG) + find_package(PNG) + find_package(Freetype) + find_package(sqlite3 CONFIG) + find_package(PostgreSQL MODULE REQUIRED) + find_package(double-conversion CONFIG) + find_package(OpenSSL) + find_package(harfbuzz CONFIG) + + set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_LINK_LIBRARIES + ZLIB::ZLIB JPEG::JPEG PNG::PNG Freetype::Freetype sqlite3 harfbuzz::harfbuzz + ${PostgreSQL_LIBRARY} double-conversion::double-conversion OpenSSL::SSL OpenSSL::Crypto + ) + + add_qt_library(Qt5::Core + pcre2-16 + Qt5ThemeSupport + Qt5EventDispatcherSupport + Qt5PlatformCompositorSupport + Qt5FontDatabaseSupport) + + if(MSVC) + set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_LINK_LIBRARIES + Netapi32.lib Ws2_32.lib Mincore.lib Winmm.lib Iphlpapi.lib Wtsapi32.lib Dwmapi.lib Imm32.lib) + + add_qt_library(Qt5::Core Qt5WindowsUIAutomationSupport qwindows qdirect2d) + + elseif(APPLE) + set_property(TARGET Qt5::Core APPEND PROPERTY INTERFACE_LINK_LIBRARIES + "-weak_framework DiskArbitration" "-weak_framework IOKit" "-weak_framework Foundation" "-weak_framework CoreServices" + "-weak_framework AppKit" "-weak_framework Security" "-weak_framework ApplicationServices" + "-weak_framework CoreFoundation" "-weak_framework SystemConfiguration" + "-weak_framework Carbon" + "-weak_framework QuartzCore" + "-weak_framework CoreVideo" + "-weak_framework Metal" + "-weak_framework CoreText" + "-weak_framework ApplicationServices" + "-weak_framework CoreGraphics" + "-weak_framework OpenGL" + "-weak_framework AGL" + "-weak_framework ImageIO" + "z" "m" + cups) + add_qt_library(Qt5::Core + Qt5GraphicsSupport + Qt5ClipboardSupport + Qt5AccessibilitySupport + qcocoa) + endif() + +endif() |
