diff options
| -rw-r--r-- | ports/qwt/CONTROL | 2 | ||||
| -rw-r--r-- | ports/qwt/portfile.cmake | 64 |
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() |
