2019-05-03 13:57:43 +08:00
include ( vcpkg_common_functions )
2016-11-08 13:54:23 +08:00
if ( NOT VCPKG_CMAKE_SYSTEM_NAME STREQUAL "WindowsStore" )
message ( FATAL_ERROR "This portfile only supports UWP" )
endif ( )
[many ports] improvements for linux/wsl (#6730)
* [many ports] improve compatibility with WSL and mixed case filesystems
* [treehopper] express dependency on libusb, which was not working on non-win32 platforms and is still broken there
* [libharu] add compatibility with non-win32 platforms
* [geogram] fix openblas on linux
[clapack] better integration with linux environment
[visit-struct] put cmake config file in the expected folder
[geogram] remove trailing underscore to enable compatibility with OpenBLAS
* [openblas] playing with underscore, without success
* [openblas/lapack] fix library integration
* [clapack] improve target handling in cmake module
* [openblas] promote self-generated config to default cmake module, otherwise internal ones thinks wrongly that openblas can also solve lapack libs
* [clapack,openblas] improve libraries integration
* [many ports] fix cmake unnecessary target paths, wrong config paths, empty default dependencies, unnecessary [core] tags
* [suitesparse] improve integration with new lapack/openblas mechanism
* [suitesparse] add no underscore postfix also for linux
* [ceres] fix integration with newer openblas/lapack configs
* [aws-c-event-stream] fix regression
* [systemc] fix regression
* [libwebp,geogram] trigger rebuild
* [libwebp,pthread4w] fix regressions
* [glbinding] fix cmake module installation
* [globjects] disentangle unnecessary dependency from qt5
* [jasper] remove broken and unnecessary patches
* [libwebp] fix regression
* [many ports] avoid using BUILD_SHARED_LIBS which is uninitialized in port files
* [clapack] correctly find dlls
* [clapack] use a generic blas as dependency
* [fizz,g2o] restore expected version
* fix mistake
* [many ports] remove WIN32, APPLE and UNIX (again, they keep creeping in) from ports since they are broken and usually break non-win32 ports
* [libressl,openssl] do not try to build one if the other is already installed
* [itk] update ref and patch to avoid regression
* [libressl,openssl] implement full strategy to fix CI
* [libwebp] disable components that are broken on macOS
* [ogre] enable macOS build
* [freeimage,jxrlib,ogre,openexr,protobuf] port patches from #5169
* [ogre] add missing install command
* [ffmpeg] enable wrapper for cmake module
* [ffmpeg] add avresample module finder
* [ffmpeg] improve module detection and exported symbols
* [ffmpeg] add variables to cache
* [thrift] remove unnecessary build option
* [allegro5] fix shared/static inversion
* [protobuf] cleanup
* [libressl] cleanup
* [moos-core] cleanup
* commented features must not be separated from other features, otherwise vcpkg complains
* [itk] fix regression
* [shogun,itk] fix regressions
* [ogre] fix regression
* [opusfile] add compatibility with non-win32
* [itk] fix regression
* [sndfile,libsndfile] remove duplicate, redirect sndfile to libsndfile
* add missing dependencies
* [ismrmrd] fix regression
* [ffmpeg] trigger rebuild
* [clapack,openblas,libogg] fix regressions on macOS
* [libtins] fix regression
* force rebuild windows regressions, unable to reproduce locally
* [mosquitto] enable non-win32 builds
* [json-dto] force rebuild, unable to reproduce regression locally
* [many ports] uniform naming and path length requests
* fix regression
* fix regression
* [ffmpeg] fixes for downstream projects
* clean up - thanks to reviewers
* trigger rebuild of regressions on macOS
* trigger rebuild of regressions on macOS - part2
* Add core back
* Use VCPKG_CONCURRENCY
* Add core back to suitesparse
* Add core back to curl
* Add core back to magnum
* Add core back to magnum
* Add core back to magnum
* Add core back to cgal
2019-06-21 10:11:54 +08:00
if ( EXISTS "${CURRENT_INSTALLED_DIR}/include/openssl/ssl.h" )
message ( WARNING "Can't build openssl if libressl is installed. Please remove libressl, and try install openssl again if you need it. Build will continue but there might be problems since libressl is only a subset of openssl" )
set ( VCPKG_POLICY_EMPTY_PACKAGE enabled )
return ( )
endif ( )
vcpkg_check_linkage ( ONLY_DYNAMIC_LIBRARY )
2016-11-08 13:54:23 +08:00
if ( VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" )
2016-11-04 20:09:13 +08:00
set ( UWP_PLATFORM "arm" )
2019-05-29 07:58:00 +08:00
elseif ( VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" )
set ( UWP_PLATFORM "arm64" )
2016-11-08 13:54:23 +08:00
elseif ( VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" )
2016-11-04 20:09:13 +08:00
set ( UWP_PLATFORM "x64" )
2016-11-08 13:54:23 +08:00
elseif ( VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" )
2016-11-04 20:09:13 +08:00
set ( UWP_PLATFORM "Win32" )
else ( )
2016-11-08 13:54:23 +08:00
message ( FATAL_ERROR "Unsupported architecture" )
2016-11-04 20:09:13 +08:00
endif ( )
2017-08-02 08:12:59 +08:00
vcpkg_find_acquire_program ( PERL )
2017-06-08 17:15:58 +08:00
vcpkg_find_acquire_program ( JOM )
get_filename_component ( JOM_EXE_PATH ${ JOM } DIRECTORY )
2016-11-04 20:09:13 +08:00
get_filename_component ( PERL_EXE_PATH ${ PERL } DIRECTORY )
2017-06-08 17:15:58 +08:00
set ( ENV{PATH} "$ENV{PATH};${PERL_EXE_PATH};${JOM_EXE_PATH}" )
2016-11-04 20:09:13 +08:00
2020-01-14 07:43:36 +08:00
set ( OPENSSL_VERSION 1.1.1d )
2018-06-01 01:04:01 +08:00
2020-01-14 07:43:36 +08:00
vcpkg_download_distfile ( ARCHIVE
U R L S " h t t p s : / / w w w . o p e n s s l . o r g / s o u r c e / o p e n s s l - $ { O P E N S S L _ V E R S I O N } . t a r . g z " " h t t p s : / / w w w . o p e n s s l . o r g / s o u r c e / o l d / 1 . 1 . 1 / o p e n s s l - $ { O P E N S S L _ V E R S I O N } . t a r . g z "
F I L E N A M E " o p e n s s l - $ { O P E N S S L _ V E R S I O N } . t a r . g z "
S H A 5 1 2 2 b c 9 f 5 2 8 c 2 7 f e 6 4 4 3 0 8 e b 7 6 0 3 c 9 9 2 b a c 8 7 4 0 e 9 f 0 c 3 6 0 1 a 1 3 0 a f 3 0 c 9 f f e b b f 7 e 0 f 5 c 2 8 b 7 6 a 0 0 b b b 4 7 8 b a d 4 0 f b e 8 9 b 4 2 2 3 a 5 8 d 6 0 4 0 0 1 e 1 7 1 3 d a 7 1 f f 4 b 7 f e 6 a 0 8 a 7
)
2016-11-04 20:09:13 +08:00
2020-01-14 07:43:36 +08:00
vcpkg_extract_source_archive_ex (
O U T _ S O U R C E _ P A T H S O U R C E _ P A T H
A R C H I V E $ { A R C H I V E }
P A T C H E S
E n a b l e U W P S u p p o r t . p a t c h
2017-08-24 13:15:02 +08:00
)
2016-11-04 20:09:13 +08:00
2020-01-14 07:43:36 +08:00
vcpkg_find_acquire_program ( NASM )
get_filename_component ( NASM_EXE_PATH ${ NASM } DIRECTORY )
set ( ENV{PATH} "${NASM_EXE_PATH};$ENV{PATH}" )
vcpkg_find_acquire_program ( JOM )
set ( CONFIGURE_COMMAND ${ PERL } Configure
e n a b l e - s t a t i c - e n g i n e
e n a b l e - c a p i e n g
n o - u n i t - t e s t
n o - s s l 2
n o - a s m
n o - u p l i n k
- u t f - 8
s h a r e d
2016-11-04 20:09:13 +08:00
)
2020-01-14 07:43:36 +08:00
if ( VCPKG_TARGET_ARCHITECTURE STREQUAL "x86" )
set ( OPENSSL_ARCH VC-WIN32-UWP )
elseif ( VCPKG_TARGET_ARCHITECTURE STREQUAL "x64" )
set ( OPENSSL_ARCH VC-WIN64A-UWP )
elseif ( VCPKG_TARGET_ARCHITECTURE STREQUAL "arm" )
set ( OPENSSL_ARCH VC-WIN32-ARM-UWP )
elseif ( VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64" )
set ( OPENSSL_ARCH VC-WIN64-ARM-UWP )
else ( )
message ( FATAL_ERROR "Unsupported target architecture: ${VCPKG_TARGET_ARCHITECTURE}" )
endif ( )
set ( OPENSSL_MAKEFILE "makefile" )
file ( REMOVE_RECURSE ${ CURRENT_BUILDTREES_DIR } / ${ TARGET_TRIPLET } -rel ${ CURRENT_BUILDTREES_DIR } / ${ TARGET_TRIPLET } -dbg )
if ( NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release" )
# Copy openssl sources.
message ( STATUS "Copying openssl release source files..." )
file ( GLOB OPENSSL_SOURCE_FILES ${ SOURCE_PATH } /* )
foreach ( SOURCE_FILE ${ OPENSSL_SOURCE_FILES } )
file ( COPY ${ SOURCE_FILE } DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" )
endforeach ( )
message ( STATUS "Copying openssl release source files... done" )
set ( SOURCE_PATH_RELEASE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel" )
set ( OPENSSLDIR_RELEASE ${ CURRENT_PACKAGES_DIR } )
message ( STATUS "Configure ${TARGET_TRIPLET}-rel" )
vcpkg_execute_required_process (
C O M M A N D $ { C O N F I G U R E _ C O M M A N D } $ { O P E N S S L _ A R C H } " - - p r e f i x = $ { O P E N S S L D I R _ R E L E A S E } " " - - o p e n s s l d i r = $ { O P E N S S L D I R _ R E L E A S E } " - F S
W O R K I N G _ D I R E C T O R Y $ { S O U R C E _ P A T H _ R E L E A S E }
L O G N A M E c o n f i g u r e - p e r l - $ { T A R G E T _ T R I P L E T } - $ { C M A K E _ B U I L D _ T Y P E } - r e l
)
message ( STATUS "Configure ${TARGET_TRIPLET}-rel done" )
message ( STATUS "Build ${TARGET_TRIPLET}-rel" )
# Openssl's buildsystem has a race condition which will cause JOM to fail at some point.
# This is ok; we just do as much work as we can in parallel first, then follow up with a single-threaded build.
make_directory ( ${ SOURCE_PATH_RELEASE } /inc32/openssl )
execute_process (
C O M M A N D $ { J O M } - k - j $ E N V { N U M B E R _ O F _ P R O C E S S O R S } - f $ { O P E N S S L _ M A K E F I L E } b u i l d _ l i b s
W O R K I N G _ D I R E C T O R Y $ { S O U R C E _ P A T H _ R E L E A S E }
O U T P U T _ F I L E $ { C U R R E N T _ B U I L D T R E E S _ D I R } / b u i l d - $ { T A R G E T _ T R I P L E T } - r e l - 0 - o u t . l o g
E R R O R _ F I L E $ { C U R R E N T _ B U I L D T R E E S _ D I R } / b u i l d - $ { T A R G E T _ T R I P L E T } - r e l - 0 - e r r . l o g
)
vcpkg_execute_required_process (
C O M M A N D n m a k e - f $ { O P E N S S L _ M A K E F I L E } i n s t a l l _ d e v
W O R K I N G _ D I R E C T O R Y $ { S O U R C E _ P A T H _ R E L E A S E }
L O G N A M E b u i l d - $ { T A R G E T _ T R I P L E T } - r e l - 1 )
message ( STATUS "Build ${TARGET_TRIPLET}-rel done" )
endif ( )
if ( NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug" )
# Copy openssl sources.
message ( STATUS "Copying openssl debug source files..." )
file ( GLOB OPENSSL_SOURCE_FILES ${ SOURCE_PATH } /* )
foreach ( SOURCE_FILE ${ OPENSSL_SOURCE_FILES } )
file ( COPY ${ SOURCE_FILE } DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" )
endforeach ( )
message ( STATUS "Copying openssl debug source files... done" )
set ( SOURCE_PATH_DEBUG "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg" )
set ( OPENSSLDIR_DEBUG ${ CURRENT_PACKAGES_DIR } /debug )
message ( STATUS "Configure ${TARGET_TRIPLET}-dbg" )
vcpkg_execute_required_process (
C O M M A N D $ { C O N F I G U R E _ C O M M A N D } d e b u g - $ { O P E N S S L _ A R C H } " - - p r e f i x = $ { O P E N S S L D I R _ D E B U G } " " - - o p e n s s l d i r = $ { O P E N S S L D I R _ D E B U G } " - F S
W O R K I N G _ D I R E C T O R Y $ { S O U R C E _ P A T H _ D E B U G }
L O G N A M E c o n f i g u r e - p e r l - $ { T A R G E T _ T R I P L E T } - $ { C M A K E _ B U I L D _ T Y P E } - d b g
)
message ( STATUS "Configure ${TARGET_TRIPLET}-dbg done" )
message ( STATUS "Build ${TARGET_TRIPLET}-dbg" )
make_directory ( ${ SOURCE_PATH_DEBUG } /inc32/openssl )
execute_process (
C O M M A N D $ { J O M } - k - j $ E N V { N U M B E R _ O F _ P R O C E S S O R S } - f $ { O P E N S S L _ M A K E F I L E } b u i l d _ l i b s
W O R K I N G _ D I R E C T O R Y $ { S O U R C E _ P A T H _ D E B U G }
O U T P U T _ F I L E $ { C U R R E N T _ B U I L D T R E E S _ D I R } / b u i l d - $ { T A R G E T _ T R I P L E T } - d b g - 0 - o u t . l o g
E R R O R _ F I L E $ { C U R R E N T _ B U I L D T R E E S _ D I R } / b u i l d - $ { T A R G E T _ T R I P L E T } - d b g - 0 - e r r . l o g
)
vcpkg_execute_required_process (
C O M M A N D n m a k e - f $ { O P E N S S L _ M A K E F I L E } i n s t a l l _ d e v
W O R K I N G _ D I R E C T O R Y $ { S O U R C E _ P A T H _ D E B U G }
L O G N A M E b u i l d - $ { T A R G E T _ T R I P L E T } - d b g - 1 )
message ( STATUS "Build ${TARGET_TRIPLET}-dbg done" )
endif ( )
file ( REMOVE_RECURSE ${ CURRENT_PACKAGES_DIR } /certs )
file ( REMOVE_RECURSE ${ CURRENT_PACKAGES_DIR } /private )
file ( REMOVE_RECURSE ${ CURRENT_PACKAGES_DIR } /lib/engines-1_1 )
file ( REMOVE_RECURSE ${ CURRENT_PACKAGES_DIR } /debug/certs )
file ( REMOVE_RECURSE ${ CURRENT_PACKAGES_DIR } /debug/lib/engines-1_1 )
file ( REMOVE_RECURSE ${ CURRENT_PACKAGES_DIR } /debug/private )
file ( REMOVE_RECURSE ${ CURRENT_PACKAGES_DIR } /debug/include )
file ( REMOVE
$ { C U R R E N T _ P A C K A G E S _ D I R } / b i n / o p e n s s l . e x e
$ { C U R R E N T _ P A C K A G E S _ D I R } / d e b u g / b i n / o p e n s s l . e x e
$ { C U R R E N T _ P A C K A G E S _ D I R } / d e b u g / o p e n s s l . c n f
$ { C U R R E N T _ P A C K A G E S _ D I R } / o p e n s s l . c n f
$ { C U R R E N T _ P A C K A G E S _ D I R } / c t _ l o g _ l i s t . c n f
$ { C U R R E N T _ P A C K A G E S _ D I R } / c t _ l o g _ l i s t . c n f . d i s t
$ { C U R R E N T _ P A C K A G E S _ D I R } / o p e n s s l . c n f . d i s t
$ { C U R R E N T _ P A C K A G E S _ D I R } / d e b u g / c t _ l o g _ l i s t . c n f
$ { C U R R E N T _ P A C K A G E S _ D I R } / d e b u g / c t _ l o g _ l i s t . c n f . d i s t
$ { C U R R E N T _ P A C K A G E S _ D I R } / d e b u g / o p e n s s l . c n f . d i s t
2016-11-04 20:09:13 +08:00
)
2020-01-14 07:43:36 +08:00
file ( READ "${CURRENT_PACKAGES_DIR}/include/openssl/dtls1.h" _contents )
string ( REPLACE "<winsock.h>" "<winsock2.h>" _contents "${_contents}" )
file ( WRITE "${CURRENT_PACKAGES_DIR}/include/openssl/dtls1.h" "${_contents}" )
file ( READ "${CURRENT_PACKAGES_DIR}/include/openssl/rand.h" _contents )
string ( REPLACE "# include <windows.h>" "#ifndef _WINSOCKAPI_\n#define _WINSOCKAPI_\n#endif\n# include <windows.h>" _contents "${_contents}" )
file ( WRITE "${CURRENT_PACKAGES_DIR}/include/openssl/rand.h" "${_contents}" )
vcpkg_copy_pdbs ( )
2017-11-17 15:54:55 +08:00
file ( COPY ${ CMAKE_CURRENT_LIST_DIR } /usage DESTINATION ${ CURRENT_PACKAGES_DIR } /share/ ${ PORT } )
2020-01-14 07:43:36 +08:00
file ( INSTALL ${ SOURCE_PATH } /LICENSE DESTINATION ${ CURRENT_PACKAGES_DIR } /share/ ${ PORT } RENAME copyright )
2018-08-31 08:07:14 +08:00
vcpkg_test_cmake ( PACKAGE_NAME OpenSSL MODULE )