aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/qwt/CONTROL2
-rw-r--r--ports/qwt/portfile.cmake64
2 files changed, 56 insertions, 10 deletions
diff --git a/ports/qwt/CONTROL b/ports/qwt/CONTROL
index 60539483b..c30b97779 100644
--- a/ports/qwt/CONTROL
+++ b/ports/qwt/CONTROL
@@ -1,4 +1,4 @@
Source: qwt
Version: 6.1.3-2
Description: Qt widgets library for technical applications
-Build-Depends: qt5base
+Build-Depends: qt5base, qt5svg
diff --git a/ports/qwt/portfile.cmake b/ports/qwt/portfile.cmake
index 99f84425a..f4be871b7 100644
--- a/ports/qwt/portfile.cmake
+++ b/ports/qwt/portfile.cmake
@@ -24,37 +24,83 @@ endif()
# The qwt build requires zlib1.dll
SET(ENV{PATH} "$ENV{PATH};${CURRENT_INSTALLED_DIR}/bin;${CURRENT_INSTALLED_DIR}/debug/bin")
-vcpkg_configure_qmake(
+#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}
+)
+
+#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 sub-src-debug_ordered)
+
+#Configure release
+vcpkg_configure_qmake_release(
SOURCE_PATH ${SOURCE_PATH}
)
-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 sub-src-release_ordered)
-# Install following vcpkg conventions
-set(BUILD_DIR ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET})
+#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()
+#Install the header files
file(GLOB HEADER_FILES ${SOURCE_PATH}/src/*.h)
file(INSTALL ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/qwt)
+#Install the module files
file(INSTALL
- ${BUILD_DIR}/lib/qwt.lib
+ ${RELEASE_DIR}/lib/qwt.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/lib
)
file(INSTALL
- ${BUILD_DIR}/lib/qwtd.lib
+ ${DEBUG_DIR}/lib/qwtd.lib
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
)
if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
file(INSTALL
- ${BUILD_DIR}/lib/qwt.dll
+ ${RELEASE_DIR}/lib/qwt.dll
DESTINATION ${CURRENT_PACKAGES_DIR}/bin
)
file(INSTALL
- ${BUILD_DIR}/lib/qwtd.dll
- ${BUILD_DIR}/lib/qwtd.pdb
+ ${DEBUG_DIR}/lib/qwtd.dll
+ ${DEBUG_DIR}/lib/qwtd.pdb
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
)
endif()