aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Schumacher <roschuma@microsoft.com>2018-01-18 04:22:18 -0800
committerRobert Schumacher <roschuma@microsoft.com>2018-01-18 07:36:50 -0800
commit51da0e25fa5af242331d0a5d8b0d8b4137d98fc5 (patch)
tree5bb269fc414d6ea579ac9803f5ea1101a92fd310
parentd6dc7a078a845bd4e1349a4d4cb77e2070125d4d (diff)
downloadvcpkg-51da0e25fa5af242331d0a5d8b0d8b4137d98fc5.tar.gz
vcpkg-51da0e25fa5af242331d0a5d8b0d8b4137d98fc5.zip
[qscintilla] Fix build against new modular qt
-rw-r--r--ports/qscintilla/CONTROL2
-rw-r--r--ports/qscintilla/portfile.cmake65
2 files changed, 57 insertions, 10 deletions
diff --git a/ports/qscintilla/CONTROL b/ports/qscintilla/CONTROL
index 32a11a69b..65fa0cd63 100644
--- a/ports/qscintilla/CONTROL
+++ b/ports/qscintilla/CONTROL
@@ -1,4 +1,4 @@
Source: qscintilla
-Version: 2.10-2
+Version: 2.10-3
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
diff --git a/ports/qscintilla/portfile.cmake b/ports/qscintilla/portfile.cmake
index a03ecb7db..fd60a5957 100644
--- a/ports/qscintilla/portfile.cmake
+++ b/ports/qscintilla/portfile.cmake
@@ -38,13 +38,60 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
)
endif()
-vcpkg_configure_qmake(
- SOURCE_PATH "${SOURCE_PATH}/Qt4Qt5"
- OPTIONS
- ${BUILD_OPTIONS}
+SET(ENV{PATH} "$ENV{PATH};${CURRENT_INSTALLED_DIR}/bin;${CURRENT_INSTALLED_DIR}/debug/bin")
+
+#Store build paths
+set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+file(REMOVE_RECURSE "${DEBUG_DIR}" "${RELEASE_DIR}")
+
+#Configure debug
+vcpkg_configure_qmake_debug(
+ SOURCE_PATH ${SOURCE_PATH}/Qt4Qt5
+)
+
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_debug(TARGETS qmake_all)
+
+#Store debug makefiles path
+file(GLOB_RECURSE DEBUG_MAKEFILES ${DEBUG_DIR}/*Makefile*)
+
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ file(READ "${DEBUG_MAKEFILE}" _contents)
+ string(REPLACE "zlib.lib" "zlibd.lib" _contents "${_contents}")
+ string(REPLACE "installed\\${TARGET_TRIPLET}\\lib" "installed\\${TARGET_TRIPLET}\\debug\\lib" _contents "${_contents}")
+ string(REPLACE "/LIBPATH:${NATIVE_INSTALLED_DIR}\\debug\\lib qtmaind.lib" "shell32.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\debug\\lib\\manual-link qtmaind.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\debug\\lib" _contents "${_contents}")
+ file(WRITE "${DEBUG_MAKEFILE}" "${_contents}")
+endforeach()
+
+#Build debug
+vcpkg_build_qmake_debug(TARGETS debug)
+
+#Configure release
+vcpkg_configure_qmake_release(
+ SOURCE_PATH ${SOURCE_PATH}/Qt4Qt5
)
-vcpkg_build_qmake()
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_release(TARGETS qmake_all)
+
+#Store release makefile path
+file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
+
+foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
+ file(READ "${RELEASE_MAKEFILE}" _contents)
+ string(REPLACE "/LIBPATH:${NATIVE_INSTALLED_DIR}\\lib qtmain.lib" "shell32.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\lib\\manual-link qtmain.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\lib" _contents "${_contents}")
+ file(WRITE "${RELEASE_MAKEFILE}" "${_contents}")
+endforeach()
+
+#Build release
+vcpkg_build_qmake_release(TARGETS release)
+
+#Set the correct install directory to packages
+foreach(MAKEFILE ${RELEASE_MAKEFILES} ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${MAKEFILE} "(INSTALL_ROOT)${INSTALLED_DIR_WITHOUT_DRIVE}" "(INSTALL_ROOT)${PACKAGES_DIR_WITHOUT_DRIVE}")
+endforeach()
set(BUILD_DIR ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET})
@@ -52,25 +99,25 @@ file(GLOB HEADER_FILES ${SOURCE_PATH}/Qt4Qt5/Qsci/*)
file(INSTALL ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/Qsci)
file(INSTALL
- ${BUILD_DIR}/release/qscintilla2_qt5.lib
+ ${RELEASE_DIR}/release/qscintilla2_qt5.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/lib
RENAME qscintilla2.lib
)
file(INSTALL
- ${BUILD_DIR}/debug/qscintilla2_qt5.lib
+ ${DEBUG_DIR}/debug/qscintilla2_qt5.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
RENAME qscintilla2.lib
)
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
file(INSTALL
- ${BUILD_DIR}/release/qscintilla2_qt5.dll
+ ${RELEASE_DIR}/release/qscintilla2_qt5.dll
DESTINATION ${CURRENT_PACKAGES_DIR}/bin
)
file(INSTALL
- ${BUILD_DIR}/debug/qscintilla2_qt5.dll
+ ${DEBUG_DIR}/debug/qscintilla2_qt5.dll
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
)