Skip to content

Commit

Permalink
Add Qt5 static missing dependencies, fix mac packages (#5680)
Browse files Browse the repository at this point in the history
* [qt5-macextras] Add qt5-macextras port

* [cutelyst2] Fix install on mac

* [qt5-purchasing] Add missing dependency on qt5-declarative

* [qt5] Ensure we link to required libraries for qt5 static build

* [qscintilla] Fix install on mac

* [libqglviewer] Fix install paths on mac

* [libqglviewer] Fix regressions

* [qscintilla] Fix regressions

* Bump version numbers

* [qt5] restore harfbuzz on osx
  • Loading branch information
Sean Warren authored and Rastaban committed Mar 26, 2019
1 parent 6723709 commit 98ae960
Show file tree
Hide file tree
Showing 13 changed files with 123 additions and 46 deletions.
2 changes: 1 addition & 1 deletion ports/cutelyst2/CONTROL
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Source: cutelyst2
Version: 2.5.2-1
Version: 2.5.2-2
Description: A C++ Web Framework built on top of Qt, using the simple approach of Catalyst (Perl) framework
Build-Depends: qt5-base
6 changes: 1 addition & 5 deletions ports/cutelyst2/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -35,11 +35,7 @@ if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/cutelyst2-plugins/ActionREST.dll)
file(RENAME ${CURRENT_PACKAGES_DIR}/debug/lib/cutelyst2-plugins ${CURRENT_PACKAGES_DIR}/debug/bin/cutelyst2-plugins)
endif()

file(GLOB BINS ${CURRENT_PACKAGES_DIR}/bin/* ${CURRENT_PACKAGES_DIR}/debug/bin/*)
if(NOT BINS)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
endif()

file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/bin ${CURRENT_PACKAGES_DIR}/debug/bin)
file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/include ${CURRENT_PACKAGES_DIR}/debug/share)

# Handle copyright
Expand Down
2 changes: 1 addition & 1 deletion ports/libqglviewer/CONTROL
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Source: libqglviewer
Version: 2.7.1
Version: 2.7.1-1
Description: libQGLViewer is an open source C++ library based on Qt that eases the creation of OpenGL 3D viewers.
Build-Depends: qt5-base
18 changes: 14 additions & 4 deletions ports/libqglviewer/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,19 @@ vcpkg_configure_qmake(SOURCE_PATH ${SOURCE_PATH}/QGLViewer/QGLViewer.pro)
vcpkg_build_qmake()

file(INSTALL ${SOURCE_PATH}/QGLViewer DESTINATION ${CURRENT_PACKAGES_DIR}/include FILES_MATCHING PATTERN "*.h")
file(INSTALL ${SOURCE_PATH}/QGLViewer/QGLViewer2.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
file(INSTALL ${SOURCE_PATH}/QGLViewer/QGLViewer2.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
file(INSTALL ${SOURCE_PATH}/QGLViewer/QGLViewerd2.dll ${SOURCE_PATH}/QGLViewer/QGLViewerd2.pdb DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
file(INSTALL ${SOURCE_PATH}/QGLViewer/QGLViewerd2.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
if(CMAKE_HOST_WIN32)
if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
file(INSTALL ${SOURCE_PATH}/QGLViewer/QGLViewer2.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
file(INSTALL ${SOURCE_PATH}/QGLViewer/QGLViewerd2.dll ${SOURCE_PATH}/QGLViewer/QGLViewerd2.pdb DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
file(INSTALL ${SOURCE_PATH}/QGLViewer/QGLViewer2.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
file(INSTALL ${SOURCE_PATH}/QGLViewer/QGLViewerd2.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
else()
file(INSTALL ${SOURCE_PATH}/QGLViewer/QGLViewer.lib DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
file(INSTALL ${SOURCE_PATH}/QGLViewer/QGLViewerd.lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
endif()
elseif(CMAKE_HOST_APPLE)
file(INSTALL ${SOURCE_PATH}/QGLViewer/libQGLViewer.a DESTINATION ${CURRENT_PACKAGES_DIR}/lib)
file(INSTALL ${SOURCE_PATH}/QGLViewer/libQGLViewer.a DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib)
endif()

file(INSTALL ${SOURCE_PATH}/LICENCE DESTINATION ${CURRENT_PACKAGES_DIR}/share/libqglviewer RENAME copyright)
4 changes: 2 additions & 2 deletions ports/qscintilla/CONTROL
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Source: qscintilla
Version: 2.10-7
Version: 2.10-8
Description: QScintilla is a port to Qt of the Scintilla editing component. Features syntax highlighting, code-completion and much more (Barebone build without python bindings (missing dependeny PyQt) and without QtDesigner plugin)
Build-Depends: qt5-base
Build-Depends: qt5-base, qt5-macextras (osx), qt5-winextras (windows)
46 changes: 20 additions & 26 deletions ports/qscintilla/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -27,38 +27,32 @@ vcpkg_configure_qmake(
DEFINES+=SCI_NAMESPACE
)

vcpkg_build_qmake(
RELEASE_TARGETS release
DEBUG_TARGETS debug
)
if(CMAKE_HOST_WIN32)
vcpkg_build_qmake(
RELEASE_TARGETS release
DEBUG_TARGETS debug
)
else()
vcpkg_build_qmake()
endif()

file(GLOB HEADER_FILES ${SOURCE_PATH}/Qt4Qt5/Qsci/*)
file(COPY ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/Qsci)

configure_file(
${RELEASE_DIR}/release/qscintilla2_qt5.lib
${CURRENT_PACKAGES_DIR}/lib/qscintilla2.lib
COPYONLY
)

configure_file(
${DEBUG_DIR}/debug/qscintilla2_qt5.lib
${CURRENT_PACKAGES_DIR}/debug/lib/qscintilla2.lib
COPYONLY
)

if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
file(COPY
${RELEASE_DIR}/release/qscintilla2_qt5.dll
DESTINATION ${CURRENT_PACKAGES_DIR}/bin
)

file(COPY
${DEBUG_DIR}/debug/qscintilla2_qt5.dll
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
)
if(CMAKE_HOST_WIN32)
configure_file(${RELEASE_DIR}/release/qscintilla2_qt5.lib ${CURRENT_PACKAGES_DIR}/lib/qscintilla2.lib COPYONLY)
configure_file(${DEBUG_DIR}/debug/qscintilla2_qt5.lib ${CURRENT_PACKAGES_DIR}/debug/lib/qscintilla2.lib COPYONLY)

if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
file(COPY ${RELEASE_DIR}/release/qscintilla2_qt5.dll DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
file(COPY ${DEBUG_DIR}/debug/qscintilla2_qt5.dll DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
endif()
elseif(CMAKE_HOST_APPLE)
configure_file(${RELEASE_DIR}/libqscintilla2_qt5.a ${CURRENT_PACKAGES_DIR}/lib/libqscintilla2.a COPYONLY)
configure_file(${DEBUG_DIR}/libqscintilla2_qt5.a ${CURRENT_PACKAGES_DIR}/debug/lib/libqscintilla2.a COPYONLY)
endif()


vcpkg_copy_pdbs()

# Handle copyright
Expand Down
2 changes: 1 addition & 1 deletion ports/qt5-base/CONTROL
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Source: qt5-base
Version: 5.12.1-3
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 (!osx), sqlite3, libpq, double-conversion, openssl
Build-Depends: zlib, libjpeg-turbo, libpng, freetype, pcre2, harfbuzz, sqlite3, libpq, double-conversion, openssl
8 changes: 5 additions & 3 deletions ports/qt5-base/portfile.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ set(CORE_OPTIONS
-system-pcre
-system-doubleconversion
-system-sqlite
-system-harfbuzz
-no-fontconfig
-nomake examples
-nomake tests
Expand All @@ -70,7 +71,6 @@ if(NOT VCPKG_CMAKE_SYSTEM_NAME OR VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore
OPTIONS
${CORE_OPTIONS}
-mp
-system-harfbuzz
-opengl desktop # other options are "-no-opengl", "-opengl angle", and "-opengl desktop"
OPTIONS_RELEASE
LIBJPEG_LIBS="-ljpeg"
Expand All @@ -94,7 +94,6 @@ elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
PLATFORM "linux-g++"
OPTIONS
${CORE_OPTIONS}
-system-harfbuzz
OPTIONS_RELEASE
"LIBJPEG_LIBS=${CURRENT_INSTALLED_DIR}/lib/libjpeg.a"
"QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/lib/libpng16.a"
Expand All @@ -121,7 +120,6 @@ configure_qt(
PLATFORM "macx-clang"
OPTIONS
${CORE_OPTIONS}
-no-harfbuzz
OPTIONS_RELEASE
"LIBJPEG_LIBS=${CURRENT_INSTALLED_DIR}/lib/libjpeg.a"
"QMAKE_LIBS_PRIVATE+=${CURRENT_INSTALLED_DIR}/lib/libpng16.a"
Expand All @@ -131,6 +129,7 @@ configure_qt(
"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"
Expand All @@ -140,6 +139,7 @@ configure_qt(
"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()

Expand Down Expand Up @@ -218,5 +218,7 @@ 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)
#
66 changes: 66 additions & 0 deletions ports/qt5-base/vcpkg-cmake-wrapper.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +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)

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()
4 changes: 4 additions & 0 deletions ports/qt5-macextras/CONTROL
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Source: qt5-macextras
Version: 5.12.1
Description: Qt5 Mac Extras Module. Provides platform-specific APIs for mac.
Build-Depends: qt5-modularscripts, qt5-base
5 changes: 5 additions & 0 deletions ports/qt5-macextras/portfile.cmake
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
include(vcpkg_common_functions)

include(${CURRENT_INSTALLED_DIR}/share/qt5modularscripts/qt_modular_library.cmake)

qt_modular_library(qtmacextras 0d307b85e09fd97f36c5ee333297ceda4c709f6dc995dba4e8b8c1a85bd95c83ed80ee641e13e05fe3b965060c7847ba1835b7e6d9099a03c8bf9f2c4bae1ded)
2 changes: 1 addition & 1 deletion ports/qt5-purchasing/CONTROL
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Source: qt5-purchasing
Version: 5.12.1
Description: Qt5 Purchasing Module - Enables in-app purchase of products in Qt applications.
Build-Depends: qt5-modularscripts, qt5-base
Build-Depends: qt5-modularscripts, qt5-base, qt5-declarative
4 changes: 2 additions & 2 deletions ports/qt5/CONTROL
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Source: qt5
Version: 5.12.1-1
Version: 5.12.1-2
Description: Qt5 Application Framework
Build-Depends: qt5-3d, qt5-activeqt, qt5-base, qt5-charts, qt5-datavis3d, qt5-declarative, qt5-gamepad, qt5-graphicaleffects, qt5-imageformats, qt5-location, qt5-multimedia, qt5-mqtt, qt5-networkauth, qt5-purchasing, qt5-quickcontrols, qt5-quickcontrols2, qt5-script, qt5-scxml, qt5-sensors, qt5-serialport, qt5-speech, qt5-svg, qt5-tools, qt5-virtualkeyboard, qt5-webchannel, qt5-websockets, qt5-winextras, qt5-xmlpatterns
Build-Depends: qt5-3d, qt5-activeqt, qt5-base, qt5-charts, qt5-datavis3d, qt5-declarative, qt5-gamepad, qt5-graphicaleffects, qt5-imageformats, qt5-location, qt5-multimedia, qt5-mqtt, qt5-networkauth, qt5-purchasing, qt5-quickcontrols, qt5-quickcontrols2, qt5-script, qt5-scxml, qt5-sensors, qt5-serialport, qt5-speech, qt5-svg, qt5-tools, qt5-virtualkeyboard, qt5-webchannel, qt5-websockets, qt5-winextras (windows), qt5-macextras (osx), qt5-xmlpatterns

0 comments on commit 98ae960

Please sign in to comment.