]> git.proxmox.com Git - ceph.git/blob - ceph/src/jaegertracing/opentelemetry-cpp/tools/vcpkg/ports/openssl/uwp/portfile.cmake
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / jaegertracing / opentelemetry-cpp / tools / vcpkg / ports / openssl / uwp / portfile.cmake
1 vcpkg_fail_port_install(MESSAGE "${PORT} is only for Windows Universal Platform" ON_TARGET "Linux" "OSX")
2
3 vcpkg_check_linkage(ONLY_DYNAMIC_LIBRARY)
4
5 vcpkg_find_acquire_program(JOM)
6 get_filename_component(JOM_EXE_PATH ${JOM} DIRECTORY)
7 vcpkg_add_to_path("${PERL_EXE_PATH}")
8
9 vcpkg_extract_source_archive_ex(
10 OUT_SOURCE_PATH SOURCE_PATH
11 ARCHIVE ${ARCHIVE}
12 PATCHES
13 uwp/EnableUWPSupport.patch
14 )
15
16 vcpkg_find_acquire_program(NASM)
17 get_filename_component(NASM_EXE_PATH ${NASM} DIRECTORY)
18 vcpkg_add_to_path(PREPEND "${NASM_EXE_PATH}")
19
20 set(CONFIGURE_COMMAND ${PERL} Configure
21 enable-static-engine
22 enable-capieng
23 no-unit-test
24 no-ssl2
25 no-asm
26 no-uplink
27 no-tests
28 -utf-8
29 shared
30 )
31
32 if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
33 set(OPENSSL_ARCH VC-WIN32-UWP)
34 elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
35 set(OPENSSL_ARCH VC-WIN64A-UWP)
36 elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
37 set(OPENSSL_ARCH VC-WIN32-ARM-UWP)
38 elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
39 set(OPENSSL_ARCH VC-WIN64-ARM-UWP)
40 else()
41 message(FATAL_ERROR "Unsupported target architecture: ${VCPKG_TARGET_ARCHITECTURE}")
42 endif()
43
44 set(OPENSSL_MAKEFILE "makefile")
45
46 file(REMOVE_RECURSE ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel ${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg)
47
48
49 if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "release")
50
51 # Copy openssl sources.
52 message(STATUS "Copying openssl release source files...")
53 file(GLOB OPENSSL_SOURCE_FILES "${SOURCE_PATH}/*")
54 foreach(SOURCE_FILE ${OPENSSL_SOURCE_FILES})
55 file(COPY ${SOURCE_FILE} DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
56 endforeach()
57 message(STATUS "Copying openssl release source files... done")
58 set(SOURCE_PATH_RELEASE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel")
59
60 set(OPENSSLDIR_RELEASE "${CURRENT_PACKAGES_DIR}")
61
62 message(STATUS "Configure ${TARGET_TRIPLET}-rel")
63 vcpkg_execute_required_process(
64 COMMAND ${CONFIGURE_COMMAND} ${OPENSSL_ARCH} "--prefix=${OPENSSLDIR_RELEASE}" "--openssldir=${OPENSSLDIR_RELEASE}" -FS
65 WORKING_DIRECTORY "${SOURCE_PATH_RELEASE}"
66 LOGNAME configure-perl-${TARGET_TRIPLET}-${VCPKG_BUILD_TYPE}-rel
67 )
68 message(STATUS "Configure ${TARGET_TRIPLET}-rel done")
69
70 message(STATUS "Build ${TARGET_TRIPLET}-rel")
71 # Openssl's buildsystem has a race condition which will cause JOM to fail at some point.
72 # This is ok; we just do as much work as we can in parallel first, then follow up with a single-threaded build.
73 make_directory(${SOURCE_PATH_RELEASE}/inc32/openssl)
74 execute_process(
75 COMMAND "${JOM}" -k -j ${VCPKG_CONCURRENCY} -f "${OPENSSL_MAKEFILE}" build_libs
76 WORKING_DIRECTORY "${SOURCE_PATH_RELEASE}"
77 OUTPUT_FILE "${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-0-out.log"
78 ERROR_FILE "${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-rel-0-err.log"
79 )
80 vcpkg_execute_required_process(
81 COMMAND nmake -f "${OPENSSL_MAKEFILE}" install_dev
82 WORKING_DIRECTORY "${SOURCE_PATH_RELEASE}"
83 LOGNAME build-${TARGET_TRIPLET}-rel-1)
84
85 message(STATUS "Build ${TARGET_TRIPLET}-rel done")
86 endif()
87
88
89 if(NOT DEFINED VCPKG_BUILD_TYPE OR VCPKG_BUILD_TYPE STREQUAL "debug")
90 # Copy openssl sources.
91 message(STATUS "Copying openssl debug source files...")
92 file(GLOB OPENSSL_SOURCE_FILES ${SOURCE_PATH}/*)
93 foreach(SOURCE_FILE ${OPENSSL_SOURCE_FILES})
94 file(COPY "${SOURCE_FILE}" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
95 endforeach()
96 message(STATUS "Copying openssl debug source files... done")
97 set(SOURCE_PATH_DEBUG "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg")
98
99 set(OPENSSLDIR_DEBUG "${CURRENT_PACKAGES_DIR}/debug")
100
101 message(STATUS "Configure ${TARGET_TRIPLET}-dbg")
102 vcpkg_execute_required_process(
103 COMMAND ${CONFIGURE_COMMAND} debug-${OPENSSL_ARCH} "--prefix=${OPENSSLDIR_DEBUG}" "--openssldir=${OPENSSLDIR_DEBUG}" -FS
104 WORKING_DIRECTORY "${SOURCE_PATH_DEBUG}"
105 LOGNAME configure-perl-${TARGET_TRIPLET}-${VCPKG_BUILD_TYPE}-dbg
106 )
107 message(STATUS "Configure ${TARGET_TRIPLET}-dbg done")
108
109 message(STATUS "Build ${TARGET_TRIPLET}-dbg")
110 make_directory("${SOURCE_PATH_DEBUG}/inc32/openssl")
111 execute_process(
112 COMMAND "${JOM}" -k -j ${VCPKG_CONCURRENCY} -f "${OPENSSL_MAKEFILE}" build_libs
113 WORKING_DIRECTORY "${SOURCE_PATH_DEBUG}"
114 OUTPUT_FILE "${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-dbg-0-out.log"
115 ERROR_FILE "${CURRENT_BUILDTREES_DIR}/build-${TARGET_TRIPLET}-dbg-0-err.log"
116 )
117 vcpkg_execute_required_process(
118 COMMAND nmake -f "${OPENSSL_MAKEFILE}" install_dev
119 WORKING_DIRECTORY "${SOURCE_PATH_DEBUG}"
120 LOGNAME build-${TARGET_TRIPLET}-dbg-1)
121
122 message(STATUS "Build ${TARGET_TRIPLET}-dbg done")
123 endif()
124
125 file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/certs")
126 file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/private")
127 file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/lib/engines-1_1")
128 file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/certs")
129 file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/lib/engines-1_1")
130 file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/private")
131 file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/debug/include")
132
133 file(REMOVE
134 "${CURRENT_PACKAGES_DIR}/bin/openssl.exe"
135 "${CURRENT_PACKAGES_DIR}/debug/bin/openssl.exe"
136 "${CURRENT_PACKAGES_DIR}/debug/openssl.cnf"
137 "${CURRENT_PACKAGES_DIR}/openssl.cnf"
138 "${CURRENT_PACKAGES_DIR}/ct_log_list.cnf"
139 "${CURRENT_PACKAGES_DIR}/ct_log_list.cnf.dist"
140 "${CURRENT_PACKAGES_DIR}/openssl.cnf.dist"
141 "${CURRENT_PACKAGES_DIR}/debug/ct_log_list.cnf"
142 "${CURRENT_PACKAGES_DIR}/debug/ct_log_list.cnf.dist"
143 "${CURRENT_PACKAGES_DIR}/debug/openssl.cnf.dist"
144 )
145
146 file(READ "${CURRENT_PACKAGES_DIR}/include/openssl/dtls1.h" _contents)
147 string(REPLACE "<winsock.h>" "<winsock2.h>" _contents "${_contents}")
148 file(WRITE "${CURRENT_PACKAGES_DIR}/include/openssl/dtls1.h" "${_contents}")
149
150 file(READ "${CURRENT_PACKAGES_DIR}/include/openssl/rand.h" _contents)
151 string(REPLACE "# include <windows.h>" "#ifndef _WINSOCKAPI_\n#define _WINSOCKAPI_\n#endif\n# include <windows.h>" _contents "${_contents}")
152 file(WRITE "${CURRENT_PACKAGES_DIR}/include/openssl/rand.h" "${_contents}")
153
154 vcpkg_copy_pdbs()
155
156 file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright)