aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ports/qscintilla/CONTROL2
-rw-r--r--ports/qscintilla/portfile.cmake75
-rw-r--r--ports/qt5-modularscripts/CONTROL2
-rw-r--r--ports/qt5-modularscripts/qt_modular_library.cmake56
-rw-r--r--ports/qwt/CONTROL2
-rw-r--r--ports/qwt/portfile.cmake54
-rw-r--r--scripts/cmake/vcpkg_build_qmake.cmake76
-rw-r--r--scripts/cmake/vcpkg_build_qmake_debug.cmake30
-rw-r--r--scripts/cmake/vcpkg_build_qmake_release.cmake30
-rw-r--r--scripts/cmake/vcpkg_common_functions.cmake4
-rw-r--r--scripts/cmake/vcpkg_configure_qmake.cmake41
-rw-r--r--scripts/cmake/vcpkg_configure_qmake_debug.cmake46
-rw-r--r--scripts/cmake/vcpkg_configure_qmake_release.cmake46
13 files changed, 116 insertions, 348 deletions
diff --git a/ports/qscintilla/CONTROL b/ports/qscintilla/CONTROL
index 65fa0cd63..6453ad643 100644
--- a/ports/qscintilla/CONTROL
+++ b/ports/qscintilla/CONTROL
@@ -1,4 +1,4 @@
Source: qscintilla
-Version: 2.10-3
+Version: 2.10-4
Description: QScintilla is a port to Qt of the Scintilla editing component. Features syntax highlighting, code-completion and much more (Barebone build without python bindings (missing dependeny PyQt) and without QtDesigner plugin)
Build-Depends: qt5-base
diff --git a/ports/qscintilla/portfile.cmake b/ports/qscintilla/portfile.cmake
index fd60a5957..18ff18a97 100644
--- a/ports/qscintilla/portfile.cmake
+++ b/ports/qscintilla/portfile.cmake
@@ -1,15 +1,3 @@
-# Common Ambient Variables:
-# CURRENT_BUILDTREES_DIR = ${VCPKG_ROOT_DIR}\buildtrees\${PORT}
-# CURRENT_PACKAGES_DIR = ${VCPKG_ROOT_DIR}\packages\${PORT}_${TARGET_TRIPLET}
-# CURRENT_PORT DIR = ${VCPKG_ROOT_DIR}\ports\${PORT}
-# PORT = current port name (zlib, etc)
-# TARGET_TRIPLET = current triplet (x86-windows, x64-windows-static, etc)
-# VCPKG_CRT_LINKAGE = C runtime linkage type (static, dynamic)
-# VCPKG_LIBRARY_LINKAGE = target library linkage type (static, dynamic)
-# VCPKG_ROOT_DIR = <C:\path\to\current\vcpkg>
-# VCPKG_TARGET_ARCHITECTURE = target architecture (x64, x86, arm)
-#
-
include(vcpkg_common_functions)
set(SOURCE_PATH ${CURRENT_BUILDTREES_DIR}/src/QScintilla_gpl-2.10)
vcpkg_download_distfile(ARCHIVE
@@ -31,70 +19,24 @@ set(BUILD_OPTIONS
CONFIG-=hide_symbols
)
-if(VCPKG_LIBRARY_LINKAGE STREQUAL static)
- set(BUILD_OPTIONS
- ${BUILD_OPTIONS}
- CONFIG+=staticlib
- )
-endif()
-
SET(ENV{PATH} "$ENV{PATH};${CURRENT_INSTALLED_DIR}/bin;${CURRENT_INSTALLED_DIR}/debug/bin")
#Store build paths
set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
-file(REMOVE_RECURSE "${DEBUG_DIR}" "${RELEASE_DIR}")
-
-#Configure debug
-vcpkg_configure_qmake_debug(
+vcpkg_configure_qmake(
SOURCE_PATH ${SOURCE_PATH}/Qt4Qt5
+ OPTIONS
+ CONFIG+=build_all
+ CONFIG-=hide_symbols
)
-#First generate the makefiles so we can modify them
-vcpkg_build_qmake_debug(TARGETS qmake_all)
-
-#Store debug makefiles path
-file(GLOB_RECURSE DEBUG_MAKEFILES ${DEBUG_DIR}/*Makefile*)
-
-foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
- file(READ "${DEBUG_MAKEFILE}" _contents)
- string(REPLACE "zlib.lib" "zlibd.lib" _contents "${_contents}")
- string(REPLACE "installed\\${TARGET_TRIPLET}\\lib" "installed\\${TARGET_TRIPLET}\\debug\\lib" _contents "${_contents}")
- string(REPLACE "/LIBPATH:${NATIVE_INSTALLED_DIR}\\debug\\lib qtmaind.lib" "shell32.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\debug\\lib\\manual-link qtmaind.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\debug\\lib" _contents "${_contents}")
- file(WRITE "${DEBUG_MAKEFILE}" "${_contents}")
-endforeach()
-
-#Build debug
-vcpkg_build_qmake_debug(TARGETS debug)
-
-#Configure release
-vcpkg_configure_qmake_release(
- SOURCE_PATH ${SOURCE_PATH}/Qt4Qt5
+vcpkg_build_qmake(
+ RELEASE_TARGETS release
+ DEBUG_TARGETS debug
)
-#First generate the makefiles so we can modify them
-vcpkg_build_qmake_release(TARGETS qmake_all)
-
-#Store release makefile path
-file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
-
-foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
- file(READ "${RELEASE_MAKEFILE}" _contents)
- string(REPLACE "/LIBPATH:${NATIVE_INSTALLED_DIR}\\lib qtmain.lib" "shell32.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\lib\\manual-link qtmain.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\lib" _contents "${_contents}")
- file(WRITE "${RELEASE_MAKEFILE}" "${_contents}")
-endforeach()
-
-#Build release
-vcpkg_build_qmake_release(TARGETS release)
-
-#Set the correct install directory to packages
-foreach(MAKEFILE ${RELEASE_MAKEFILES} ${DEBUG_MAKEFILES})
- vcpkg_replace_string(${MAKEFILE} "(INSTALL_ROOT)${INSTALLED_DIR_WITHOUT_DRIVE}" "(INSTALL_ROOT)${PACKAGES_DIR_WITHOUT_DRIVE}")
-endforeach()
-
-set(BUILD_DIR ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET})
-
file(GLOB HEADER_FILES ${SOURCE_PATH}/Qt4Qt5/Qsci/*)
file(INSTALL ${HEADER_FILES} DESTINATION ${CURRENT_PACKAGES_DIR}/include/Qsci)
@@ -120,11 +62,10 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
${DEBUG_DIR}/debug/qscintilla2_qt5.dll
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
)
+endif()
vcpkg_copy_pdbs()
-endif()
-
# Handle copyright
file(COPY ${SOURCE_PATH}/LICENSE DESTINATION ${CURRENT_PACKAGES_DIR}/share/qscintilla)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/qscintilla/LICENSE ${CURRENT_PACKAGES_DIR}/share/qscintilla/copyright)
diff --git a/ports/qt5-modularscripts/CONTROL b/ports/qt5-modularscripts/CONTROL
index ddbdea51e..bf2ab2734 100644
--- a/ports/qt5-modularscripts/CONTROL
+++ b/ports/qt5-modularscripts/CONTROL
@@ -1,3 +1,3 @@
Source: qt5-modularscripts
-Version: 0
+Version: 1
Description: Vcpkg helpers to package qt5 modules
diff --git a/ports/qt5-modularscripts/qt_modular_library.cmake b/ports/qt5-modularscripts/qt_modular_library.cmake
index cdffc58fa..0301bcebc 100644
--- a/ports/qt5-modularscripts/qt_modular_library.cmake
+++ b/ports/qt5-modularscripts/qt_modular_library.cmake
@@ -34,8 +34,6 @@ function(qt_modular_library NAME HASH)
set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
- file(REMOVE_RECURSE "${DEBUG_DIR}" "${RELEASE_DIR}")
-
#Find Python and add it to the path
vcpkg_find_acquire_program(PYTHON2)
get_filename_component(PYTHON2_EXE_PATH ${PYTHON2} DIRECTORY)
@@ -43,51 +41,14 @@ function(qt_modular_library NAME HASH)
file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}" NATIVE_INSTALLED_DIR)
file(TO_NATIVE_PATH "${CURRENT_PACKAGES_DIR}" NATIVE_PACKAGES_DIR)
-
+
string(SUBSTRING "${NATIVE_INSTALLED_DIR}" 2 -1 INSTALLED_DIR_WITHOUT_DRIVE)
string(SUBSTRING "${NATIVE_PACKAGES_DIR}" 2 -1 PACKAGES_DIR_WITHOUT_DRIVE)
- #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 qmake_all)
-
- #Store debug makefiles path
- file(GLOB_RECURSE DEBUG_MAKEFILES ${DEBUG_DIR}/*Makefile*)
-
- foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
- file(READ "${DEBUG_MAKEFILE}" _contents)
- string(REPLACE "zlib.lib" "zlibd.lib" _contents "${_contents}")
- string(REPLACE "installed\\${TARGET_TRIPLET}\\lib" "installed\\${TARGET_TRIPLET}\\debug\\lib" _contents "${_contents}")
- string(REPLACE "/LIBPATH:${NATIVE_INSTALLED_DIR}\\debug\\lib qtmaind.lib" "shell32.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\debug\\lib\\manual-link qtmaind.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\debug\\lib" _contents "${_contents}")
- file(WRITE "${DEBUG_MAKEFILE}" "${_contents}")
- endforeach()
-
- #Build debug
- vcpkg_build_qmake_debug()
+ #Configure debug+release
+ vcpkg_configure_qmake(SOURCE_PATH ${SOURCE_PATH})
- #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 qmake_all)
-
- #Store release makefile path
- file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
-
- foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
- file(READ "${RELEASE_MAKEFILE}" _contents)
- string(REPLACE "/LIBPATH:${NATIVE_INSTALLED_DIR}\\lib qtmain.lib" "shell32.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\lib\\manual-link qtmain.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\lib" _contents "${_contents}")
- file(WRITE "${RELEASE_MAKEFILE}" "${_contents}")
- endforeach()
-
- #Build release
- vcpkg_build_qmake_release()
+ vcpkg_build_qmake()
#Fix the cmake files if they exist
if(EXISTS ${RELEASE_DIR}/lib/cmake)
@@ -97,15 +58,16 @@ function(qt_modular_library NAME HASH)
LOGNAME fix-cmake
)
endif()
-
+
+ file(GLOB_RECURSE MAKEFILES ${DEBUG_DIR}/*Makefile* ${RELEASE_DIR}/*Makefile*)
+
#Set the correct install directory to packages
- foreach(MAKEFILE ${RELEASE_MAKEFILES} ${DEBUG_MAKEFILES})
+ foreach(MAKEFILE ${MAKEFILES})
vcpkg_replace_string(${MAKEFILE} "(INSTALL_ROOT)${INSTALLED_DIR_WITHOUT_DRIVE}" "(INSTALL_ROOT)${PACKAGES_DIR_WITHOUT_DRIVE}")
endforeach()
#Install the module files
- vcpkg_build_qmake_debug(TARGETS install)
- vcpkg_build_qmake_release(TARGETS install)
+ vcpkg_build_qmake(TARGETS install SKIP_MAKEFILES BUILD_LOGNAME install)
#Remove extra cmake files
if(EXISTS ${CURRENT_PACKAGES_DIR}/lib/cmake)
diff --git a/ports/qwt/CONTROL b/ports/qwt/CONTROL
index 5bf85ad95..9dcf19f5b 100644
--- a/ports/qwt/CONTROL
+++ b/ports/qwt/CONTROL
@@ -1,4 +1,4 @@
Source: qwt
-Version: 6.1.3-3
+Version: 6.1.3-4
Description: Qt widgets library for technical applications
Build-Depends: qt5-base, qt5-svg
diff --git a/ports/qwt/portfile.cmake b/ports/qwt/portfile.cmake
index f4be871b7..918914a01 100644
--- a/ports/qwt/portfile.cmake
+++ b/ports/qwt/portfile.cmake
@@ -21,57 +21,16 @@ else()
)
endif()
-# The qwt build requires zlib1.dll
-SET(ENV{PATH} "$ENV{PATH};${CURRENT_INSTALLED_DIR}/bin;${CURRENT_INSTALLED_DIR}/debug/bin")
-
-#Store build paths
set(DEBUG_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
set(RELEASE_DIR "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
-file(REMOVE_RECURSE "${DEBUG_DIR}" "${RELEASE_DIR}")
-
-#Configure debug
-vcpkg_configure_qmake_debug(
- SOURCE_PATH ${SOURCE_PATH}
-)
-
-#First generate the makefiles so we can modify them
-vcpkg_build_qmake_debug(TARGETS qmake_all)
-
-#Store debug makefiles path
-file(GLOB_RECURSE DEBUG_MAKEFILES ${DEBUG_DIR}/*Makefile*)
-
-foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
- file(READ "${DEBUG_MAKEFILE}" _contents)
- string(REPLACE "zlib.lib" "zlibd.lib" _contents "${_contents}")
- string(REPLACE "installed\\${TARGET_TRIPLET}\\lib" "installed\\${TARGET_TRIPLET}\\debug\\lib" _contents "${_contents}")
- string(REPLACE "/LIBPATH:${NATIVE_INSTALLED_DIR}\\debug\\lib qtmaind.lib" "shell32.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\debug\\lib\\manual-link qtmaind.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\debug\\lib" _contents "${_contents}")
- file(WRITE "${DEBUG_MAKEFILE}" "${_contents}")
-endforeach()
-
-#Build debug
-vcpkg_build_qmake_debug(TARGETS sub-src-debug_ordered)
+vcpkg_configure_qmake(SOURCE_PATH ${SOURCE_PATH})
-#Configure release
-vcpkg_configure_qmake_release(
- SOURCE_PATH ${SOURCE_PATH}
+vcpkg_build_qmake(
+ RELEASE_TARGETS sub-src-release_ordered
+ DEBUG_TARGETS sub-src-debug_ordered
)
-#First generate the makefiles so we can modify them
-vcpkg_build_qmake_release(TARGETS qmake_all)
-
-#Store release makefile path
-file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
-
-foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
- file(READ "${RELEASE_MAKEFILE}" _contents)
- string(REPLACE "/LIBPATH:${NATIVE_INSTALLED_DIR}\\lib qtmain.lib" "shell32.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\lib\\manual-link qtmain.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\lib" _contents "${_contents}")
- file(WRITE "${RELEASE_MAKEFILE}" "${_contents}")
-endforeach()
-
-#Build release
-vcpkg_build_qmake_release(TARGETS sub-src-release_ordered)
-
#Set the correct install directory to packages
foreach(MAKEFILE ${RELEASE_MAKEFILES} ${DEBUG_MAKEFILES})
vcpkg_replace_string(${MAKEFILE} "(INSTALL_ROOT)${INSTALLED_DIR_WITHOUT_DRIVE}" "(INSTALL_ROOT)${PACKAGES_DIR_WITHOUT_DRIVE}")
@@ -92,7 +51,7 @@ file(INSTALL
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/lib
)
-if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
+if(VCPKG_LIBRARY_LINKAGE STREQUAL "dynamic")
file(INSTALL
${RELEASE_DIR}/lib/qwt.dll
DESTINATION ${CURRENT_PACKAGES_DIR}/bin
@@ -100,11 +59,12 @@ if(VCPKG_LIBRARY_LINKAGE STREQUAL dynamic)
file(INSTALL
${DEBUG_DIR}/lib/qwtd.dll
- ${DEBUG_DIR}/lib/qwtd.pdb
DESTINATION ${CURRENT_PACKAGES_DIR}/debug/bin
)
endif()
+vcpkg_copy_pdbs()
+
# Handle copyright
file(COPY ${SOURCE_PATH}/COPYING DESTINATION ${CURRENT_PACKAGES_DIR}/share/qwt)
file(RENAME ${CURRENT_PACKAGES_DIR}/share/qwt/COPYING ${CURRENT_PACKAGES_DIR}/share/qwt/copyright)
diff --git a/scripts/cmake/vcpkg_build_qmake.cmake b/scripts/cmake/vcpkg_build_qmake.cmake
index 693f7841e..194ab8206 100644
--- a/scripts/cmake/vcpkg_build_qmake.cmake
+++ b/scripts/cmake/vcpkg_build_qmake.cmake
@@ -1,31 +1,81 @@
#.rst:
# .. command:: vcpkg_build_qmake
#
-# Build a qmake-based project, previously configured using vcpkg_configure_qmake .
-# As the CONFIG qmake option is assumed to be "debug_and_release" (the default value on Windows, see [1]),
-# both the debug and release libraries are build in the same build tree.
+# Build a qmake-based project, previously configured using vcpkg_configure_qmake.
#
# ::
# vcpkg_build_qmake()
#
-#
-# [1] : http://doc.qt.io/qt-5/qmake-variable-reference.html
function(vcpkg_build_qmake)
+ cmake_parse_arguments(_csc "SKIP_MAKEFILES" "BUILD_LOGNAME" "TARGETS;RELEASE_TARGETS;DEBUG_TARGETS" ${ARGN})
vcpkg_find_acquire_program(JOM)
# Make sure that the linker finds the libraries used
set(ENV_PATH_BACKUP "$ENV{PATH}")
- set(ENV{PATH} "${CURRENT_INSTALLED_DIR}/lib;${CURRENT_INSTALLED_DIR}/debug/lib;${CURRENT_INSTALLED_DIR}/bin;${CURRENT_INSTALLED_DIR}/debug/bin;${CURRENT_INSTALLED_DIR}/tools/qt5;$ENV{PATH}")
- message(STATUS "Package ${TARGET_TRIPLET}")
- vcpkg_execute_required_process(
- COMMAND ${JOM}
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}
- LOGNAME package-${TARGET_TRIPLET}
- )
- message(STATUS "Package ${TARGET_TRIPLET} done")
+ set(DEBUG_DIR ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
+ set(RELEASE_DIR ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
+
+ file(TO_NATIVE_PATH "${CURRENT_INSTALLED_DIR}" NATIVE_INSTALLED_DIR)
+
+ list(APPEND _csc_RELEASE_TARGETS ${_csc_TARGETS})
+ list(APPEND _csc_DEBUG_TARGETS ${_csc_TARGETS})
+
+ if(NOT _csc_BUILD_LOGNAME)
+ set(_csc_BUILD_LOGNAME build)
+ endif()
+
+ function(run_jom TARGETS LOG_PREFIX LOG_SUFFIX)
+ message(STATUS "Package ${LOG_PREFIX}-${TARGET_TRIPLET}-${LOG_SUFFIX}")
+ vcpkg_execute_required_process(
+ COMMAND ${JOM} ${TARGETS}
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-${LOG_SUFFIX}
+ LOGNAME package-${LOG_PREFIX}-${TARGET_TRIPLET}-${LOG_SUFFIX}
+ )
+ message(STATUS "Package ${LOG_PREFIX}-${TARGET_TRIPLET}-${LOG_SUFFIX} done")
+ endfunction()
+
+ # This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
+ set(ENV_CL_BACKUP "$ENV{_CL_}")
+ set(ENV{_CL_} "/utf-8")
+
+ #First generate the makefiles so we can modify them
+ set(ENV{PATH} "${CURRENT_INSTALLED_DIR}/debug/lib;${CURRENT_INSTALLED_DIR}/debug/bin;${CURRENT_INSTALLED_DIR}/tools/qt5;${ENV_PATH_BACKUP}")
+ if(NOT _csc_SKIP_MAKEFILES)
+ run_jom(qmake_all makefiles dbg)
+
+ #Store debug makefiles path
+ file(GLOB_RECURSE DEBUG_MAKEFILES ${DEBUG_DIR}/*Makefile*)
+
+ foreach(DEBUG_MAKEFILE ${DEBUG_MAKEFILES})
+ file(READ "${DEBUG_MAKEFILE}" _contents)
+ string(REPLACE "zlib.lib" "zlibd.lib" _contents "${_contents}")
+ string(REPLACE "installed\\${TARGET_TRIPLET}\\lib" "installed\\${TARGET_TRIPLET}\\debug\\lib" _contents "${_contents}")
+ string(REPLACE "/LIBPATH:${NATIVE_INSTALLED_DIR}\\debug\\lib qtmaind.lib" "shell32.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\debug\\lib\\manual-link qtmaind.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\debug\\lib" _contents "${_contents}")
+ file(WRITE "${DEBUG_MAKEFILE}" "${_contents}")
+ endforeach()
+ endif()
+
+ run_jom("${_csc_DEBUG_TARGETS}" ${_csc_BUILD_LOGNAME} dbg)
+
+ set(ENV{PATH} "${CURRENT_INSTALLED_DIR}/lib;${CURRENT_INSTALLED_DIR}/bin;${CURRENT_INSTALLED_DIR}/tools/qt5;${ENV_PATH_BACKUP}")
+ if(NOT _csc_SKIP_MAKEFILES)
+ run_jom(qmake_all makefiles rel)
+
+ #Store release makefile path
+ file(GLOB_RECURSE RELEASE_MAKEFILES ${RELEASE_DIR}/*Makefile*)
+
+ foreach(RELEASE_MAKEFILE ${RELEASE_MAKEFILES})
+ file(READ "${RELEASE_MAKEFILE}" _contents)
+ string(REPLACE "/LIBPATH:${NATIVE_INSTALLED_DIR}\\lib qtmain.lib" "shell32.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\lib\\manual-link qtmain.lib /LIBPATH:${NATIVE_INSTALLED_DIR}\\lib" _contents "${_contents}")
+ file(WRITE "${RELEASE_MAKEFILE}" "${_contents}")
+ endforeach()
+ endif()
+
+ run_jom("${_csc_RELEASE_TARGETS}" ${_csc_BUILD_LOGNAME} rel)
# Restore the original value of ENV{PATH}
set(ENV{PATH} "${ENV_PATH_BACKUP}")
+ set(ENV{_CL_} "${ENV_CL_BACKUP}")
endfunction()
diff --git a/scripts/cmake/vcpkg_build_qmake_debug.cmake b/scripts/cmake/vcpkg_build_qmake_debug.cmake
deleted file mode 100644
index a734e63cf..000000000
--- a/scripts/cmake/vcpkg_build_qmake_debug.cmake
+++ /dev/null
@@ -1,30 +0,0 @@
-#.rst:
-# .. command:: vcpkg_build_qmake_debug
-#
-# Build a qmake-based project, previously configured using vcpkg_configure_qmake_debug.
-#
-# ::
-# vcpkg_build_qmake_debug()
-#
-#
-# [1] : http://doc.qt.io/qt-5/qmake-variable-reference.html
-
-function(vcpkg_build_qmake_debug)
- cmake_parse_arguments(_csc "" "" "TARGETS" ${ARGN})
- vcpkg_find_acquire_program(JOM)
-
- # Make sure that the linker finds the libraries used
- set(ENV_PATH_BACKUP "$ENV{PATH}")
- set(ENV{PATH} "${CURRENT_INSTALLED_DIR}/debug/lib;${CURRENT_INSTALLED_DIR}/debug/bin;${CURRENT_INSTALLED_DIR}/debug/tools/qt5;$ENV{PATH}")
-
- message(STATUS "Package ${TARGET_TRIPLET}-dbg")
- vcpkg_execute_required_process(
- COMMAND ${JOM} ${_csc_TARGETS}
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
- LOGNAME package-${TARGET_TRIPLET}-dbg
- )
- message(STATUS "Package ${TARGET_TRIPLET}-dbg done")
-
- # Restore the original value of ENV{PATH}
- set(ENV{PATH} "${ENV_PATH_BACKUP}")
-endfunction()
diff --git a/scripts/cmake/vcpkg_build_qmake_release.cmake b/scripts/cmake/vcpkg_build_qmake_release.cmake
deleted file mode 100644
index 3daf9201b..000000000
--- a/scripts/cmake/vcpkg_build_qmake_release.cmake
+++ /dev/null
@@ -1,30 +0,0 @@
-#.rst:
-# .. command:: vcpkg_build_qmake_release
-#
-# Build a qmake-based project, previously configured using vcpkg_configure_qmake_release.
-#
-# ::
-# vcpkg_build_qmake_release()
-#
-#
-# [1] : http://doc.qt.io/qt-5/qmake-variable-reference.html
-
-function(vcpkg_build_qmake_release)
- cmake_parse_arguments(_csc "" "" "TARGETS" ${ARGN})
- vcpkg_find_acquire_program(JOM)
-
- # Make sure that the linker finds the libraries used
- set(ENV_PATH_BACKUP "$ENV{PATH}")
- set(ENV{PATH} "${CURRENT_INSTALLED_DIR}/lib;${CURRENT_INSTALLED_DIR}/bin;${CURRENT_INSTALLED_DIR}/tools/qt5;$ENV{PATH}")
-
- message(STATUS "Package ${TARGET_TRIPLET}-rel")
- vcpkg_execute_required_process(
- COMMAND ${JOM} ${_csc_TARGETS}
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
- LOGNAME package-${TARGET_TRIPLET}-rel
- )
- message(STATUS "Package ${TARGET_TRIPLET}-rel done")
-
- # Restore the original value of ENV{PATH}
- set(ENV{PATH} "${ENV_PATH_BACKUP}")
-endfunction()
diff --git a/scripts/cmake/vcpkg_common_functions.cmake b/scripts/cmake/vcpkg_common_functions.cmake
index 258b8f64a..27dd0732d 100644
--- a/scripts/cmake/vcpkg_common_functions.cmake
+++ b/scripts/cmake/vcpkg_common_functions.cmake
@@ -10,15 +10,11 @@ include(vcpkg_from_bitbucket)
include(vcpkg_build_cmake)
include(vcpkg_build_msbuild)
include(vcpkg_build_qmake)
-include(vcpkg_build_qmake_debug)
-include(vcpkg_build_qmake_release)
include(vcpkg_install_cmake)
include(vcpkg_install_meson)
include(vcpkg_configure_cmake)
include(vcpkg_configure_meson)
include(vcpkg_configure_qmake)
-include(vcpkg_configure_qmake_debug)
-include(vcpkg_configure_qmake_release)
include(vcpkg_apply_patches)
include(vcpkg_copy_pdbs)
include(vcpkg_copy_tool_dependencies)
diff --git a/scripts/cmake/vcpkg_configure_qmake.cmake b/scripts/cmake/vcpkg_configure_qmake.cmake
index 037197e48..4cc7bc9f7 100644
--- a/scripts/cmake/vcpkg_configure_qmake.cmake
+++ b/scripts/cmake/vcpkg_configure_qmake.cmake
@@ -2,11 +2,6 @@
# .. command:: vcpkg_configure_qmake
#
# Configure a qmake-based project.
-# It is assume that the qmake project CONFIG variable is
-# "debug_and_release" (the default value on Windows, see [1]).
-# Using this option, only one Makefile for building both Release and Debug
-# libraries is generated, that then can be run using the vcpkg_build_qmake
-# command.
#
# ::
# vcpkg_configure_qmake(SOURCE_PATH <pro_file_path>
@@ -17,28 +12,44 @@
# The path to the *.pro qmake project file.
# ``OPTIONS``
# The options passed to qmake.
-#
-# [1] : http://doc.qt.io/qt-5/qmake-variable-reference.html
function(vcpkg_configure_qmake)
cmake_parse_arguments(_csc "" "SOURCE_PATH" "OPTIONS" ${ARGN})
- # Find qmake exectuable
+ # Find qmake executable
find_program(QMAKE_COMMAND NAMES qmake.exe PATHS ${CURRENT_INSTALLED_DIR}/tools/qt5)
if(NOT QMAKE_COMMAND)
message(FATAL_ERROR "vcpkg_configure_qmake: unable to find qmake.")
endif()
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ list(APPEND _csc_OPTIONS CONFIG+=staticlib)
+ endif()
+
# Cleanup build directories
- file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET})
+ file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
- message(STATUS "Configuring ${TARGET_TRIPLET}")
- file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET})
+ configure_file(${CURRENT_INSTALLED_DIR}/tools/qt5/qt_release.conf ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/qt.conf)
+
+ message(STATUS "Configuring ${TARGET_TRIPLET}-rel")
+ file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
vcpkg_execute_required_process(
- COMMAND ${QMAKE_COMMAND} ${_csc_OPTIONS} -d ${_csc_SOURCE_PATH}
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}
- LOGNAME config-${TARGET_TRIPLET}
+ COMMAND ${QMAKE_COMMAND} CONFIG-=debug CONFIG+=release ${_csc_OPTIONS} -d ${_csc_SOURCE_PATH} -qtconf "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/qt.conf"
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
+ LOGNAME config-${TARGET_TRIPLET}-rel
)
- message(STATUS "Configuring ${TARGET_TRIPLET} done")
+ message(STATUS "Configuring ${TARGET_TRIPLET}-rel done")
+
+ configure_file(${CURRENT_INSTALLED_DIR}/tools/qt5/qt_debug.conf ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/qt.conf)
+
+ message(STATUS "Configuring ${TARGET_TRIPLET}-dbg")
+ file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
+ vcpkg_execute_required_process(
+ COMMAND ${QMAKE_COMMAND} CONFIG-=release CONFIG+=debug ${_csc_OPTIONS} -d ${_csc_SOURCE_PATH} -qtconf "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/qt.conf"
+ WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
+ LOGNAME config-${TARGET_TRIPLET}-dbg
+ )
+ message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done")
+
endfunction() \ No newline at end of file
diff --git a/scripts/cmake/vcpkg_configure_qmake_debug.cmake b/scripts/cmake/vcpkg_configure_qmake_debug.cmake
deleted file mode 100644
index 3eeb42cb3..000000000
--- a/scripts/cmake/vcpkg_configure_qmake_debug.cmake
+++ /dev/null
@@ -1,46 +0,0 @@
-#.rst:
-# .. command:: vcpkg_configure_qmake_debug
-#
-# Configure a qmake-based project.
-# This sets the config variable to debug and outputs to
-# a debug triplet directory.
-#
-# ::
-# vcpkg_configure_qmake_debug(SOURCE_PATH <pro_file_path>
-# [OPTIONS arg1 [arg2 ...]]
-# )
-#
-# ``SOURCE_PATH``
-# The path to the *.pro qmake project file.
-# ``OPTIONS``
-# The options passed to qmake.
-#
-# [1] : http://doc.qt.io/qt-5/qmake-variable-reference.html
-
-function(vcpkg_configure_qmake_debug)
- cmake_parse_arguments(_csc "" "SOURCE_PATH" "OPTIONS" ${ARGN})
-
- # Find qmake exectuable
- find_program(QMAKE_COMMAND NAMES qmake.exe PATHS ${CURRENT_INSTALLED_DIR}/tools/qt5)
-
- if(NOT QMAKE_COMMAND)
- message(FATAL_ERROR "vcpkg_configure_qmake: unable to find qmake.")
- endif()
-
- # Cleanup build directories
- file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
-
- configure_file(${CURRENT_INSTALLED_DIR}/tools/qt5/qt_debug.conf ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/qt.conf)
-
- message(STATUS "Configuring ${TARGET_TRIPLET}-dbg")
- file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
- vcpkg_execute_required_process(
- COMMAND ${QMAKE_COMMAND} CONFIG-=release CONFIG+=debug ${_csc_OPTIONS} -d ${_csc_SOURCE_PATH} -qtconf "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/qt.conf"
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg
- LOGNAME config-${TARGET_TRIPLET}-dbg
- )
- message(STATUS "Configuring ${TARGET_TRIPLET}-dbg done")
- unset(QMAKE_COMMAND)
- unset(QMAKE_COMMAND PARENT_SCOPE)
- unset(QMAKE_COMMAND CACHE)
-endfunction() \ No newline at end of file
diff --git a/scripts/cmake/vcpkg_configure_qmake_release.cmake b/scripts/cmake/vcpkg_configure_qmake_release.cmake
deleted file mode 100644
index 60750060b..000000000
--- a/scripts/cmake/vcpkg_configure_qmake_release.cmake
+++ /dev/null
@@ -1,46 +0,0 @@
-#.rst:
-# .. command:: vcpkg_configure_qmake_release
-#
-# Configure a qmake-based project.
-# This sets the config variable to release and outputs to
-# a release triplet directory.
-#
-# ::
-# vcpkg_configure_qmake_release(SOURCE_PATH <pro_file_path>
-# [OPTIONS arg1 [arg2 ...]]
-# )
-#
-# ``SOURCE_PATH``
-# The path to the *.pro qmake project file.
-# ``OPTIONS``
-# The options passed to qmake.
-#
-# [1] : http://doc.qt.io/qt-5/qmake-variable-reference.html
-
-function(vcpkg_configure_qmake_release)
- cmake_parse_arguments(_csc "" "SOURCE_PATH" "OPTIONS" ${ARGN})
-
- # Find qmake exectuable
- find_program(QMAKE_COMMAND NAMES qmake.exe PATHS ${CURRENT_INSTALLED_DIR}/tools/qt5)
-
- if(NOT QMAKE_COMMAND)
- message(FATAL_ERROR "vcpkg_configure_qmake: unable to find qmake.")
- endif()
-
- # Cleanup build directories
- file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
-
- configure_file(${CURRENT_INSTALLED_DIR}/tools/qt5/qt_release.conf ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/qt.conf)
-
- message(STATUS "Configuring ${TARGET_TRIPLET}-rel")
- file(MAKE_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel)
- vcpkg_execute_required_process(
- COMMAND ${QMAKE_COMMAND} CONFIG-=debug CONFIG+=release ${_csc_OPTIONS} -d ${_csc_SOURCE_PATH} -qtconf "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/qt.conf"
- WORKING_DIRECTORY ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel
- LOGNAME config-${TARGET_TRIPLET}-rel
- )
- message(STATUS "Configuring ${TARGET_TRIPLET}-rel done")
- unset(QMAKE_COMMAND)
- unset(QMAKE_COMMAND PARENT_SCOPE)
- unset(QMAKE_COMMAND CACHE)
-endfunction() \ No newline at end of file