aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBarath Kannan <barathsotd@gmail.com>2017-11-06 00:24:29 +1100
committerBarath Kannan <barathsotd@gmail.com>2017-11-06 00:24:29 +1100
commit9bb4817e32a14647093876cabaf62bbd2be63fc6 (patch)
treedbbf4d5766b6484c73f88f002a7fc5232be3ebef
parent6b83925dd6b88233410f1511993350bab6ef984a (diff)
downloadvcpkg-9bb4817e32a14647093876cabaf62bbd2be63fc6.tar.gz
vcpkg-9bb4817e32a14647093876cabaf62bbd2be63fc6.zip
use install target in Makefiles; make all portfile uniform
-rw-r--r--ports/qt53d/portfile.cmake145
-rw-r--r--ports/qt5charts/portfile.cmake130
-rw-r--r--ports/qt5datavisualization3d/portfile.cmake130
-rw-r--r--ports/qt5declarative/portfile.cmake141
-rw-r--r--ports/qt5gamepad/portfile.cmake132
-rw-r--r--ports/qt5imageformats/portfile.cmake124
-rw-r--r--ports/qt5multimedia/portfile.cmake132
-rw-r--r--ports/qt5scxml/portfile.cmake137
-rw-r--r--ports/qt5serial/portfile.cmake130
-rw-r--r--ports/qt5speech/portfile.cmake132
-rw-r--r--ports/qt5svg/portfile.cmake132
-rw-r--r--ports/qt5tools/CONTROL4
-rw-r--r--ports/qt5tools/portfile.cmake140
-rw-r--r--ports/qt5virtualkeyboard/portfile.cmake124
-rw-r--r--ports/qt5websockets/portfile.cmake130
-rw-r--r--ports/qt5winextras/portfile.cmake130
-rw-r--r--ports/qt5xmlpatterns/portfile.cmake137
-rw-r--r--scripts/cmake/vcpkg_common_functions.cmake1
-rw-r--r--scripts/cmake/vcpkg_replace_string.cmake14
19 files changed, 1689 insertions, 456 deletions
diff --git a/ports/qt53d/portfile.cmake b/ports/qt53d/portfile.cmake
index d31904043..dd9751650 100644
--- a/ports/qt53d/portfile.cmake
+++ b/ports/qt53d/portfile.cmake
@@ -31,58 +31,127 @@ endif()
# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
set(ENV{_CL_} "/utf-8")
+#Store build paths
+set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+#Find Python and add it to the path
+vcpkg_find_acquire_program(PYTHON3)
+get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
+set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
+set(_path "$ENV{PATH}")
+
+#Configure debug
vcpkg_configure_qmake_debug(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_debug(TARGETS sub-src-qmake_all)
+
+#Store debug makefiles path
+file(GLOB_RECURSE DEBUG_MAKEFILES ${DEBUG_DIR}/*Makefile*)
+
+#Fix path to Qt5QmlDevTools
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "vcpkg\\installed\\${TARGET_TRIPLET}\\lib\\Qt5QmlDevToolsd.lib" "vcpkg\\installed\\${TARGET_TRIPLET}\\debug\\lib\\Qt5QmlDevToolsd.lib")
+endforeach()
+
+#Build debug
vcpkg_build_qmake_debug()
+#Configure release
vcpkg_configure_qmake_release(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_release(TARGETS sub-src-qmake_all)
+
+#Store release makefile path
+file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
+
+#Build release
vcpkg_build_qmake_release()
-vcpkg_find_acquire_program(PYTHON3)
-get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
-set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
-set(_path "$ENV{PATH}")
+#Fix the cmake files if they exist
+if(EXISTS ${RELEASE_DIR}/lib/cmake)
+ vcpkg_execute_required_process(
+ COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
+ WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
+ LOGNAME fix-cmake
+ )
+endif()
-set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
-set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+#Set the correct install directory to packages
+foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
+ vcpkg_replace_string(${RELEASE_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
-vcpkg_execute_required_process(
- COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
- WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
- LOGNAME fix-cmake
-)
+#Install the module files
+vcpkg_build_qmake_debug(TARGETS install)
+vcpkg_build_qmake_release(TARGETS install)
+#Reset the path to the baseline
set(ENV{PATH} "${_path}")
-file(INSTALL ${DEBUG_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/plugins DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-file(INSTALL ${DEBUG_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-
-file(INSTALL ${RELEASE_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/plugins DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5)
-
-file(GLOB BINARY_TOOLS "${CURRENT_PACKAGES_DIR}/bin/*.exe")
-file(INSTALL ${BINARY_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/qt5)
-file(REMOVE ${BINARY_TOOLS})
-file(GLOB BINARY_TOOLS "${CURRENT_PACKAGES_DIR}/debug/bin/*.exe")
-file(INSTALL ${BINARY_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/qt5)
-file(REMOVE ${BINARY_TOOLS})
-
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
-
-file(GLOB RELEASE_DLLS "${CURRENT_PACKAGES_DIR}/lib/*.dll")
-file(GLOB DEBUG_DLLS "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll")
-file(REMOVE ${RELEASE_DLLS} ${DEBUG_DLLS})
-
-file(INSTALL ${SOURCE_PATH}/LICENSE.LGPLv3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt53d RENAME copyright) \ No newline at end of file
+#Remove extra cmake files
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB RELEASE_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT RELEASE_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib)
+ endif()
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB DEBUG_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT DEBUG_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib)
+ endif()
+endif()
+
+#Move release and debug dlls to the correct directory
+file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/tools/qt5/*.dll)
+file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*.dll)
+if (RELEASE_DLLS)
+ file(INSTALL ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${RELEASE_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB RELEASE_BINS ${CURRENT_PACKAGES_DIR}/tools/qt5/*)
+ if(NOT RELEASE_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/tools)
+ endif()
+endif()
+if(DEBUG_DLLS)
+ file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${DEBUG_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB DEBUG_BINS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*)
+ if(NOT DEBUG_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/tools)
+ endif()
+endif()
+
+#If there are no include files in the module - create an empty one to stop vcpkg from complaining
+if(NOT EXISTS ${CURRENT_PACKAGES_DIR}/include)
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/.empty_${PORT} "")
+endif()
+
+#Find the relevant license file and install it
+if(EXISTS "${SOURCE_PATH}/LICENSE.LGPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.LGPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPL3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3")
+endif()
+file(INSTALL ${LICENSE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}/ RENAME copyright) \ No newline at end of file
diff --git a/ports/qt5charts/portfile.cmake b/ports/qt5charts/portfile.cmake
index e9b0d9dda..6e43f92b5 100644
--- a/ports/qt5charts/portfile.cmake
+++ b/ports/qt5charts/portfile.cmake
@@ -31,49 +31,127 @@ endif()
# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
set(ENV{_CL_} "/utf-8")
+#Store build paths
+set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+#Find Python and add it to the path
+vcpkg_find_acquire_program(PYTHON3)
+get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
+set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
+set(_path "$ENV{PATH}")
+
+#Configure debug
vcpkg_configure_qmake_debug(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_debug(TARGETS sub-src-qmake_all)
+
+#Store debug makefiles path
+file(GLOB_RECURSE DEBUG_MAKEFILES ${DEBUG_DIR}/*Makefile*)
+
+#Fix path to Qt5QmlDevTools
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "vcpkg\\installed\\${TARGET_TRIPLET}\\lib\\Qt5QmlDevToolsd.lib" "vcpkg\\installed\\${TARGET_TRIPLET}\\debug\\lib\\Qt5QmlDevToolsd.lib")
+endforeach()
+
+#Build debug
vcpkg_build_qmake_debug()
+#Configure release
vcpkg_configure_qmake_release(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_release(TARGETS sub-src-qmake_all)
+
+#Store release makefile path
+file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
+
+#Build release
vcpkg_build_qmake_release()
-vcpkg_find_acquire_program(PYTHON3)
-get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
-set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
-set(_path "$ENV{PATH}")
+#Fix the cmake files if they exist
+if(EXISTS ${RELEASE_DIR}/lib/cmake)
+ vcpkg_execute_required_process(
+ COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
+ WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
+ LOGNAME fix-cmake
+ )
+endif()
-set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
-set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+#Set the correct install directory to packages
+foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
+ vcpkg_replace_string(${RELEASE_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
-vcpkg_execute_required_process(
- COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
- WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
- LOGNAME fix-cmake
-)
+#Install the module files
+vcpkg_build_qmake_debug(TARGETS install)
+vcpkg_build_qmake_release(TARGETS install)
+#Reset the path to the baseline
set(ENV{PATH} "${_path}")
-file(INSTALL ${DEBUG_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-file(INSTALL ${DEBUG_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-
-file(INSTALL ${RELEASE_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5)
+#Remove extra cmake files
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB RELEASE_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT RELEASE_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib)
+ endif()
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB DEBUG_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT DEBUG_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib)
+ endif()
+endif()
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+#Move release and debug dlls to the correct directory
+file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/tools/qt5/*.dll)
+file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*.dll)
+if (RELEASE_DLLS)
+ file(INSTALL ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${RELEASE_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB RELEASE_BINS ${CURRENT_PACKAGES_DIR}/tools/qt5/*)
+ if(NOT RELEASE_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/tools)
+ endif()
+endif()
+if(DEBUG_DLLS)
+ file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${DEBUG_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB DEBUG_BINS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*)
+ if(NOT DEBUG_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/tools)
+ endif()
+endif()
-file(GLOB RELEASE_DLLS "${CURRENT_PACKAGES_DIR}/lib/*.dll")
-file(GLOB DEBUG_DLLS "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll")
-file(REMOVE ${RELEASE_DLLS} ${DEBUG_DLLS})
+#If there are no include files in the module - create an empty one to stop vcpkg from complaining
+if(NOT EXISTS ${CURRENT_PACKAGES_DIR}/include)
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/.empty_${PORT} "")
+endif()
-file(INSTALL ${SOURCE_PATH}/LICENSE.GPL3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5charts RENAME copyright) \ No newline at end of file
+#Find the relevant license file and install it
+if(EXISTS "${SOURCE_PATH}/LICENSE.LGPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.LGPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPL3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3")
+endif()
+file(INSTALL ${LICENSE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}/ RENAME copyright) \ No newline at end of file
diff --git a/ports/qt5datavisualization3d/portfile.cmake b/ports/qt5datavisualization3d/portfile.cmake
index 85bd0e21b..8a067c524 100644
--- a/ports/qt5datavisualization3d/portfile.cmake
+++ b/ports/qt5datavisualization3d/portfile.cmake
@@ -31,49 +31,127 @@ endif()
# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
set(ENV{_CL_} "/utf-8")
+#Store build paths
+set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+#Find Python and add it to the path
+vcpkg_find_acquire_program(PYTHON3)
+get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
+set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
+set(_path "$ENV{PATH}")
+
+#Configure debug
vcpkg_configure_qmake_debug(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_debug(TARGETS sub-src-qmake_all)
+
+#Store debug makefiles path
+file(GLOB_RECURSE DEBUG_MAKEFILES ${DEBUG_DIR}/*Makefile*)
+
+#Fix path to Qt5QmlDevTools
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "vcpkg\\installed\\${TARGET_TRIPLET}\\lib\\Qt5QmlDevToolsd.lib" "vcpkg\\installed\\${TARGET_TRIPLET}\\debug\\lib\\Qt5QmlDevToolsd.lib")
+endforeach()
+
+#Build debug
vcpkg_build_qmake_debug()
+#Configure release
vcpkg_configure_qmake_release(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_release(TARGETS sub-src-qmake_all)
+
+#Store release makefile path
+file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
+
+#Build release
vcpkg_build_qmake_release()
-vcpkg_find_acquire_program(PYTHON3)
-get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
-set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
-set(_path "$ENV{PATH}")
+#Fix the cmake files if they exist
+if(EXISTS ${RELEASE_DIR}/lib/cmake)
+ vcpkg_execute_required_process(
+ COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
+ WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
+ LOGNAME fix-cmake
+ )
+endif()
-set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
-set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+#Set the correct install directory to packages
+foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
+ vcpkg_replace_string(${RELEASE_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
-vcpkg_execute_required_process(
- COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
- WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
- LOGNAME fix-cmake
-)
+#Install the module files
+vcpkg_build_qmake_debug(TARGETS install)
+vcpkg_build_qmake_release(TARGETS install)
+#Reset the path to the baseline
set(ENV{PATH} "${_path}")
-file(INSTALL ${DEBUG_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-file(INSTALL ${DEBUG_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-
-file(INSTALL ${RELEASE_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5)
+#Remove extra cmake files
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB RELEASE_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT RELEASE_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib)
+ endif()
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB DEBUG_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT DEBUG_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib)
+ endif()
+endif()
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+#Move release and debug dlls to the correct directory
+file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/tools/qt5/*.dll)
+file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*.dll)
+if (RELEASE_DLLS)
+ file(INSTALL ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${RELEASE_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB RELEASE_BINS ${CURRENT_PACKAGES_DIR}/tools/qt5/*)
+ if(NOT RELEASE_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/tools)
+ endif()
+endif()
+if(DEBUG_DLLS)
+ file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${DEBUG_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB DEBUG_BINS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*)
+ if(NOT DEBUG_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/tools)
+ endif()
+endif()
-file(GLOB RELEASE_DLLS "${CURRENT_PACKAGES_DIR}/lib/*.dll")
-file(GLOB DEBUG_DLLS "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll")
-file(REMOVE ${RELEASE_DLLS} ${DEBUG_DLLS})
+#If there are no include files in the module - create an empty one to stop vcpkg from complaining
+if(NOT EXISTS ${CURRENT_PACKAGES_DIR}/include)
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/.empty_${PORT} "")
+endif()
-file(INSTALL ${SOURCE_PATH}/LICENSE.GPL3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5datavisualization3d RENAME copyright) \ No newline at end of file
+#Find the relevant license file and install it
+if(EXISTS "${SOURCE_PATH}/LICENSE.LGPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.LGPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPL3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3")
+endif()
+file(INSTALL ${LICENSE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}/ RENAME copyright) \ No newline at end of file
diff --git a/ports/qt5declarative/portfile.cmake b/ports/qt5declarative/portfile.cmake
index 70c502dfa..29ff3e759 100644
--- a/ports/qt5declarative/portfile.cmake
+++ b/ports/qt5declarative/portfile.cmake
@@ -31,57 +31,130 @@ endif()
# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
set(ENV{_CL_} "/utf-8")
+#Store build paths
+set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+#Find Python and add it to the path
vcpkg_find_acquire_program(PYTHON3)
get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
+set(_path "$ENV{PATH}")
+#Configure debug
vcpkg_configure_qmake_debug(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_debug(TARGETS sub-src-qmake_all)
+
+#Store debug makefiles path
+file(GLOB_RECURSE DEBUG_MAKEFILES ${DEBUG_DIR}/*Makefile*)
+
+#Fix path to Qt5QmlDevTools
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "vcpkg\\installed\\${TARGET_TRIPLET}\\lib\\Qt5QmlDevToolsd.lib" "vcpkg\\installed\\${TARGET_TRIPLET}\\debug\\lib\\Qt5QmlDevToolsd.lib")
+endforeach()
+
+#Build debug
vcpkg_build_qmake_debug()
+#Configure release
vcpkg_configure_qmake_release(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_release(TARGETS sub-src-qmake_all)
+
+#Store release makefile path
+file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
+
+#Build release
vcpkg_build_qmake_release()
-set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
-set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+#Fix the cmake files if they exist
+if(EXISTS ${RELEASE_DIR}/lib/cmake)
+ vcpkg_execute_required_process(
+ COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
+ WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
+ LOGNAME fix-cmake
+ )
+endif()
-vcpkg_execute_required_process(
- COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
- WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
- LOGNAME fix-cmake
-)
+#Set the correct install directory to packages
+foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
+ vcpkg_replace_string(${RELEASE_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
+
+#Install the module files
+vcpkg_build_qmake_debug(TARGETS install)
+vcpkg_build_qmake_release(TARGETS install)
+#Reset the path to the baseline
set(ENV{PATH} "${_path}")
-file(GLOB BINARY_TOOLS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bin/*.exe")
-file(INSTALL ${BINARY_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/qt5)
-file(REMOVE ${BINARY_TOOLS})
-file(GLOB BINARY_TOOLS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/bin/*.exe")
-file(INSTALL ${BINARY_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/qt5)
-file(REMOVE ${BINARY_TOOLS})
-
-file(INSTALL ${DEBUG_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/plugins DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-file(INSTALL ${DEBUG_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-
-file(INSTALL ${RELEASE_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/plugins DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5)
-
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
-
-file(GLOB RELEASE_DLLS "${CURRENT_PACKAGES_DIR}/lib/*.dll")
-file(GLOB DEBUG_DLLS "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll")
-file(REMOVE ${RELEASE_DLLS} ${DEBUG_DLLS})
-
-file(INSTALL ${SOURCE_PATH}/LICENSE.LGPL3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5declarative RENAME copyright) \ No newline at end of file
+#Remove extra cmake files
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB RELEASE_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT RELEASE_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib)
+ endif()
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB DEBUG_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT DEBUG_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib)
+ endif()
+endif()
+
+#Move release and debug dlls to the correct directory
+file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/tools/qt5/*.dll)
+file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*.dll)
+if (RELEASE_DLLS)
+ file(INSTALL ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${RELEASE_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB RELEASE_BINS ${CURRENT_PACKAGES_DIR}/tools/qt5/*)
+ if(NOT RELEASE_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/tools)
+ endif()
+endif()
+if(DEBUG_DLLS)
+ file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${DEBUG_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB DEBUG_BINS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*)
+ if(NOT DEBUG_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/tools)
+ endif()
+endif()
+
+#If there are no include files in the module - create an empty one to stop vcpkg from complaining
+if(NOT EXISTS ${CURRENT_PACKAGES_DIR}/include)
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/.empty_${PORT} "")
+endif()
+
+#Find the relevant license file and install it
+if(EXISTS "${SOURCE_PATH}/LICENSE.LGPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.LGPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPL3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3")
+endif()
+file(INSTALL ${LICENSE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}/ RENAME copyright)
+
+#Fix incorrectly placed file(s)
+file(RENAME ${CURRENT_PACKAGES_DIR}/lib/Qt5QmlDevToolsd.lib ${CURRENT_PACKAGES_DIR}/debug/lib/Qt5QmlDevToolsd.lib) \ No newline at end of file
diff --git a/ports/qt5gamepad/portfile.cmake b/ports/qt5gamepad/portfile.cmake
index 3492e78de..68ab01e6d 100644
--- a/ports/qt5gamepad/portfile.cmake
+++ b/ports/qt5gamepad/portfile.cmake
@@ -31,51 +31,127 @@ endif()
# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
set(ENV{_CL_} "/utf-8")
+#Store build paths
+set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+#Find Python and add it to the path
+vcpkg_find_acquire_program(PYTHON3)
+get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
+set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
+set(_path "$ENV{PATH}")
+
+#Configure debug
vcpkg_configure_qmake_debug(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_debug(TARGETS sub-src-qmake_all)
+
+#Store debug makefiles path
+file(GLOB_RECURSE DEBUG_MAKEFILES ${DEBUG_DIR}/*Makefile*)
+
+#Fix path to Qt5QmlDevTools
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "vcpkg\\installed\\${TARGET_TRIPLET}\\lib\\Qt5QmlDevToolsd.lib" "vcpkg\\installed\\${TARGET_TRIPLET}\\debug\\lib\\Qt5QmlDevToolsd.lib")
+endforeach()
+
+#Build debug
vcpkg_build_qmake_debug()
+#Configure release
vcpkg_configure_qmake_release(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_release(TARGETS sub-src-qmake_all)
+
+#Store release makefile path
+file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
+
+#Build release
vcpkg_build_qmake_release()
-vcpkg_find_acquire_program(PYTHON3)
-get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
-set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
-set(_path "$ENV{PATH}")
+#Fix the cmake files if they exist
+if(EXISTS ${RELEASE_DIR}/lib/cmake)
+ vcpkg_execute_required_process(
+ COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
+ WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
+ LOGNAME fix-cmake
+ )
+endif()
-set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
-set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+#Set the correct install directory to packages
+foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
+ vcpkg_replace_string(${RELEASE_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
-vcpkg_execute_required_process(
- COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
- WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
- LOGNAME fix-cmake
-)
+#Install the module files
+vcpkg_build_qmake_debug(TARGETS install)
+vcpkg_build_qmake_release(TARGETS install)
+#Reset the path to the baseline
set(ENV{PATH} "${_path}")
-file(INSTALL ${DEBUG_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/plugins DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-file(INSTALL ${DEBUG_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-
-file(INSTALL ${RELEASE_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/plugins DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5)
+#Remove extra cmake files
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB RELEASE_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT RELEASE_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib)
+ endif()
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB DEBUG_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT DEBUG_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib)
+ endif()
+endif()
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+#Move release and debug dlls to the correct directory
+file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/tools/qt5/*.dll)
+file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*.dll)
+if (RELEASE_DLLS)
+ file(INSTALL ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${RELEASE_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB RELEASE_BINS ${CURRENT_PACKAGES_DIR}/tools/qt5/*)
+ if(NOT RELEASE_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/tools)
+ endif()
+endif()
+if(DEBUG_DLLS)
+ file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${DEBUG_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB DEBUG_BINS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*)
+ if(NOT DEBUG_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/tools)
+ endif()
+endif()
-file(GLOB RELEASE_DLLS "${CURRENT_PACKAGES_DIR}/lib/*.dll")
-file(GLOB DEBUG_DLLS "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll")
-file(REMOVE ${RELEASE_DLLS} ${DEBUG_DLLS})
+#If there are no include files in the module - create an empty one to stop vcpkg from complaining
+if(NOT EXISTS ${CURRENT_PACKAGES_DIR}/include)
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/.empty_${PORT} "")
+endif()
-file(INSTALL ${SOURCE_PATH}/LICENSE.LGPLv3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5gamepad RENAME copyright) \ No newline at end of file
+#Find the relevant license file and install it
+if(EXISTS "${SOURCE_PATH}/LICENSE.LGPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.LGPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPL3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3")
+endif()
+file(INSTALL ${LICENSE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}/ RENAME copyright) \ No newline at end of file
diff --git a/ports/qt5imageformats/portfile.cmake b/ports/qt5imageformats/portfile.cmake
index 059f8ae6a..612178ff8 100644
--- a/ports/qt5imageformats/portfile.cmake
+++ b/ports/qt5imageformats/portfile.cmake
@@ -31,43 +31,127 @@ endif()
# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
set(ENV{_CL_} "/utf-8")
+#Store build paths
+set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+#Find Python and add it to the path
+vcpkg_find_acquire_program(PYTHON3)
+get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
+set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
+set(_path "$ENV{PATH}")
+
+#Configure debug
vcpkg_configure_qmake_debug(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_debug(TARGETS sub-src-qmake_all)
+
+#Store debug makefiles path
+file(GLOB_RECURSE DEBUG_MAKEFILES ${DEBUG_DIR}/*Makefile*)
+
+#Fix path to Qt5QmlDevTools
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "vcpkg\\installed\\${TARGET_TRIPLET}\\lib\\Qt5QmlDevToolsd.lib" "vcpkg\\installed\\${TARGET_TRIPLET}\\debug\\lib\\Qt5QmlDevToolsd.lib")
+endforeach()
+
+#Build debug
vcpkg_build_qmake_debug()
+#Configure release
vcpkg_configure_qmake_release(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_release(TARGETS sub-src-qmake_all)
+
+#Store release makefile path
+file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
+
+#Build release
vcpkg_build_qmake_release()
-vcpkg_find_acquire_program(PYTHON3)
-get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
-set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
-set(_path "$ENV{PATH}")
+#Fix the cmake files if they exist
+if(EXISTS ${RELEASE_DIR}/lib/cmake)
+ vcpkg_execute_required_process(
+ COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
+ WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
+ LOGNAME fix-cmake
+ )
+endif()
-set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
-set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+#Set the correct install directory to packages
+foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
+ vcpkg_replace_string(${RELEASE_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
-vcpkg_execute_required_process(
- COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
- WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
- LOGNAME fix-cmake
-)
+#Install the module files
+vcpkg_build_qmake_debug(TARGETS install)
+vcpkg_build_qmake_release(TARGETS install)
+#Reset the path to the baseline
set(ENV{PATH} "${_path}")
-file(INSTALL ${DEBUG_DIR}/plugins DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-
-file(INSTALL ${RELEASE_DIR}/plugins DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5)
+#Remove extra cmake files
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB RELEASE_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT RELEASE_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib)
+ endif()
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB DEBUG_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT DEBUG_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib)
+ endif()
+endif()
-file(INSTALL ${RELEASE_DIR}/lib/cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share)
+#Move release and debug dlls to the correct directory
+file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/tools/qt5/*.dll)
+file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*.dll)
+if (RELEASE_DLLS)
+ file(INSTALL ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${RELEASE_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB RELEASE_BINS ${CURRENT_PACKAGES_DIR}/tools/qt5/*)
+ if(NOT RELEASE_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/tools)
+ endif()
+endif()
+if(DEBUG_DLLS)
+ file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${DEBUG_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB DEBUG_BINS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*)
+ if(NOT DEBUG_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/tools)
+ endif()
+endif()
-#Create an empty include file so that vcpkg doesn't complain
-file(WRITE ${CURRENT_PACKAGES_DIR}/include/.empty_qt5imageformats "")
+#If there are no include files in the module - create an empty one to stop vcpkg from complaining
+if(NOT EXISTS ${CURRENT_PACKAGES_DIR}/include)
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/.empty_${PORT} "")
+endif()
-file(INSTALL ${SOURCE_PATH}/LICENSE.LGPLv3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5imageformats RENAME copyright) \ No newline at end of file
+#Find the relevant license file and install it
+if(EXISTS "${SOURCE_PATH}/LICENSE.LGPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.LGPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPL3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3")
+endif()
+file(INSTALL ${LICENSE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}/ RENAME copyright) \ No newline at end of file
diff --git a/ports/qt5multimedia/portfile.cmake b/ports/qt5multimedia/portfile.cmake
index d326bb783..5eb7c4ff1 100644
--- a/ports/qt5multimedia/portfile.cmake
+++ b/ports/qt5multimedia/portfile.cmake
@@ -31,51 +31,127 @@ endif()
# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
set(ENV{_CL_} "/utf-8")
+#Store build paths
+set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+#Find Python and add it to the path
+vcpkg_find_acquire_program(PYTHON3)
+get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
+set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
+set(_path "$ENV{PATH}")
+
+#Configure debug
vcpkg_configure_qmake_debug(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_debug(TARGETS sub-src-qmake_all)
+
+#Store debug makefiles path
+file(GLOB_RECURSE DEBUG_MAKEFILES ${DEBUG_DIR}/*Makefile*)
+
+#Fix path to Qt5QmlDevTools
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "vcpkg\\installed\\${TARGET_TRIPLET}\\lib\\Qt5QmlDevToolsd.lib" "vcpkg\\installed\\${TARGET_TRIPLET}\\debug\\lib\\Qt5QmlDevToolsd.lib")
+endforeach()
+
+#Build debug
vcpkg_build_qmake_debug()
+#Configure release
vcpkg_configure_qmake_release(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_release(TARGETS sub-src-qmake_all)
+
+#Store release makefile path
+file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
+
+#Build release
vcpkg_build_qmake_release()
-vcpkg_find_acquire_program(PYTHON3)
-get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
-set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
-set(_path "$ENV{PATH}")
+#Fix the cmake files if they exist
+if(EXISTS ${RELEASE_DIR}/lib/cmake)
+ vcpkg_execute_required_process(
+ COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
+ WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
+ LOGNAME fix-cmake
+ )
+endif()
-set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
-set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+#Set the correct install directory to packages
+foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
+ vcpkg_replace_string(${RELEASE_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
-vcpkg_execute_required_process(
- COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
- WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
- LOGNAME fix-cmake
-)
+#Install the module files
+vcpkg_build_qmake_debug(TARGETS install)
+vcpkg_build_qmake_release(TARGETS install)
+#Reset the path to the baseline
set(ENV{PATH} "${_path}")
-file(INSTALL ${DEBUG_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/plugins DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-file(INSTALL ${DEBUG_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-
-file(INSTALL ${RELEASE_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/plugins DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5)
+#Remove extra cmake files
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB RELEASE_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT RELEASE_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib)
+ endif()
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB DEBUG_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT DEBUG_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib)
+ endif()
+endif()
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+#Move release and debug dlls to the correct directory
+file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/tools/qt5/*.dll)
+file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*.dll)
+if (RELEASE_DLLS)
+ file(INSTALL ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${RELEASE_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB RELEASE_BINS ${CURRENT_PACKAGES_DIR}/tools/qt5/*)
+ if(NOT RELEASE_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/tools)
+ endif()
+endif()
+if(DEBUG_DLLS)
+ file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${DEBUG_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB DEBUG_BINS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*)
+ if(NOT DEBUG_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/tools)
+ endif()
+endif()
-file(GLOB RELEASE_DLLS "${CURRENT_PACKAGES_DIR}/lib/*.dll")
-file(GLOB DEBUG_DLLS "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll")
-file(REMOVE ${RELEASE_DLLS} ${DEBUG_DLLS})
+#If there are no include files in the module - create an empty one to stop vcpkg from complaining
+if(NOT EXISTS ${CURRENT_PACKAGES_DIR}/include)
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/.empty_${PORT} "")
+endif()
-file(INSTALL ${SOURCE_PATH}/LICENSE.LGPL3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5multimedia RENAME copyright) \ No newline at end of file
+#Find the relevant license file and install it
+if(EXISTS "${SOURCE_PATH}/LICENSE.LGPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.LGPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPL3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3")
+endif()
+file(INSTALL ${LICENSE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}/ RENAME copyright) \ No newline at end of file
diff --git a/ports/qt5scxml/portfile.cmake b/ports/qt5scxml/portfile.cmake
index db2f385af..03de826cf 100644
--- a/ports/qt5scxml/portfile.cmake
+++ b/ports/qt5scxml/portfile.cmake
@@ -31,56 +31,127 @@ endif()
# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
set(ENV{_CL_} "/utf-8")
+#Store build paths
+set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+#Find Python and add it to the path
+vcpkg_find_acquire_program(PYTHON3)
+get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
+set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
+set(_path "$ENV{PATH}")
+
+#Configure debug
vcpkg_configure_qmake_debug(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_debug(TARGETS sub-src-qmake_all)
+
+#Store debug makefiles path
+file(GLOB_RECURSE DEBUG_MAKEFILES ${DEBUG_DIR}/*Makefile*)
+
+#Fix path to Qt5QmlDevTools
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "vcpkg\\installed\\${TARGET_TRIPLET}\\lib\\Qt5QmlDevToolsd.lib" "vcpkg\\installed\\${TARGET_TRIPLET}\\debug\\lib\\Qt5QmlDevToolsd.lib")
+endforeach()
+
+#Build debug
vcpkg_build_qmake_debug()
+#Configure release
vcpkg_configure_qmake_release(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
-vcpkg_build_qmake_release()
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_release(TARGETS sub-src-qmake_all)
-vcpkg_find_acquire_program(PYTHON3)
-get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
-set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
-set(_path "$ENV{PATH}")
+#Store release makefile path
+file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
-set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
-set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+#Build release
+vcpkg_build_qmake_release()
-vcpkg_execute_required_process(
- COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
- WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
- LOGNAME fix-cmake
-)
+#Fix the cmake files if they exist
+if(EXISTS ${RELEASE_DIR}/lib/cmake)
+ vcpkg_execute_required_process(
+ COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
+ WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
+ LOGNAME fix-cmake
+ )
+endif()
-set(ENV{PATH} "${_path}")
+#Set the correct install directory to packages
+foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
+ vcpkg_replace_string(${RELEASE_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
-file(GLOB BINARY_TOOLS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bin/*.exe")
-file(INSTALL ${BINARY_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/qt5)
-file(REMOVE ${BINARY_TOOLS})
-file(GLOB BINARY_TOOLS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/bin/*.exe")
-file(INSTALL ${BINARY_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/qt5)
-file(REMOVE ${BINARY_TOOLS})
+#Install the module files
+vcpkg_build_qmake_debug(TARGETS install)
+vcpkg_build_qmake_release(TARGETS install)
-file(INSTALL ${DEBUG_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-file(INSTALL ${DEBUG_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
+#Reset the path to the baseline
+set(ENV{PATH} "${_path}")
-file(INSTALL ${RELEASE_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5)
+#Remove extra cmake files
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB RELEASE_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT RELEASE_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib)
+ endif()
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB DEBUG_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT DEBUG_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib)
+ endif()
+endif()
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+#Move release and debug dlls to the correct directory
+file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/tools/qt5/*.dll)
+file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*.dll)
+if (RELEASE_DLLS)
+ file(INSTALL ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${RELEASE_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB RELEASE_BINS ${CURRENT_PACKAGES_DIR}/tools/qt5/*)
+ if(NOT RELEASE_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/tools)
+ endif()
+endif()
+if(DEBUG_DLLS)
+ file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${DEBUG_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB DEBUG_BINS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*)
+ if(NOT DEBUG_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/tools)
+ endif()
+endif()
-file(GLOB RELEASE_DLLS "${CURRENT_PACKAGES_DIR}/lib/*.dll")
-file(GLOB DEBUG_DLLS "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll")
-file(REMOVE ${RELEASE_DLLS} ${DEBUG_DLLS})
+#If there are no include files in the module - create an empty one to stop vcpkg from complaining
+if(NOT EXISTS ${CURRENT_PACKAGES_DIR}/include)
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/.empty_${PORT} "")
+endif()
-file(INSTALL ${SOURCE_PATH}/LICENSE.LGPL3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5scxml RENAME copyright) \ No newline at end of file
+#Find the relevant license file and install it
+if(EXISTS "${SOURCE_PATH}/LICENSE.LGPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.LGPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPL3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3")
+endif()
+file(INSTALL ${LICENSE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}/ RENAME copyright) \ No newline at end of file
diff --git a/ports/qt5serial/portfile.cmake b/ports/qt5serial/portfile.cmake
index edcd4b20a..1d47b5d0a 100644
--- a/ports/qt5serial/portfile.cmake
+++ b/ports/qt5serial/portfile.cmake
@@ -31,49 +31,127 @@ endif()
# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
set(ENV{_CL_} "/utf-8")
+#Store build paths
+set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+#Find Python and add it to the path
+vcpkg_find_acquire_program(PYTHON3)
+get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
+set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
+set(_path "$ENV{PATH}")
+
+#Configure debug
vcpkg_configure_qmake_debug(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_debug(TARGETS sub-src-qmake_all)
+
+#Store debug makefiles path
+file(GLOB_RECURSE DEBUG_MAKEFILES ${DEBUG_DIR}/*Makefile*)
+
+#Fix path to Qt5QmlDevTools
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "vcpkg\\installed\\${TARGET_TRIPLET}\\lib\\Qt5QmlDevToolsd.lib" "vcpkg\\installed\\${TARGET_TRIPLET}\\debug\\lib\\Qt5QmlDevToolsd.lib")
+endforeach()
+
+#Build debug
vcpkg_build_qmake_debug()
+#Configure release
vcpkg_configure_qmake_release(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_release(TARGETS sub-src-qmake_all)
+
+#Store release makefile path
+file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
+
+#Build release
vcpkg_build_qmake_release()
-vcpkg_find_acquire_program(PYTHON3)
-get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
-set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
-set(_path "$ENV{PATH}")
+#Fix the cmake files if they exist
+if(EXISTS ${RELEASE_DIR}/lib/cmake)
+ vcpkg_execute_required_process(
+ COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
+ WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
+ LOGNAME fix-cmake
+ )
+endif()
-set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
-set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+#Set the correct install directory to packages
+foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
+ vcpkg_replace_string(${RELEASE_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
-vcpkg_execute_required_process(
- COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
- WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
- LOGNAME fix-cmake
-)
+#Install the module files
+vcpkg_build_qmake_debug(TARGETS install)
+vcpkg_build_qmake_release(TARGETS install)
+#Reset the path to the baseline
set(ENV{PATH} "${_path}")
-file(INSTALL ${DEBUG_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-file(INSTALL ${DEBUG_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-
-file(INSTALL ${RELEASE_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5)
+#Remove extra cmake files
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB RELEASE_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT RELEASE_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib)
+ endif()
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB DEBUG_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT DEBUG_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib)
+ endif()
+endif()
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+#Move release and debug dlls to the correct directory
+file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/tools/qt5/*.dll)
+file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*.dll)
+if (RELEASE_DLLS)
+ file(INSTALL ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${RELEASE_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB RELEASE_BINS ${CURRENT_PACKAGES_DIR}/tools/qt5/*)
+ if(NOT RELEASE_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/tools)
+ endif()
+endif()
+if(DEBUG_DLLS)
+ file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${DEBUG_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB DEBUG_BINS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*)
+ if(NOT DEBUG_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/tools)
+ endif()
+endif()
-file(GLOB RELEASE_DLLS "${CURRENT_PACKAGES_DIR}/lib/*.dll")
-file(GLOB DEBUG_DLLS "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll")
-file(REMOVE ${RELEASE_DLLS} ${DEBUG_DLLS})
+#If there are no include files in the module - create an empty one to stop vcpkg from complaining
+if(NOT EXISTS ${CURRENT_PACKAGES_DIR}/include)
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/.empty_${PORT} "")
+endif()
-file(INSTALL ${SOURCE_PATH}/LICENSE.LGPLv3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5serial RENAME copyright) \ No newline at end of file
+#Find the relevant license file and install it
+if(EXISTS "${SOURCE_PATH}/LICENSE.LGPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.LGPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPL3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3")
+endif()
+file(INSTALL ${LICENSE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}/ RENAME copyright) \ No newline at end of file
diff --git a/ports/qt5speech/portfile.cmake b/ports/qt5speech/portfile.cmake
index 39b52ff58..fa80da81d 100644
--- a/ports/qt5speech/portfile.cmake
+++ b/ports/qt5speech/portfile.cmake
@@ -31,51 +31,127 @@ endif()
# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
set(ENV{_CL_} "/utf-8")
+#Store build paths
+set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+#Find Python and add it to the path
+vcpkg_find_acquire_program(PYTHON3)
+get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
+set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
+set(_path "$ENV{PATH}")
+
+#Configure debug
vcpkg_configure_qmake_debug(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_debug(TARGETS sub-src-qmake_all)
+
+#Store debug makefiles path
+file(GLOB_RECURSE DEBUG_MAKEFILES ${DEBUG_DIR}/*Makefile*)
+
+#Fix path to Qt5QmlDevTools
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "vcpkg\\installed\\${TARGET_TRIPLET}\\lib\\Qt5QmlDevToolsd.lib" "vcpkg\\installed\\${TARGET_TRIPLET}\\debug\\lib\\Qt5QmlDevToolsd.lib")
+endforeach()
+
+#Build debug
vcpkg_build_qmake_debug()
+#Configure release
vcpkg_configure_qmake_release(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_release(TARGETS sub-src-qmake_all)
+
+#Store release makefile path
+file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
+
+#Build release
vcpkg_build_qmake_release()
-vcpkg_find_acquire_program(PYTHON3)
-get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
-set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
-set(_path "$ENV{PATH}")
+#Fix the cmake files if they exist
+if(EXISTS ${RELEASE_DIR}/lib/cmake)
+ vcpkg_execute_required_process(
+ COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
+ WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
+ LOGNAME fix-cmake
+ )
+endif()
-set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
-set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+#Set the correct install directory to packages
+foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
+ vcpkg_replace_string(${RELEASE_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
-vcpkg_execute_required_process(
- COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
- WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
- LOGNAME fix-cmake
-)
+#Install the module files
+vcpkg_build_qmake_debug(TARGETS install)
+vcpkg_build_qmake_release(TARGETS install)
+#Reset the path to the baseline
set(ENV{PATH} "${_path}")
-file(INSTALL ${DEBUG_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/plugins DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-file(INSTALL ${DEBUG_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-
-file(INSTALL ${RELEASE_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/plugins DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5)
+#Remove extra cmake files
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB RELEASE_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT RELEASE_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib)
+ endif()
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB DEBUG_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT DEBUG_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib)
+ endif()
+endif()
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+#Move release and debug dlls to the correct directory
+file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/tools/qt5/*.dll)
+file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*.dll)
+if (RELEASE_DLLS)
+ file(INSTALL ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${RELEASE_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB RELEASE_BINS ${CURRENT_PACKAGES_DIR}/tools/qt5/*)
+ if(NOT RELEASE_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/tools)
+ endif()
+endif()
+if(DEBUG_DLLS)
+ file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${DEBUG_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB DEBUG_BINS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*)
+ if(NOT DEBUG_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/tools)
+ endif()
+endif()
-file(GLOB RELEASE_DLLS "${CURRENT_PACKAGES_DIR}/lib/*.dll")
-file(GLOB DEBUG_DLLS "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll")
-file(REMOVE ${RELEASE_DLLS} ${DEBUG_DLLS})
+#If there are no include files in the module - create an empty one to stop vcpkg from complaining
+if(NOT EXISTS ${CURRENT_PACKAGES_DIR}/include)
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/.empty_${PORT} "")
+endif()
-file(INSTALL ${SOURCE_PATH}/LICENSE.LGPLv3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5speech RENAME copyright) \ No newline at end of file
+#Find the relevant license file and install it
+if(EXISTS "${SOURCE_PATH}/LICENSE.LGPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.LGPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPL3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3")
+endif()
+file(INSTALL ${LICENSE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}/ RENAME copyright) \ No newline at end of file
diff --git a/ports/qt5svg/portfile.cmake b/ports/qt5svg/portfile.cmake
index 13ea3d1e7..2b838714e 100644
--- a/ports/qt5svg/portfile.cmake
+++ b/ports/qt5svg/portfile.cmake
@@ -31,51 +31,127 @@ endif()
# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
set(ENV{_CL_} "/utf-8")
+#Store build paths
+set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+#Find Python and add it to the path
+vcpkg_find_acquire_program(PYTHON3)
+get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
+set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
+set(_path "$ENV{PATH}")
+
+#Configure debug
vcpkg_configure_qmake_debug(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_debug(TARGETS sub-src-qmake_all)
+
+#Store debug makefiles path
+file(GLOB_RECURSE DEBUG_MAKEFILES ${DEBUG_DIR}/*Makefile*)
+
+#Fix path to Qt5QmlDevTools
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "vcpkg\\installed\\${TARGET_TRIPLET}\\lib\\Qt5QmlDevToolsd.lib" "vcpkg\\installed\\${TARGET_TRIPLET}\\debug\\lib\\Qt5QmlDevToolsd.lib")
+endforeach()
+
+#Build debug
vcpkg_build_qmake_debug()
+#Configure release
vcpkg_configure_qmake_release(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_release(TARGETS sub-src-qmake_all)
+
+#Store release makefile path
+file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
+
+#Build release
vcpkg_build_qmake_release()
-vcpkg_find_acquire_program(PYTHON3)
-get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
-set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
-set(_path "$ENV{PATH}")
+#Fix the cmake files if they exist
+if(EXISTS ${RELEASE_DIR}/lib/cmake)
+ vcpkg_execute_required_process(
+ COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
+ WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
+ LOGNAME fix-cmake
+ )
+endif()
-set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
-set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+#Set the correct install directory to packages
+foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
+ vcpkg_replace_string(${RELEASE_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
-vcpkg_execute_required_process(
- COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
- WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
- LOGNAME fix-cmake
-)
+#Install the module files
+vcpkg_build_qmake_debug(TARGETS install)
+vcpkg_build_qmake_release(TARGETS install)
+#Reset the path to the baseline
set(ENV{PATH} "${_path}")
-file(INSTALL ${DEBUG_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/plugins DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-file(INSTALL ${DEBUG_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-
-file(INSTALL ${RELEASE_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/plugins DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5)
+#Remove extra cmake files
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB RELEASE_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT RELEASE_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib)
+ endif()
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB DEBUG_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT DEBUG_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib)
+ endif()
+endif()
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+#Move release and debug dlls to the correct directory
+file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/tools/qt5/*.dll)
+file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*.dll)
+if (RELEASE_DLLS)
+ file(INSTALL ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${RELEASE_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB RELEASE_BINS ${CURRENT_PACKAGES_DIR}/tools/qt5/*)
+ if(NOT RELEASE_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/tools)
+ endif()
+endif()
+if(DEBUG_DLLS)
+ file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${DEBUG_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB DEBUG_BINS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*)
+ if(NOT DEBUG_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/tools)
+ endif()
+endif()
-file(GLOB RELEASE_DLLS "${CURRENT_PACKAGES_DIR}/lib/*.dll")
-file(GLOB DEBUG_DLLS "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll")
-file(REMOVE ${RELEASE_DLLS} ${DEBUG_DLLS})
+#If there are no include files in the module - create an empty one to stop vcpkg from complaining
+if(NOT EXISTS ${CURRENT_PACKAGES_DIR}/include)
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/.empty_${PORT} "")
+endif()
-file(INSTALL ${SOURCE_PATH}/LICENSE.LGPLv3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5svg RENAME copyright) \ No newline at end of file
+#Find the relevant license file and install it
+if(EXISTS "${SOURCE_PATH}/LICENSE.LGPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.LGPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPL3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3")
+endif()
+file(INSTALL ${LICENSE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}/ RENAME copyright) \ No newline at end of file
diff --git a/ports/qt5tools/CONTROL b/ports/qt5tools/CONTROL
index 20c100ce9..702d4d68e 100644
--- a/ports/qt5tools/CONTROL
+++ b/ports/qt5tools/CONTROL
@@ -1,4 +1,4 @@
Source: qt5tools
Version: 5.9.2-0
-Description: Qt5 Tools Module. Includes deployment tools and helpers, Qt Designer, Assistant, and other applications
-Build-Depends: qt5base
+Description: Qt5 Tools Module; Includes deployment tools and helpers, Qt Designer, Assistant, and other applications
+Build-Depends: qt5base, qt5declarative \ No newline at end of file
diff --git a/ports/qt5tools/portfile.cmake b/ports/qt5tools/portfile.cmake
index b0bf93f29..2dcd4a3c3 100644
--- a/ports/qt5tools/portfile.cmake
+++ b/ports/qt5tools/portfile.cmake
@@ -31,55 +31,127 @@ endif()
# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
set(ENV{_CL_} "/utf-8")
+#Store build paths
+set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+#Find Python and add it to the path
+vcpkg_find_acquire_program(PYTHON3)
+get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
+set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
+set(_path "$ENV{PATH}")
+
+#Configure debug
vcpkg_configure_qmake_debug(
- SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
+ SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_debug(TARGETS sub-src-qmake_all)
+
+#Store debug makefiles path
+file(GLOB_RECURSE DEBUG_MAKEFILES ${DEBUG_DIR}/*Makefile*)
+
+#Fix path to Qt5QmlDevTools
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "vcpkg\\installed\\${TARGET_TRIPLET}\\lib\\Qt5QmlDevToolsd.lib" "vcpkg\\installed\\${TARGET_TRIPLET}\\debug\\lib\\Qt5QmlDevToolsd.lib")
+endforeach()
+
+#Build debug
vcpkg_build_qmake_debug()
+#Configure release
vcpkg_configure_qmake_release(
- SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
+ SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
-vcpkg_build_qmake_release()
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_release(TARGETS sub-src-qmake_all)
-vcpkg_find_acquire_program(PYTHON3)
-get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
-set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
+#Store release makefile path
+file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
-set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
-set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+#Build release
+vcpkg_build_qmake_release()
-vcpkg_execute_required_process(
- COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
- WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
- LOGNAME fix-cmake
-)
+#Fix the cmake files if they exist
+if(EXISTS ${RELEASE_DIR}/lib/cmake)
+ vcpkg_execute_required_process(
+ COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
+ WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
+ LOGNAME fix-cmake
+ )
+endif()
-set(ENV{PATH} "${_path}")
+#Set the correct install directory to packages
+foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
+ vcpkg_replace_string(${RELEASE_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
-file(GLOB BINARY_TOOLS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/bin/*.exe")
-file(INSTALL ${BINARY_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/qt5)
-file(REMOVE ${BINARY_TOOLS})
-file(GLOB BINARY_TOOLS "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/bin/*.exe")
-file(INSTALL ${BINARY_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/qt5)
-file(REMOVE ${BINARY_TOOLS})
+#Install the module files
+vcpkg_build_qmake_debug(TARGETS install)
+vcpkg_build_qmake_release(TARGETS install)
-file(INSTALL ${DEBUG_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-file(INSTALL ${DEBUG_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
+#Reset the path to the baseline
+set(ENV{PATH} "${_path}")
-file(INSTALL ${RELEASE_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5)
+#Remove extra cmake files
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB RELEASE_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT RELEASE_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib)
+ endif()
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB DEBUG_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT DEBUG_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib)
+ endif()
+endif()
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+#Move release and debug dlls to the correct directory
+file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/tools/qt5/*.dll)
+file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*.dll)
+if (RELEASE_DLLS)
+ file(INSTALL ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${RELEASE_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB RELEASE_BINS ${CURRENT_PACKAGES_DIR}/tools/qt5/*)
+ if(NOT RELEASE_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/tools)
+ endif()
+endif()
+if(DEBUG_DLLS)
+ file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${DEBUG_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB DEBUG_BINS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*)
+ if(NOT DEBUG_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/tools)
+ endif()
+endif()
-file(GLOB RELEASE_DLLS "${CURRENT_PACKAGES_DIR}/lib/*.dll")
-file(GLOB DEBUG_DLLS "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll")
-file(REMOVE ${RELEASE_DLLS} ${DEBUG_DLLS})
+#If there are no include files in the module - create an empty one to stop vcpkg from complaining
+if(NOT EXISTS ${CURRENT_PACKAGES_DIR}/include)
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/.empty_${PORT} "")
+endif()
-file(INSTALL ${SOURCE_PATH}/LICENSE.LGPL3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5tools RENAME copyright) \ No newline at end of file
+#Find the relevant license file and install it
+if(EXISTS "${SOURCE_PATH}/LICENSE.LGPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.LGPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPL3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3")
+endif()
+file(INSTALL ${LICENSE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}/ RENAME copyright) \ No newline at end of file
diff --git a/ports/qt5virtualkeyboard/portfile.cmake b/ports/qt5virtualkeyboard/portfile.cmake
index 6a4c921cb..a2f0b1999 100644
--- a/ports/qt5virtualkeyboard/portfile.cmake
+++ b/ports/qt5virtualkeyboard/portfile.cmake
@@ -31,43 +31,127 @@ endif()
# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
set(ENV{_CL_} "/utf-8")
+#Store build paths
+set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+#Find Python and add it to the path
+vcpkg_find_acquire_program(PYTHON3)
+get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
+set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
+set(_path "$ENV{PATH}")
+
+#Configure debug
vcpkg_configure_qmake_debug(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_debug(TARGETS sub-src-qmake_all)
+
+#Store debug makefiles path
+file(GLOB_RECURSE DEBUG_MAKEFILES ${DEBUG_DIR}/*Makefile*)
+
+#Fix path to Qt5QmlDevTools
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "vcpkg\\installed\\${TARGET_TRIPLET}\\lib\\Qt5QmlDevToolsd.lib" "vcpkg\\installed\\${TARGET_TRIPLET}\\debug\\lib\\Qt5QmlDevToolsd.lib")
+endforeach()
+
+#Build debug
vcpkg_build_qmake_debug()
+#Configure release
vcpkg_configure_qmake_release(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_release(TARGETS sub-src-qmake_all)
+
+#Store release makefile path
+file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
+
+#Build release
vcpkg_build_qmake_release()
-vcpkg_find_acquire_program(PYTHON3)
-get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
-set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
-set(_path "$ENV{PATH}")
+#Fix the cmake files if they exist
+if(EXISTS ${RELEASE_DIR}/lib/cmake)
+ vcpkg_execute_required_process(
+ COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
+ WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
+ LOGNAME fix-cmake
+ )
+endif()
-set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
-set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+#Set the correct install directory to packages
+foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
+ vcpkg_replace_string(${RELEASE_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
-vcpkg_execute_required_process(
- COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
- WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
- LOGNAME fix-cmake
-)
+#Install the module files
+vcpkg_build_qmake_debug(TARGETS install)
+vcpkg_build_qmake_release(TARGETS install)
+#Reset the path to the baseline
set(ENV{PATH} "${_path}")
-file(INSTALL ${DEBUG_DIR}/plugins DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-
-file(INSTALL ${RELEASE_DIR}/plugins DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5)
+#Remove extra cmake files
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB RELEASE_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT RELEASE_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib)
+ endif()
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB DEBUG_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT DEBUG_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib)
+ endif()
+endif()
-file(INSTALL ${RELEASE_DIR}/lib/cmake DESTINATION ${CURRENT_PACKAGES_DIR}/share)
+#Move release and debug dlls to the correct directory
+file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/tools/qt5/*.dll)
+file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*.dll)
+if (RELEASE_DLLS)
+ file(INSTALL ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${RELEASE_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB RELEASE_BINS ${CURRENT_PACKAGES_DIR}/tools/qt5/*)
+ if(NOT RELEASE_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/tools)
+ endif()
+endif()
+if(DEBUG_DLLS)
+ file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${DEBUG_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB DEBUG_BINS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*)
+ if(NOT DEBUG_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/tools)
+ endif()
+endif()
-#Create an empty include file so that vcpkg doesn't complain
-file(WRITE ${CURRENT_PACKAGES_DIR}/include/.empty_qt5virtualkeyboard "")
+#If there are no include files in the module - create an empty one to stop vcpkg from complaining
+if(NOT EXISTS ${CURRENT_PACKAGES_DIR}/include)
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/.empty_${PORT} "")
+endif()
-file(INSTALL ${SOURCE_PATH}/LICENSE.GPL3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5virtualkeyboard RENAME copyright) \ No newline at end of file
+#Find the relevant license file and install it
+if(EXISTS "${SOURCE_PATH}/LICENSE.LGPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.LGPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPL3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3")
+endif()
+file(INSTALL ${LICENSE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}/ RENAME copyright) \ No newline at end of file
diff --git a/ports/qt5websockets/portfile.cmake b/ports/qt5websockets/portfile.cmake
index 333483a74..64f9bf374 100644
--- a/ports/qt5websockets/portfile.cmake
+++ b/ports/qt5websockets/portfile.cmake
@@ -31,49 +31,127 @@ endif()
# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
set(ENV{_CL_} "/utf-8")
+#Store build paths
+set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+#Find Python and add it to the path
+vcpkg_find_acquire_program(PYTHON3)
+get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
+set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
+set(_path "$ENV{PATH}")
+
+#Configure debug
vcpkg_configure_qmake_debug(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_debug(TARGETS sub-src-qmake_all)
+
+#Store debug makefiles path
+file(GLOB_RECURSE DEBUG_MAKEFILES ${DEBUG_DIR}/*Makefile*)
+
+#Fix path to Qt5QmlDevTools
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "vcpkg\\installed\\${TARGET_TRIPLET}\\lib\\Qt5QmlDevToolsd.lib" "vcpkg\\installed\\${TARGET_TRIPLET}\\debug\\lib\\Qt5QmlDevToolsd.lib")
+endforeach()
+
+#Build debug
vcpkg_build_qmake_debug()
+#Configure release
vcpkg_configure_qmake_release(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_release(TARGETS sub-src-qmake_all)
+
+#Store release makefile path
+file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
+
+#Build release
vcpkg_build_qmake_release()
-vcpkg_find_acquire_program(PYTHON3)
-get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
-set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
-set(_path "$ENV{PATH}")
+#Fix the cmake files if they exist
+if(EXISTS ${RELEASE_DIR}/lib/cmake)
+ vcpkg_execute_required_process(
+ COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
+ WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
+ LOGNAME fix-cmake
+ )
+endif()
-set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
-set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+#Set the correct install directory to packages
+foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
+ vcpkg_replace_string(${RELEASE_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
-vcpkg_execute_required_process(
- COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
- WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
- LOGNAME fix-cmake
-)
+#Install the module files
+vcpkg_build_qmake_debug(TARGETS install)
+vcpkg_build_qmake_release(TARGETS install)
+#Reset the path to the baseline
set(ENV{PATH} "${_path}")
-file(INSTALL ${DEBUG_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-file(INSTALL ${DEBUG_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-
-file(INSTALL ${RELEASE_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5)
+#Remove extra cmake files
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB RELEASE_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT RELEASE_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib)
+ endif()
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB DEBUG_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT DEBUG_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib)
+ endif()
+endif()
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+#Move release and debug dlls to the correct directory
+file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/tools/qt5/*.dll)
+file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*.dll)
+if (RELEASE_DLLS)
+ file(INSTALL ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${RELEASE_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB RELEASE_BINS ${CURRENT_PACKAGES_DIR}/tools/qt5/*)
+ if(NOT RELEASE_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/tools)
+ endif()
+endif()
+if(DEBUG_DLLS)
+ file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${DEBUG_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB DEBUG_BINS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*)
+ if(NOT DEBUG_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/tools)
+ endif()
+endif()
-file(GLOB RELEASE_DLLS "${CURRENT_PACKAGES_DIR}/lib/*.dll")
-file(GLOB DEBUG_DLLS "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll")
-file(REMOVE ${RELEASE_DLLS} ${DEBUG_DLLS})
+#If there are no include files in the module - create an empty one to stop vcpkg from complaining
+if(NOT EXISTS ${CURRENT_PACKAGES_DIR}/include)
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/.empty_${PORT} "")
+endif()
-file(INSTALL ${SOURCE_PATH}/LICENSE.LGPL3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5websockets RENAME copyright) \ No newline at end of file
+#Find the relevant license file and install it
+if(EXISTS "${SOURCE_PATH}/LICENSE.LGPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.LGPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPL3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3")
+endif()
+file(INSTALL ${LICENSE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}/ RENAME copyright) \ No newline at end of file
diff --git a/ports/qt5winextras/portfile.cmake b/ports/qt5winextras/portfile.cmake
index b5842494a..04b55327f 100644
--- a/ports/qt5winextras/portfile.cmake
+++ b/ports/qt5winextras/portfile.cmake
@@ -31,49 +31,127 @@ endif()
# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
set(ENV{_CL_} "/utf-8")
+#Store build paths
+set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+#Find Python and add it to the path
+vcpkg_find_acquire_program(PYTHON3)
+get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
+set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
+set(_path "$ENV{PATH}")
+
+#Configure debug
vcpkg_configure_qmake_debug(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_debug(TARGETS sub-src-qmake_all)
+
+#Store debug makefiles path
+file(GLOB_RECURSE DEBUG_MAKEFILES ${DEBUG_DIR}/*Makefile*)
+
+#Fix path to Qt5QmlDevTools
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "vcpkg\\installed\\${TARGET_TRIPLET}\\lib\\Qt5QmlDevToolsd.lib" "vcpkg\\installed\\${TARGET_TRIPLET}\\debug\\lib\\Qt5QmlDevToolsd.lib")
+endforeach()
+
+#Build debug
vcpkg_build_qmake_debug()
+#Configure release
vcpkg_configure_qmake_release(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_release(TARGETS sub-src-qmake_all)
+
+#Store release makefile path
+file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
+
+#Build release
vcpkg_build_qmake_release()
-vcpkg_find_acquire_program(PYTHON3)
-get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
-set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
-set(_path "$ENV{PATH}")
+#Fix the cmake files if they exist
+if(EXISTS ${RELEASE_DIR}/lib/cmake)
+ vcpkg_execute_required_process(
+ COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
+ WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
+ LOGNAME fix-cmake
+ )
+endif()
-set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
-set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+#Set the correct install directory to packages
+foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
+ vcpkg_replace_string(${RELEASE_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
-vcpkg_execute_required_process(
- COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
- WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
- LOGNAME fix-cmake
-)
+#Install the module files
+vcpkg_build_qmake_debug(TARGETS install)
+vcpkg_build_qmake_release(TARGETS install)
+#Reset the path to the baseline
set(ENV{PATH} "${_path}")
-file(INSTALL ${DEBUG_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-file(INSTALL ${DEBUG_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-
-file(INSTALL ${RELEASE_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5)
+#Remove extra cmake files
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB RELEASE_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT RELEASE_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib)
+ endif()
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB DEBUG_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT DEBUG_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib)
+ endif()
+endif()
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+#Move release and debug dlls to the correct directory
+file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/tools/qt5/*.dll)
+file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*.dll)
+if (RELEASE_DLLS)
+ file(INSTALL ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${RELEASE_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB RELEASE_BINS ${CURRENT_PACKAGES_DIR}/tools/qt5/*)
+ if(NOT RELEASE_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/tools)
+ endif()
+endif()
+if(DEBUG_DLLS)
+ file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${DEBUG_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB DEBUG_BINS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*)
+ if(NOT DEBUG_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/tools)
+ endif()
+endif()
-file(GLOB RELEASE_DLLS "${CURRENT_PACKAGES_DIR}/lib/*.dll")
-file(GLOB DEBUG_DLLS "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll")
-file(REMOVE ${RELEASE_DLLS} ${DEBUG_DLLS})
+#If there are no include files in the module - create an empty one to stop vcpkg from complaining
+if(NOT EXISTS ${CURRENT_PACKAGES_DIR}/include)
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/.empty_${PORT} "")
+endif()
-file(INSTALL ${SOURCE_PATH}/LICENSE.LGPLv3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5winextras RENAME copyright) \ No newline at end of file
+#Find the relevant license file and install it
+if(EXISTS "${SOURCE_PATH}/LICENSE.LGPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.LGPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPL3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3")
+endif()
+file(INSTALL ${LICENSE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}/ RENAME copyright) \ No newline at end of file
diff --git a/ports/qt5xmlpatterns/portfile.cmake b/ports/qt5xmlpatterns/portfile.cmake
index 0bf42b19d..764628c5e 100644
--- a/ports/qt5xmlpatterns/portfile.cmake
+++ b/ports/qt5xmlpatterns/portfile.cmake
@@ -31,56 +31,127 @@ endif()
# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
set(ENV{_CL_} "/utf-8")
+#Store build paths
+set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
+set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+
+#Find Python and add it to the path
+vcpkg_find_acquire_program(PYTHON3)
+get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
+set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
+set(_path "$ENV{PATH}")
+
+#Configure debug
vcpkg_configure_qmake_debug(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_debug(TARGETS sub-src-qmake_all)
+
+#Store debug makefiles path
+file(GLOB_RECURSE DEBUG_MAKEFILES ${DEBUG_DIR}/*Makefile*)
+
+#Fix path to Qt5QmlDevTools
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "vcpkg\\installed\\${TARGET_TRIPLET}\\lib\\Qt5QmlDevToolsd.lib" "vcpkg\\installed\\${TARGET_TRIPLET}\\debug\\lib\\Qt5QmlDevToolsd.lib")
+endforeach()
+
+#Build debug
vcpkg_build_qmake_debug()
+#Configure release
vcpkg_configure_qmake_release(
SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/${SRCDIR_NAME}
)
-vcpkg_build_qmake_release()
+#First generate the makefiles so we can modify them
+vcpkg_build_qmake_release(TARGETS sub-src-qmake_all)
-vcpkg_find_acquire_program(PYTHON3)
-get_filename_component(PYTHON3_EXE_PATH ${PYTHON3} DIRECTORY)
-set(ENV{PATH} "${PYTHON3_EXE_PATH};$ENV{PATH}")
-set(_path "$ENV{PATH}")
+#Store release makefile path
+file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
-set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
-set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
+#Build release
+vcpkg_build_qmake_release()
-vcpkg_execute_required_process(
- COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
- WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
- LOGNAME fix-cmake
-)
+#Fix the cmake files if they exist
+if(EXISTS ${RELEASE_DIR}/lib/cmake)
+ vcpkg_execute_required_process(
+ COMMAND ${PYTHON3} ${CMAKE_CURRENT_LIST_DIR}/fixcmake.py
+ WORKING_DIRECTORY ${RELEASE_DIR}/lib/cmake
+ LOGNAME fix-cmake
+ )
+endif()
-set(ENV{PATH} "${_path}")
+#Set the correct install directory to packages
+foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
+ vcpkg_replace_string(${RELEASE_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
+foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ vcpkg_replace_string(${DEBUG_MAKEFILE} "(INSTALL_ROOT)\\vcpkg\\installed\\${TARGET_TRIPLET}" "(INSTALL_ROOT)\\vcpkg\\packages\\${PORT}_${TARGET_TRIPLET}")
+endforeach()
-file(INSTALL ${DEBUG_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR}/debug)
-file(INSTALL ${DEBUG_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
-file(INSTALL ${DEBUG_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5/debug)
+#Install the module files
+vcpkg_build_qmake_debug(TARGETS install)
+vcpkg_build_qmake_release(TARGETS install)
-file(INSTALL ${RELEASE_DIR}/bin DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/lib DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/include DESTINATION ${CURRENT_PACKAGES_DIR})
-file(INSTALL ${RELEASE_DIR}/mkspecs DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5)
+#Reset the path to the baseline
+set(ENV{PATH} "${_path}")
-file(GLOB BINARY_TOOLS "${CURRENT_PACKAGES_DIR}/bin/*.exe")
-file(INSTALL ${BINARY_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/tools/qt5)
-file(REMOVE ${BINARY_TOOLS})
-file(GLOB BINARY_TOOLS "${CURRENT_PACKAGES_DIR}/debug/bin/*.exe")
-file(INSTALL ${BINARY_TOOLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/tools/qt5)
-file(REMOVE ${BINARY_TOOLS})
+#Remove extra cmake files
+if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake)
+ file(MAKE_DIRECTORY ${CURRENT_PACKAGES_DIR}/share)
+ file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB RELEASE_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT RELEASE_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/lib)
+ endif()
+endif()
+if(EXISTS ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+ #Check if there are any libs left over; if not - delete the directory
+ file(GLOB DEBUG_LIBS ${CURRENT_PACKAGES_DIR}/lib/*)
+ if(NOT DEBUG_LIBS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib)
+ endif()
+endif()
-file(RENAME ${CURRENT_PACKAGES_DIR}/lib/cmake ${CURRENT_PACKAGES_DIR}/share/cmake)
-file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/lib/cmake)
+#Move release and debug dlls to the correct directory
+file(GLOB RELEASE_DLLS ${CURRENT_PACKAGES_DIR}/tools/qt5/*.dll)
+file(GLOB DEBUG_DLLS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*.dll)
+if (RELEASE_DLLS)
+ file(INSTALL ${RELEASE_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/bin)
+ file(REMOVE ${RELEASE_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB RELEASE_BINS ${CURRENT_PACKAGES_DIR}/tools/qt5/*)
+ if(NOT RELEASE_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/tools)
+ endif()
+endif()
+if(DEBUG_DLLS)
+ file(INSTALL ${DEBUG_DLLS} DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin)
+ file(REMOVE ${DEBUG_DLLS})
+ #Check if there are any binaries left over; if not - delete the directory
+ file(GLOB DEBUG_BINS ${CURRENT_PACKAGES_DIR}/debug/tools/qt5/*)
+ if(NOT DEBUG_BINS)
+ file(REMOVE_RECURSE ${CURRENT_PACKAGES_DIR}/debug/tools)
+ endif()
+endif()
-file(GLOB RELEASE_DLLS "${CURRENT_PACKAGES_DIR}/lib/*.dll")
-file(GLOB DEBUG_DLLS "${CURRENT_PACKAGES_DIR}/debug/lib/*.dll")
-file(REMOVE ${RELEASE_DLLS} ${DEBUG_DLLS})
+#If there are no include files in the module - create an empty one to stop vcpkg from complaining
+if(NOT EXISTS ${CURRENT_PACKAGES_DIR}/include)
+ file(WRITE ${CURRENT_PACKAGES_DIR}/include/.empty_${PORT} "")
+endif()
-file(INSTALL ${SOURCE_PATH}/LICENSE.LGPLv3 DESTINATION ${CURRENT_PACKAGES_DIR}/share/qt5xmlpatterns RENAME copyright) \ No newline at end of file
+#Find the relevant license file and install it
+if(EXISTS "${SOURCE_PATH}/LICENSE.LGPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.LGPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.LGPL3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPLv3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPLv3")
+elseif(EXISTS "${SOURCE_PATH}/LICENSE.GPL3")
+ set(LICENSE_PATH "${SOURCE_PATH}/LICENSE.GPL3")
+endif()
+file(INSTALL ${LICENSE_PATH} DESTINATION ${CURRENT_PACKAGES_DIR}/share/${PORT}/ RENAME copyright) \ No newline at end of file
diff --git a/scripts/cmake/vcpkg_common_functions.cmake b/scripts/cmake/vcpkg_common_functions.cmake
index 5dabd446e..e48b5e442 100644
--- a/scripts/cmake/vcpkg_common_functions.cmake
+++ b/scripts/cmake/vcpkg_common_functions.cmake
@@ -26,3 +26,4 @@ include(vcpkg_get_program_files_32_bit)
include(vcpkg_get_program_files_platform_bitness)
include(vcpkg_get_windows_sdk)
include(vcpkg_acquire_depot_tools)
+include(vcpkg_replace_string)
diff --git a/scripts/cmake/vcpkg_replace_string.cmake b/scripts/cmake/vcpkg_replace_string.cmake
new file mode 100644
index 000000000..3eb18d0bf
--- /dev/null
+++ b/scripts/cmake/vcpkg_replace_string.cmake
@@ -0,0 +1,14 @@
+#.rst:
+# .. command:: vcpkg_replace_string
+#
+# Replace a string in a file.
+#
+# ::
+# vcpkg_replace_string(filename match_string replace_string)
+#
+#
+function(vcpkg_replace_string filename match_string replace_string)
+ file(READ ${filename} _contents)
+ string(REPLACE "${match_string}" "${replace_string}" _contents "${_contents}")
+ file(WRITE ${filename} "${_contents}")
+endfunction()