aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Warren <s.warren@garvan.org.au>2019-03-14 09:33:48 -0400
committerPhil Christensen <philc@microsoft.com>2019-03-14 06:33:47 -0700
commitf409536f5e8119376ee65d1f25d278b36b7f8136 (patch)
treefd6a05b4f658bfd9a25576052f4ddbbcc42f4731
parente37a6c65d6b8c126ba50caad70cc2a7f839a2275 (diff)
downloadvcpkg-f409536f5e8119376ee65d1f25d278b36b7f8136.tar.gz
vcpkg-f409536f5e8119376ee65d1f25d278b36b7f8136.zip
[qt5] Fix mac build (#5624)
* [qt5] Fix mac build * [qt5] Disable parallel build on mac * [qt5] Fix qmake find on mac * [qt5] Update find jom for mac * [qt5] Fix invocation of build command * [qt5-base] Rebuild packages for #5624 * [harfbuzz] Remove disabled assert (failing due to -Werror) * [qt5] Bump control version * [qt5] Disable harfbuzz on mac * [qt5-base] Disable harfbuzz on mac
-rw-r--r--ports/harfbuzz/0003-remove-broken-test.patch23
-rw-r--r--ports/harfbuzz/CONTROL2
-rw-r--r--ports/harfbuzz/portfile.cmake1
-rw-r--r--ports/qt5-base/CONTROL4
-rw-r--r--ports/qt5-base/portfile.cmake38
-rw-r--r--ports/qt5-modularscripts/qt_modular_library.cmake9
-rw-r--r--scripts/cmake/vcpkg_build_qmake.cmake11
-rw-r--r--scripts/cmake/vcpkg_configure_qmake.cmake2
8 files changed, 79 insertions, 11 deletions
diff --git a/ports/harfbuzz/0003-remove-broken-test.patch b/ports/harfbuzz/0003-remove-broken-test.patch
new file mode 100644
index 000000000..2e5b78fa7
--- /dev/null
+++ b/ports/harfbuzz/0003-remove-broken-test.patch
@@ -0,0 +1,23 @@
+--- a/src/hb-coretext.cc
++++ b/src/hb-coretext.cc
+@@ -1059,20 +1059,6 @@
+ buffer->len += num_glyphs;
+ }
+
+- /* Mac OS 10.6 doesn't have kCTTypesetterOptionForcedEmbeddingLevel,
+- * or if it does, it doesn't respect it. So we get runs with wrong
+- * directions. As such, disable the assert... It wouldn't crash, but
+- * cursoring will be off...
+- *
+- * https://crbug.com/419769
+- */
+- if (false)
+- {
+- /* Make sure all runs had the expected direction. */
+- bool backward = HB_DIRECTION_IS_BACKWARD (buffer->props.direction);
+- assert (bool (status_and & kCTRunStatusRightToLeft) == backward);
+- assert (bool (status_or & kCTRunStatusRightToLeft) == backward);
+- }
+
+ buffer->clear_positions ();
+
diff --git a/ports/harfbuzz/CONTROL b/ports/harfbuzz/CONTROL
index 010118683..82751a0c3 100644
--- a/ports/harfbuzz/CONTROL
+++ b/ports/harfbuzz/CONTROL
@@ -1,5 +1,5 @@
Source: harfbuzz
-Version: 2.3.1
+Version: 2.3.1-2
Description: HarfBuzz OpenType text shaping engine
Build-Depends: freetype, ragel, gettext (osx)
Default-Features: ucdn
diff --git a/ports/harfbuzz/portfile.cmake b/ports/harfbuzz/portfile.cmake
index 40729c8f7..d538c27cd 100644
--- a/ports/harfbuzz/portfile.cmake
+++ b/ports/harfbuzz/portfile.cmake
@@ -9,6 +9,7 @@ vcpkg_from_github(
PATCHES
0001-fix-cmake-export.patch
0002-fix-uwp-build.patch
+ 0003-remove-broken-test.patch
)
SET(HB_HAVE_ICU "OFF")
diff --git a/ports/qt5-base/CONTROL b/ports/qt5-base/CONTROL
index b9f669186..4fd30be4c 100644
--- a/ports/qt5-base/CONTROL
+++ b/ports/qt5-base/CONTROL
@@ -1,4 +1,4 @@
Source: qt5-base
-Version: 5.12.1-2
+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, sqlite3, libpq, double-conversion, openssl
+Build-Depends: zlib, libjpeg-turbo, libpng, freetype, pcre2, harfbuzz (!osx), sqlite3, libpq, double-conversion, openssl
diff --git a/ports/qt5-base/portfile.cmake b/ports/qt5-base/portfile.cmake
index 8a5de56d7..ce2252622 100644
--- a/ports/qt5-base/portfile.cmake
+++ b/ports/qt5-base/portfile.cmake
@@ -48,7 +48,6 @@ set(CORE_OPTIONS
-system-libpng
-system-freetype
-system-pcre
- -system-harfbuzz
-system-doubleconversion
-system-sqlite
-no-fontconfig
@@ -71,6 +70,7 @@ 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"
@@ -94,6 +94,7 @@ 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"
@@ -113,9 +114,40 @@ elseif(VCPKG_CMAKE_SYSTEM_NAME STREQUAL "Linux")
"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}
+ -no-harfbuzz
+ 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"
+)
endif()
-install_qt()
+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)
@@ -133,7 +165,7 @@ 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(
+vcpkg_execute_required_process(
COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
WORKING_DIRECTORY ${CURRENT_PACKAGES_DIR}/share/cmake
LOGNAME fix-cmake
diff --git a/ports/qt5-modularscripts/qt_modular_library.cmake b/ports/qt5-modularscripts/qt_modular_library.cmake
index a99d18478..fc3ebdef0 100644
--- a/ports/qt5-modularscripts/qt_modular_library.cmake
+++ b/ports/qt5-modularscripts/qt_modular_library.cmake
@@ -38,8 +38,13 @@ function(qt_modular_library NAME HASH)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}" NATIVE_INSTALLED_DIR)
file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" NATIVE_PACKAGES_DIR)
- string(SUBSTRING "${NATIVE_INSTALLED_DIR}" 2 -1 INSTALLED_DIR_WITHOUT_DRIVE)
- string(SUBSTRING "${NATIVE_PACKAGES_DIR}" 2 -1 PACKAGES_DIR_WITHOUT_DRIVE)
+ if(WIN32)
+ string(SUBSTRING "${NATIVE_INSTALLED_DIR}" 2 -1 INSTALLED_DIR_WITHOUT_DRIVE)
+ string(SUBSTRING "${NATIVE_PACKAGES_DIR}" 2 -1 PACKAGES_DIR_WITHOUT_DRIVE)
+ else()
+ set(INSTALLED_DIR_WITHOUT_DRIVE ${NATIVE_INSTALLED_DIR})
+ set(PACKAGES_DIR_WITHOUT_DRIVE ${NATIVE_PACKAGES_DIR})
+ endif()
#Configure debug+release
vcpkg_configure_qmake(SOURCE_PATH ${SOURCE_PATH})
diff --git a/scripts/cmake/vcpkg_build_qmake.cmake b/scripts/cmake/vcpkg_build_qmake.cmake
index 947178686..5b686527d 100644
--- a/scripts/cmake/vcpkg_build_qmake.cmake
+++ b/scripts/cmake/vcpkg_build_qmake.cmake
@@ -9,7 +9,14 @@
function(vcpkg_build_qmake)
cmake_parse_arguments(_csc "SKIP_MAKEFILES" "BUILD_LOGNAME" "TARGETS;RELEASE_TARGETS;DEBUG_TARGETS" ${ARGN})
- vcpkg_find_acquire_program(JOM)
+
+ if(CMAKE_HOST_WIN32)
+ vcpkg_find_acquire_program(JOM)
+ set(INVOKE "${JOM}")
+ else()
+ find_program(MAKE make)
+ set(INVOKE "${MAKE}")
+ endif()
# Make sure that the linker finds the libraries used
set(ENV_PATH_BACKUP "$ENV{PATH}")
@@ -29,7 +36,7 @@ function(vcpkg_build_qmake)
function(run_jom TARGETS LOG_PREFIX LOG_SUFFIX)
message(STATUS "Package ${LOG_PREFIX}-${TARGET_TRIPLET}-${LOG_SUFFIX}")
vcpkg_execute_required_process(
- COMMAND ${JOM} ${TARGETS}
+ COMMAND ${INVOKE} ${TARGETS}
WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${LOG_SUFFIX}
LOGNAME package-${LOG_PREFIX}-${TARGET_TRIPLET}-${LOG_SUFFIX}
)
diff --git a/scripts/cmake/vcpkg_configure_qmake.cmake b/scripts/cmake/vcpkg_configure_qmake.cmake
index 3aa30e70d..11178174e 100644
--- a/scripts/cmake/vcpkg_configure_qmake.cmake
+++ b/scripts/cmake/vcpkg_configure_qmake.cmake
@@ -17,7 +17,7 @@ function(vcpkg_configure_qmake)
cmake_parse_arguments(_csc "" "SOURCE_PATH" "OPTIONS" ${ARGN})
# Find qmake executable
- find_program(QMAKE_COMMAND NAMES qmake.exe PATHS ${CURRENT_INSTALLED_DIR}/tools/qt5)
+ find_program(QMAKE_COMMAND NAMES qmake PATHS ${CURRENT_INSTALLED_DIR}/tools/qt5)
if(NOT QMAKE_COMMAND)
message(FATAL_ERROR "vcpkg_configure_qmake: unable to find qmake.")