2019-09-13 01:07:22 +08:00
vcpkg_buildpath_length_warning ( 37 )
2019-04-15 20:00:14 +08:00
2019-11-22 13:17:35 +08:00
if ( VCPKG_LIBRARY_LINKAGE STREQUAL "static" )
option ( QT_OPENSSL_LINK "Link against OpenSSL at compile-time." ON )
else ( )
option ( QT_OPENSSL_LINK "Link against OpenSSL at compile-time." OFF )
endif ( )
2019-04-15 20:00:14 +08:00
list ( APPEND CMAKE_MODULE_PATH ${ CMAKE_CURRENT_LIST_DIR } )
2019-09-13 01:07:22 +08:00
list ( APPEND CMAKE_MODULE_PATH ${ CMAKE_CURRENT_LIST_DIR } /cmake )
2019-09-24 05:47:08 +08:00
if ( "latest" IN_LIST FEATURES )
set ( QT_BUILD_LATEST ON )
endif ( )
2019-09-13 01:07:22 +08:00
include ( qt_port_functions )
2019-04-15 20:00:14 +08:00
include ( configure_qt )
include ( install_qt )
2019-09-13 01:07:22 +08:00
#########################
## Find Host and Target mkspec name for configure
include ( find_qt_mkspec )
find_qt_mkspec ( TARGET_MKSPEC HOST_MKSPEC HOST_TOOLS )
set ( QT_PLATFORM_CONFIGURE_OPTIONS TARGET_PLATFORM ${ TARGET_MKSPEC } )
if ( DEFINED HOST_MKSPEC )
list ( APPEND QT_PLATFORM_CONFIGURE_OPTIONS HOST_PLATFORM ${ HOST_MKSPEC } )
endif ( )
if ( DEFINED HOST_TOOLS )
list ( APPEND QT_PLATFORM_CONFIGURE_OPTIONS HOST_TOOLS_ROOT ${ HOST_TOOLS } )
endif ( )
2019-04-15 20:00:14 +08:00
2019-09-13 01:07:22 +08:00
#########################
## Downloading Qt5-Base
qt_download_submodule ( OUT_SOURCE_PATH SOURCE_PATH
P A T C H E S
p a t c h e s / w i n m a i n _ p r o . p a t c h #Moves qtmain to manual-link
p a t c h e s / w i n d o w s _ p r f . p a t c h #fixes the qtmain dependency due to the above move
p a t c h e s / q t _ a p p . p a t c h #Moves the target location of qt5 host apps to always install into the host dir.
2020-01-07 04:36:51 +08:00
p a t c h e s / g u i _ c o n f i g u r e . p a t c h #Patches the gui configure.json to break freetype/fontconfig autodetection because it does not include its dependencies.
p a t c h e s / i c u . p a t c h #Help configure find static icu builds in vcpkg on windows
2019-09-13 01:07:22 +08:00
#patches/static_opengl.patch #Use this patch if you really want to statically link angle on windows (e.g. using -opengl es2 and -static).
#Be carefull since it requires definining _GDI32_ for all dependent projects due to redefinition errors in the
#the windows supplied gl.h header and the angle gl.h otherwise.
)
2019-04-15 20:00:14 +08:00
# Remove vendored dependencies to ensure they are not picked up by the build
2019-09-13 01:07:22 +08:00
foreach ( DEPENDENCY freetype zlib harfbuzz-ng libjpeg libpng double-conversion sqlite pcre2 )
2019-04-15 20:00:14 +08:00
if ( EXISTS ${ SOURCE_PATH } /src/3rdparty/ ${ DEPENDENCY } )
file ( REMOVE_RECURSE ${ SOURCE_PATH } /src/3rdparty/ ${ DEPENDENCY } )
endif ( )
endforeach ( )
file ( REMOVE_RECURSE ${ SOURCE_PATH } /include/QtZlib )
2019-09-13 01:07:22 +08:00
#########################
## Setup Configure options
2019-04-15 20:00:14 +08:00
# This fixes issues on machines with default codepages that are not ASCII compatible, such as some CJK encodings
set ( ENV{_CL_} "/utf-8" )
set ( CORE_OPTIONS
- c o n f i r m - l i c e n s e
- o p e n s o u r c e
2019-09-13 01:07:22 +08:00
#-no-fontconfig
#-simulator_and_device
#-ltcg
#-combined-angle-lib
# ENV ANGLE_DIR to external angle source dir. (Will always be compiled with Qt)
#-optimized-tools
#-force-debug-info
2020-01-07 04:36:51 +08:00
- v e r b o s e
2019-09-13 01:07:22 +08:00
)
## 3rd Party Libs
list ( APPEND CORE_OPTIONS
2019-04-15 20:00:14 +08:00
- s y s t e m - z l i b
- s y s t e m - l i b j p e g
- s y s t e m - l i b p n g
2019-09-13 01:07:22 +08:00
- s y s t e m - f r e e t y p e # static builds require to also link its dependent bzip!
2019-04-15 20:00:14 +08:00
- s y s t e m - p c r e
- s y s t e m - d o u b l e c o n v e r s i o n
- s y s t e m - s q l i t e
2020-01-07 04:36:51 +08:00
- s y s t e m - h a r f b u z z
- i c u
- n o - a n g l e ) # Qt does not need to build angle. VCPKG will build angle!
2019-04-15 20:00:14 +08:00
2019-11-22 13:17:35 +08:00
if ( QT_OPENSSL_LINK )
list ( APPEND CORE_OPTIONS -openssl-linked )
endif ( )
2019-09-13 01:07:22 +08:00
find_library ( ZLIB_RELEASE NAMES z zlib PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH )
find_library ( ZLIB_DEBUG NAMES z zlib zd zlibd PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH )
find_library ( JPEG_RELEASE NAMES jpeg jpeg-static PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH )
find_library ( JPEG_DEBUG NAMES jpeg jpeg-static jpegd jpeg-staticd PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH )
find_library ( LIBPNG_RELEASE NAMES png16 libpng16 PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH ) #Depends on zlib
find_library ( LIBPNG_DEBUG NAMES png16 png16d libpng16 libpng16d PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH )
find_library ( PSQL_RELEASE NAMES pq libpq PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH ) # Depends on openssl and zlib(linux)
find_library ( PSQL_DEBUG NAMES pq libpq pqd libpqd PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH )
find_library ( PCRE2_RELEASE NAMES pcre2-16 PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH )
find_library ( PCRE2_DEBUG NAMES pcre2-16 pcre2-16d PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH )
find_library ( FREETYPE_RELEASE NAMES freetype PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH ) #zlib, bzip2, libpng
find_library ( FREETYPE_DEBUG NAMES freetype freetyped PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH )
find_library ( DOUBLECONVERSION_RELEASE NAMES double-conversion PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH )
find_library ( DOUBLECONVERSION_DEBUG NAMES double-conversion PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH )
find_library ( HARFBUZZ_RELEASE NAMES harfbuzz PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH )
find_library ( HARFBUZZ_DEBUG NAMES harfbuzz PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH )
find_library ( SQLITE_RELEASE NAMES sqlite3 PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH ) # Depends on openssl and zlib(linux)
find_library ( SQLITE_DEBUG NAMES sqlite3 sqlite3d PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH )
2020-01-07 04:36:51 +08:00
find_library ( ICUUC_RELEASE NAMES icuuc libicuuc PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH )
find_library ( ICUUC_DEBUG NAMES icuucd libicuucd icuuc libicuuc PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH )
find_library ( ICUTU_RELEASE NAMES icutu libicutu PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH )
find_library ( ICUTU_DEBUG NAMES icutud libicutud icutu libicutu PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH )
# Was installed in WSL but not on CI machine
# find_library(ICULX_RELEASE NAMES iculx libiculx PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH)
# find_library(ICULX_DEBUG NAMES iculxd libiculxd iculx libiculx PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH)
find_library ( ICUIO_RELEASE NAMES icuio libicuio PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH )
find_library ( ICUIO_DEBUG NAMES icuiod libicuiod icuio libicuio PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH )
find_library ( ICUIN_RELEASE NAMES icui18n libicui18n icuin PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH )
find_library ( ICUIN_DEBUG NAMES icui18nd libicui18nd icui18n libicui18n icuin icuind PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH )
find_library ( ICUDATA_RELEASE NAMES icudata libicudata icudt PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH )
find_library ( ICUDATA_DEBUG NAMES icudatad libicudatad icudata libicudata icudtd PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH )
set ( ICU_RELEASE "${ICUIN_RELEASE} ${ICUTU_RELEASE} ${ICULX_RELEASE} ${ICUUC_RELEASE} ${ICUIO_RELEASE} ${ICUDATA_RELEASE}" )
set ( ICU_DEBUG "${ICUIN_DEBUG} ${ICUTU_DEBUG} ${ICULX_DEBUG} ${ICUUC_DEBUG} ${ICUIO_DEBUG} ${ICUDATA_DEBUG}" )
if ( VCPKG_TARGET_IS_WINDOWS )
set ( ICU_RELEASE "${ICU_RELEASE} Advapi32.lib" )
set ( ICU_DEBUG "${ICU_DEBUG} Advapi32.lib" )
endif ( )
find_library ( FONTCONFIG_RELEASE NAMES fontconfig PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH )
find_library ( FONTCONFIG_DEBUG NAMES fontconfig PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH )
find_library ( EXPAT_RELEASE NAMES expat PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH )
find_library ( EXPAT_DEBUG NAMES expat PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH )
2019-09-13 01:07:22 +08:00
#Dependent libraries
find_library ( BZ2_RELEASE bz2 PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH )
find_library ( BZ2_DEBUG bz2 bz2d PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH )
find_library ( SSL_RELEASE ssl ssleay32 PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH )
find_library ( SSL_DEBUG ssl ssleay32 ssld ssleay32d PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH )
find_library ( EAY_RELEASE libeay32 crypto libcrypto PATHS "${CURRENT_INSTALLED_DIR}/lib" NO_DEFAULT_PATH )
find_library ( EAY_DEBUG libeay32 crypto libcrypto libeay32d cryptod libcryptod PATHS "${CURRENT_INSTALLED_DIR}/debug/lib" NO_DEFAULT_PATH )
2019-04-15 20:00:14 +08:00
2019-09-13 01:07:22 +08:00
set ( RELEASE_OPTIONS
" L I B J P E G _ L I B S = $ { J P E G _ R E L E A S E } "
" Z L I B _ L I B S = $ { Z L I B _ R E L E A S E } "
" L I B P N G _ L I B S = $ { L I B P N G _ R E L E A S E } $ { Z L I B _ R E L E A S E } "
" P C R E 2 _ L I B S = $ { P C R E 2 _ R E L E A S E } "
" F R E E T Y P E _ L I B S = $ { F R E E T Y P E _ R E L E A S E } $ { B Z 2 _ R E L E A S E } $ { L I B P N G _ R E L E A S E } $ { Z L I B _ R E L E A S E } "
2020-01-07 04:36:51 +08:00
" I C U _ L I B S = $ { I C U _ R E L E A S E } "
2019-09-13 01:07:22 +08:00
" Q M A K E _ L I B S _ P R I V A T E + = $ { B Z 2 _ R E L E A S E } "
2020-01-07 04:36:51 +08:00
" Q M A K E _ L I B S _ P R I V A T E + = $ { L I B P N G _ R E L E A S E } "
2019-09-13 01:07:22 +08:00
)
set ( DEBUG_OPTIONS
" L I B J P E G _ L I B S = $ { J P E G _ D E B U G } "
" Z L I B _ L I B S = $ { Z L I B _ D E B U G } "
" L I B P N G _ L I B S = $ { L I B P N G _ D E B U G } $ { Z L I B _ D E B U G } "
" P C R E 2 _ L I B S = $ { P C R E 2 _ D E B U G } "
" F R E E T Y P E _ L I B S = $ { F R E E T Y P E _ D E B U G } $ { B Z 2 _ D E B U G } $ { L I B P N G _ D E B U G } $ { Z L I B _ D E B U G } "
2020-01-07 04:36:51 +08:00
" I C U _ L I B S = $ { I C U _ D E B U G } "
2019-09-13 01:07:22 +08:00
" Q M A K E _ L I B S _ P R I V A T E + = $ { B Z 2 _ D E B U G } "
" Q M A K E _ L I B S _ P R I V A T E + = $ { L I B P N G _ D E B U G } "
)
2019-04-15 20:00:14 +08:00
2019-09-13 01:07:22 +08:00
if ( VCPKG_TARGET_IS_WINDOWS )
if ( VCPKG_TARGET_IS_UWP )
list ( APPEND CORE_OPTIONS -appstore-compliant )
endif ( )
if ( NOT ${ VCPKG_LIBRARY_LINKAGE } STREQUAL "static" )
list ( APPEND CORE_OPTIONS -opengl dynamic ) # other options are "-no-opengl", "-opengl angle", and "-opengl desktop" and "-opengel es2"
else ( )
list ( APPEND CORE_OPTIONS -opengl dynamic ) # other possible option without moving angle dlls: "-opengl desktop". "-opengel es2" only works with commented patch
endif ( )
list ( APPEND RELEASE_OPTIONS
" P S Q L _ L I B S = $ { P S Q L _ R E L E A S E } $ { S S L _ R E L E A S E } $ { E A Y _ R E L E A S E } w s 2 _ 3 2 . l i b s e c u r 3 2 . l i b a d v a p i 3 2 . l i b s h e l l 3 2 . l i b c r y p t 3 2 . l i b u s e r 3 2 . l i b g d i 3 2 . l i b "
" S Q L I T E _ L I B S = $ { S Q L I T E _ R E L E A S E } "
" H A R F B U Z Z _ L I B S = $ { H A R F B U Z Z _ R E L E A S E } "
2020-01-07 04:36:51 +08:00
" O P E N S S L _ L I B S = $ { S S L _ R E L E A S E } $ { E A Y _ R E L E A S E } w s 2 _ 3 2 . l i b s e c u r 3 2 . l i b a d v a p i 3 2 . l i b s h e l l 3 2 . l i b c r y p t 3 2 . l i b u s e r 3 2 . l i b g d i 3 2 . l i b "
2019-09-13 01:07:22 +08:00
)
list ( APPEND DEBUG_OPTIONS
" P S Q L _ L I B S = $ { P S Q L _ D E B U G } $ { S S L _ D E B U G } $ { E A Y _ D E B U G } w s 2 _ 3 2 . l i b s e c u r 3 2 . l i b a d v a p i 3 2 . l i b s h e l l 3 2 . l i b c r y p t 3 2 . l i b u s e r 3 2 . l i b g d i 3 2 . l i b "
" S Q L I T E _ L I B S = $ { S Q L I T E _ D E B U G } "
" H A R F B U Z Z _ L I B S = $ { H A R F B U Z Z _ D E B U G } "
2020-01-07 04:36:51 +08:00
" O P E N S S L _ L I B S = $ { S S L _ D E B U G } $ { E A Y _ D E B U G } w s 2 _ 3 2 . l i b s e c u r 3 2 . l i b a d v a p i 3 2 . l i b s h e l l 3 2 . l i b c r y p t 3 2 . l i b u s e r 3 2 . l i b g d i 3 2 . l i b "
2019-09-13 01:07:22 +08:00
)
elseif ( VCPKG_TARGET_IS_LINUX )
2020-01-07 04:36:51 +08:00
list ( APPEND CORE_OPTIONS -fontconfig )
2019-07-18 01:45:26 +08:00
if ( NOT EXISTS "/usr/include/GL/glu.h" )
2019-09-13 01:07:22 +08:00
message ( FATAL_ERROR "qt5 requires libgl1-mesa-dev and libglu1-mesa-dev, please use your distribution's package manager to install them.\nExample: \" apt-get install libgl1-mesa-dev libglu1-mesa-dev\ "" )
2019-07-18 01:45:26 +08:00
endif ( )
2019-09-13 01:07:22 +08:00
list ( APPEND RELEASE_OPTIONS
" P S Q L _ L I B S = $ { P S Q L _ R E L E A S E } $ { S S L _ R E L E A S E } $ { E A Y _ R E L E A S E } - l d l - l p t h r e a d "
" S Q L I T E _ L I B S = $ { S Q L I T E _ R E L E A S E } - l d l - l p t h r e a d "
" H A R F B U Z Z _ L I B S = $ { H A R F B U Z Z _ R E L E A S E } "
2020-01-07 04:36:51 +08:00
" O P E N S S L _ L I B S = $ { S S L _ R E L E A S E } $ { E A Y _ R E L E A S E } - l d l - l p t h r e a d "
" F O N T C O N F I G _ L I B S = $ { F O N T C O N F I G _ R E L E A S E } $ { F R E E T Y P E _ R E L E A S E } $ { E X P A T _ R E L E A S E } "
2019-09-13 01:07:22 +08:00
)
list ( APPEND DEBUG_OPTIONS
" P S Q L _ L I B S = $ { P S Q L _ D E B U G } $ { S S L _ D E B U G } $ { E A Y _ D E B U G } - l d l - l p t h r e a d "
" S Q L I T E _ L I B S = $ { S Q L I T E _ D E B U G } - l d l - l p t h r e a d "
" H A R F B U Z Z _ L I B S = $ { H A R F B U Z Z _ D E B U G } "
2020-01-07 04:36:51 +08:00
" O P E N S S L _ L I B S = $ { S S L _ D E B U G } $ { E A Y _ D E B U G } - l d l - l p t h r e a d "
" F O N T C O N F I G _ L I B S = $ { F O N T C O N F I G _ D E B U G } $ { F R E E T Y P E _ D E B U G } $ { E X P A T _ D E B U G } "
2019-09-13 01:07:22 +08:00
)
elseif ( VCPKG_TARGET_IS_OSX )
2020-01-07 04:36:51 +08:00
list ( APPEND CORE_OPTIONS -fontconfig )
2019-09-13 01:07:22 +08:00
if ( DEFINED VCPKG_OSX_DEPLOYMENT_TARGET )
set ( ENV{QMAKE_MACOSX_DEPLOYMENT_TARGET} ${ VCPKG_OSX_DEPLOYMENT_TARGET } )
else ( )
execute_process ( COMMAND xcrun --show-sdk-version
O U T P U T _ F I L E O S X _ S D K _ V E R . t x t
W O R K I N G _ D I R E C T O R Y $ { C U R R E N T _ B U I L D T R E E S _ D I R } )
FILE ( STRINGS "${CURRENT_BUILDTREES_DIR}/OSX_SDK_VER.txt" VCPKG_OSX_DEPLOYMENT_TARGET REGEX "^[0-9][0-9]\.[0-9][0-9]*" )
message ( STATUS "Detected OSX SDK Version: ${VCPKG_OSX_DEPLOYMENT_TARGET}" )
string ( REGEX MATCH "^[0-9][0-9]\.[0-9][0-9]*" VCPKG_OSX_DEPLOYMENT_TARGET ${ VCPKG_OSX_DEPLOYMENT_TARGET } )
message ( STATUS "Major.Minor OSX SDK Version: ${VCPKG_OSX_DEPLOYMENT_TARGET}" )
set ( ENV{QMAKE_MACOSX_DEPLOYMENT_TARGET} ${ VCPKG_OSX_DEPLOYMENT_TARGET } )
2019-09-17 03:37:55 +08:00
if ( ${ VCPKG_OSX_DEPLOYMENT_TARGET } GREATER "10.15" ) # Max Version supported by QT. This version is defined in mkspecs/common/macx.conf as QT_MAC_SDK_VERSION_MAX
message ( STATUS "Qt ${QT_MAJOR_MINOR_VER}.${QT_PATCH_VER} only support OSX_DEPLOYMENT_TARGET up to 10.15" )
set ( VCPKG_OSX_DEPLOYMENT_TARGET "10.15" )
2019-09-13 01:07:22 +08:00
endif ( )
set ( ENV{QMAKE_MACOSX_DEPLOYMENT_TARGET} ${ VCPKG_OSX_DEPLOYMENT_TARGET } )
message ( STATUS "Enviromnent OSX SDK Version: $ENV{QMAKE_MACOSX_DEPLOYMENT_TARGET}" )
FILE ( READ "${SOURCE_PATH}/mkspecs/common/macx.conf" _tmp_contents )
string ( REPLACE "QMAKE_MACOSX_DEPLOYMENT_TARGET = 10.12" "QMAKE_MACOSX_DEPLOYMENT_TARGET = ${VCPKG_OSX_DEPLOYMENT_TARGET}" _tmp_contents ${ _tmp_contents } )
FILE ( WRITE "${SOURCE_PATH}/mkspecs/common/macx.conf" ${ _tmp_contents } )
endif ( )
#list(APPEND QT_PLATFORM_CONFIGURE_OPTIONS HOST_PLATFORM ${TARGET_MKSPEC})
list ( APPEND RELEASE_OPTIONS
" P S Q L _ L I B S = $ { P S Q L _ R E L E A S E } $ { S S L _ R E L E A S E } $ { E A Y _ R E L E A S E } - l d l - l p t h r e a d "
" S Q L I T E _ L I B S = $ { S Q L I T E _ R E L E A S E } - l d l - l p t h r e a d "
" H A R F B U Z Z _ L I B S = $ { H A R F B U Z Z _ R E L E A S E } - f r a m e w o r k A p p l i c a t i o n S e r v i c e s "
2020-01-07 04:36:51 +08:00
" O P E N S S L _ L I B S = $ { S S L _ R E L E A S E } $ { E A Y _ R E L E A S E } - l d l - l p t h r e a d "
" F O N T C O N F I G _ L I B S = $ { F O N T C O N F I G _ R E L E A S E } $ { F R E E T Y P E _ R E L E A S E } $ { E X P A T _ R E L E A S E } "
2019-09-13 01:07:22 +08:00
)
list ( APPEND DEBUG_OPTIONS
" P S Q L _ L I B S = $ { P S Q L _ D E B U G } $ { S S L _ D E B U G } $ { E A Y _ D E B U G } - l d l - l p t h r e a d "
" S Q L I T E _ L I B S = $ { S Q L I T E _ D E B U G } - l d l - l p t h r e a d "
" H A R F B U Z Z _ L I B S = $ { H A R F B U Z Z _ D E B U G } - f r a m e w o r k A p p l i c a t i o n S e r v i c e s "
2020-01-07 04:36:51 +08:00
" O P E N S S L _ L I B S = $ { S S L _ D E B U G } $ { E A Y _ D E B U G } - l d l - l p t h r e a d "
" F O N T C O N F I G _ L I B S = $ { F O N T C O N F I G _ D E B U G } $ { F R E E T Y P E _ D E B U G } $ { E X P A T _ D E B U G } "
2019-09-13 01:07:22 +08:00
)
endif ( )
2019-07-18 01:45:26 +08:00
2019-09-13 01:07:22 +08:00
## Do not build tests or examples
list ( APPEND CORE_OPTIONS
- n o m a k e e x a m p l e s
- n o m a k e t e s t s )
2019-04-15 20:00:14 +08:00
2019-09-17 03:37:55 +08:00
if ( QT_UPDATE_VERSION )
SET ( VCPKG_POLICY_EMPTY_PACKAGE enabled )
else ( )
configure_qt (
S O U R C E _ P A T H $ { S O U R C E _ P A T H }
$ { Q T _ P L A T F O R M _ C O N F I G U R E _ O P T I O N S }
O P T I O N S $ { C O R E _ O P T I O N S }
O P T I O N S _ R E L E A S E $ { R E L E A S E _ O P T I O N S }
O P T I O N S _ D E B U G $ { D E B U G _ O P T I O N S }
)
2019-04-15 20:00:14 +08:00
2019-09-17 03:37:55 +08:00
install_qt ( )
2019-04-15 20:00:14 +08:00
2019-09-17 03:37:55 +08:00
#########################
#TODO: Make this a function since it is also done by modular scripts!
# e.g. by patching mkspecs/features/qt_tools.prf somehow
file ( GLOB_RECURSE PRL_FILES "${CURRENT_PACKAGES_DIR}/lib/*.prl" "${CURRENT_PACKAGES_DIR}/tools/qt5/lib/*.prl" "${CURRENT_PACKAGES_DIR}/tools/qt5/mkspecs/*.pri"
" $ { C U R R E N T _ P A C K A G E S _ D I R } / d e b u g / l i b / * . p r l " " $ { C U R R E N T _ P A C K A G E S _ D I R } / t o o l s / q t 5 / d e b u g / l i b / * . p r l " " $ { C U R R E N T _ P A C K A G E S _ D I R } / t o o l s / q t 5 / d e b u g / m k s p e c s / * . p r i " )
2019-04-15 20:00:14 +08:00
2019-09-17 03:37:55 +08:00
file ( TO_CMAKE_PATH "${CURRENT_INSTALLED_DIR}/include" CMAKE_INCLUDE_PATH )
2019-05-01 00:29:41 +08:00
2019-09-17 03:37:55 +08:00
if ( NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release" )
qt_fix_prl ( "${CURRENT_INSTALLED_DIR}" "${PRL_FILES}" )
file ( COPY ${ CMAKE_CURRENT_LIST_DIR } /qtdeploy.ps1 DESTINATION ${ CURRENT_PACKAGES_DIR } /plugins )
endif ( )
2019-09-13 01:07:22 +08:00
2019-09-17 03:37:55 +08:00
if ( NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug" )
qt_fix_prl ( "${CURRENT_INSTALLED_DIR}/debug" "${PRL_FILES}" )
file ( COPY ${ CMAKE_CURRENT_LIST_DIR } /qtdeploy.ps1 DESTINATION ${ CURRENT_PACKAGES_DIR } /debug/plugins )
endif ( )
2019-04-15 20:00:14 +08:00
2019-09-17 03:37:55 +08:00
file ( MAKE_DIRECTORY ${ CURRENT_PACKAGES_DIR } /share )
file ( RENAME ${ CURRENT_PACKAGES_DIR } /lib/cmake ${ CURRENT_PACKAGES_DIR } /share/cmake )
file ( REMOVE_RECURSE ${ CURRENT_PACKAGES_DIR } /debug/lib/cmake ) # TODO: check if important debug information for cmake is lost
2019-09-13 01:07:22 +08:00
2019-09-17 03:37:55 +08:00
#This needs a new VCPKG policy.
if ( VCPKG_TARGET_IS_WINDOWS AND ${ VCPKG_LIBRARY_LINKAGE } MATCHES "static" ) # Move angle dll libraries
message ( STATUS "Moving ANGLE dlls from /bin to /tools/qt5-angle/bin. In static builds dlls are not allowed in /bin" )
2020-01-07 04:36:51 +08:00
if ( EXISTS "${CURRENT_PACKAGES_DIR}/bin" )
file ( MAKE_DIRECTORY ${ CURRENT_PACKAGES_DIR } /tools/qt5-angle )
file ( RENAME ${ CURRENT_PACKAGES_DIR } /bin ${ CURRENT_PACKAGES_DIR } /tools/qt5-angle/bin )
if ( EXISTS ${ CURRENT_PACKAGES_DIR } /debug/bin )
file ( MAKE_DIRECTORY ${ CURRENT_PACKAGES_DIR } /tools/qt5-angle/debug )
file ( RENAME ${ CURRENT_PACKAGES_DIR } /debug/bin ${ CURRENT_PACKAGES_DIR } /tools/qt5-angle/debug/bin )
endif ( )
2019-09-17 03:37:55 +08:00
endif ( )
2019-09-13 01:07:22 +08:00
endif ( )
2019-04-15 20:00:14 +08:00
2019-09-17 03:37:55 +08:00
#TODO: Replace python script with cmake script
vcpkg_execute_required_process (
C O M M A N D $ { P Y T H O N 3 } $ { C M A K E _ C U R R E N T _ L I S T _ D I R } / f i x c m a k e . p y
W O R K I N G _ D I R E C T O R Y $ { C U R R E N T _ P A C K A G E S _ D I R } / s h a r e / c m a k e
L O G N A M E f i x - c m a k e
)
file ( COPY ${ CMAKE_CURRENT_LIST_DIR } /vcpkg-cmake-wrapper.cmake DESTINATION ${ CURRENT_PACKAGES_DIR } /share/qt5core )
if ( EXISTS ${ CURRENT_PACKAGES_DIR } /tools/qt5/bin )
file ( COPY ${ CURRENT_PACKAGES_DIR } /tools/qt5/bin DESTINATION ${ CURRENT_PACKAGES_DIR } /tools/ ${ PORT } )
vcpkg_copy_tool_dependencies ( ${ CURRENT_PACKAGES_DIR } /tools/ ${ PORT } /bin )
vcpkg_copy_tool_dependencies ( ${ CURRENT_PACKAGES_DIR } /tools/qt5/bin )
endif ( )
2019-09-21 05:06:43 +08:00
if ( EXISTS ${ CURRENT_PACKAGES_DIR } /tools/qt5/bin/qt.conf )
file ( REMOVE "${CURRENT_PACKAGES_DIR}/tools/qt5/bin/qt.conf" )
endif ( )
2019-04-15 20:00:14 +08:00
2019-09-17 03:37:55 +08:00
qt_install_copyright ( ${ SOURCE_PATH } )
endif ( )
2019-09-13 01:07:22 +08:00
#install scripts for other qt ports
file ( COPY
$ { C M A K E _ C U R R E N T _ L I S T _ D I R } / f i x c m a k e . p y
$ { C M A K E _ C U R R E N T _ L I S T _ D I R } / c m a k e / q t _ p o r t _ h a s h e s . c m a k e
$ { C M A K E _ C U R R E N T _ L I S T _ D I R } / c m a k e / q t _ p o r t _ f u n c t i o n s . c m a k e
$ { C M A K E _ C U R R E N T _ L I S T _ D I R } / c m a k e / q t _ f i x _ m a k e f i l e _ i n s t a l l . c m a k e
$ { C M A K E _ C U R R E N T _ L I S T _ D I R } / c m a k e / q t _ f i x _ c m a k e . c m a k e
$ { C M A K E _ C U R R E N T _ L I S T _ D I R } / c m a k e / q t _ f i x _ p r l . c m a k e
$ { C M A K E _ C U R R E N T _ L I S T _ D I R } / c m a k e / q t _ d o w n l o a d _ s u b m o d u l e . c m a k e
$ { C M A K E _ C U R R E N T _ L I S T _ D I R } / c m a k e / q t _ b u i l d _ s u b m o d u l e . c m a k e
$ { C M A K E _ C U R R E N T _ L I S T _ D I R } / c m a k e / q t _ i n s t a l l _ c o p y r i g h t . c m a k e
$ { C M A K E _ C U R R E N T _ L I S T _ D I R } / c m a k e / q t _ s u b m o d u l e _ i n s t a l l a t i o n . c m a k e
D E S T I N A T I O N
$ { C U R R E N T _ P A C K A G E S _ D I R } / s h a r e / q t 5
)
2019-09-24 05:47:08 +08:00
if ( QT_BUILD_LATEST )
file ( COPY
$ { C M A K E _ C U R R E N T _ L I S T _ D I R } / c m a k e / q t _ p o r t _ h a s h e s _ l a t e s t . c m a k e
D E S T I N A T I O N
$ { C U R R E N T _ P A C K A G E S _ D I R } / s h a r e / q t 5
)
2020-02-20 08:45:58 +08:00
endif ( )