aboutsummaryrefslogtreecommitdiff
path: root/vcpkg/ports/openssl/windows
diff options
context:
space:
mode:
authorEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
committerEthan Morgan <ethan@gweithio.com>2026-02-14 16:44:06 +0000
commit54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch)
treed915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/openssl/windows
move to own git serverHEADmaster
Diffstat (limited to 'vcpkg/ports/openssl/windows')
-rw-r--r--vcpkg/ports/openssl/windows/install-layout.patch13
-rw-r--r--vcpkg/ports/openssl/windows/install-pdbs.patch46
-rw-r--r--vcpkg/ports/openssl/windows/install-programs.diff13
-rw-r--r--vcpkg/ports/openssl/windows/portfile.cmake158
4 files changed, 230 insertions, 0 deletions
diff --git a/vcpkg/ports/openssl/windows/install-layout.patch b/vcpkg/ports/openssl/windows/install-layout.patch
new file mode 100644
index 0000000..be9df76
--- /dev/null
+++ b/vcpkg/ports/openssl/windows/install-layout.patch
@@ -0,0 +1,13 @@
+diff --git a/Configurations/windows-makefile.tmpl b/Configurations/windows-makefile.tmpl
+index f71f3bf..116954f 100644
+--- a/Configurations/windows-makefile.tmpl
++++ b/Configurations/windows-makefile.tmpl
+@@ -223,7 +223,7 @@ MODULESDIR_dev={- use File::Spec::Functions qw(:DEFAULT splitpath catpath);
+ splitpath($modulesprefix, 1);
+ our $modulesdir_dev = $modulesprefix_dev;
+ our $modulesdir_dir =
+- catdir($modulesprefix_dir, "ossl-modules");
++ catdir($modulesprefix_dir, "../bin");
+ our $modulesdir = catpath($modulesdir_dev, $modulesdir_dir);
+ our $enginesdir_dev = $modulesprefix_dev;
+ our $enginesdir_dir =
diff --git a/vcpkg/ports/openssl/windows/install-pdbs.patch b/vcpkg/ports/openssl/windows/install-pdbs.patch
new file mode 100644
index 0000000..5525454
--- /dev/null
+++ b/vcpkg/ports/openssl/windows/install-pdbs.patch
@@ -0,0 +1,46 @@
+diff --git a/Configurations/windows-makefile.tmpl b/Configurations/windows-makefile.tmpl
+index 5946c89..f71f3bf 100644
+--- a/Configurations/windows-makefile.tmpl
++++ b/Configurations/windows-makefile.tmpl
+@@ -564,8 +564,9 @@
+ "$(INSTALLTOP)\include\openssl"
+ @"$(PERL)" "$(SRCDIR)\util\mkdir-p.pl" "$(libdir)"
+ @"$(PERL)" "$(SRCDIR)\util\copy.pl" $(INSTALL_LIBS) "$(libdir)"
+ @if "$(SHLIBS)"=="" \
++ @if "$(INSTALL_PDBS)"=="ON" \
+ "$(PERL)" "$(SRCDIR)\util\copy.pl" ossl_static.pdb "$(libdir)"
+ @"$(PERL)" "$(SRCDIR)\util\mkdir-p.pl" "$(CMAKECONFIGDIR)"
+ @"$(PERL)" "$(SRCDIR)\util\copy.pl" $(INSTALL_EXPORTERS_CMAKE) "$(CMAKECONFIGDIR)"
+
+@@ -569,6 +570,7 @@ install_engines: _install_modules_deps
+ @if not "$(INSTALL_ENGINES)"=="" \
+ "$(PERL)" "$(SRCDIR)\util\copy.pl" $(INSTALL_ENGINES) "$(ENGINESDIR)"
+ @if not "$(INSTALL_ENGINES)"=="" \
++ @if "$(INSTALL_PDBS)"=="ON" \
+ "$(PERL)" "$(SRCDIR)\util\copy.pl" $(INSTALL_ENGINEPDBS) "$(ENGINESDIR)"
+
+ uninstall_engines:
+@@ -580,6 +582,7 @@ install_modules: _install_modules_deps
+ @if not "$(INSTALL_MODULES)"=="" \
+ "$(PERL)" "$(SRCDIR)\util\copy.pl" $(INSTALL_MODULES) "$(MODULESDIR)"
+ @if not "$(INSTALL_MODULES)"=="" \
++ @if "$(INSTALL_PDBS)"=="ON" \
+ "$(PERL)" "$(SRCDIR)\util\copy.pl" $(INSTALL_MODULEPDBS) "$(MODULESDIR)"
+
+ uninstall_modules:
+@@ -593,6 +596,7 @@ install_runtime_libs: build_libs
+ @if not "$(SHLIBS)"=="" \
+ "$(PERL)" "$(SRCDIR)\util\copy.pl" $(INSTALL_SHLIBS) "$(INSTALLTOP)\bin"
+ @if not "$(SHLIBS)"=="" \
++ @if "$(INSTALL_PDBS)"=="ON" \
+ "$(PERL)" "$(SRCDIR)\util\copy.pl" $(INSTALL_SHLIBPDBS) \
+ "$(INSTALLTOP)\bin"
+
+@@ -605,6 +609,7 @@ install_programs: install_runtime_libs build_programs
+ "$(PERL)" "$(SRCDIR)\util\copy.pl" $(INSTALL_PROGRAMS) \
+ "$(INSTALLTOP)\bin"
+ @if not "$(INSTALL_PROGRAMS)"=="" \
++ @if "$(INSTALL_PDBS)"=="ON" \
+ "$(PERL)" "$(SRCDIR)\util\copy.pl" $(INSTALL_PROGRAMPDBS) \
+ "$(INSTALLTOP)\bin"
+ @if not "$(INSTALL_PROGRAMS)"=="" \
diff --git a/vcpkg/ports/openssl/windows/install-programs.diff b/vcpkg/ports/openssl/windows/install-programs.diff
new file mode 100644
index 0000000..257ad7d
--- /dev/null
+++ b/vcpkg/ports/openssl/windows/install-programs.diff
@@ -0,0 +1,13 @@
+diff --git a/Configurations/windows-makefile.tmpl b/Configurations/windows-makefile.tmpl
+index b587212..c031cfb 100644
+--- a/Configurations/windows-makefile.tmpl
++++ b/Configurations/windows-makefile.tmpl
+@@ -134,7 +134,7 @@ INSTALL_FIPSMODULE={-
+ -}
+ INSTALL_FIPSMODULECONF=providers\fipsmodule.cnf
+ INSTALL_PROGRAMS={-
+- join(" ", map { quotify1(platform->bin($_)) }
++ join(" ", map { platform->bin($_) }
+ grep { !$unified_info{attributes}->{programs}->{$_}->{noinst} }
+ @{$unified_info{programs}})
+ -}
diff --git a/vcpkg/ports/openssl/windows/portfile.cmake b/vcpkg/ports/openssl/windows/portfile.cmake
new file mode 100644
index 0000000..d35f309
--- /dev/null
+++ b/vcpkg/ports/openssl/windows/portfile.cmake
@@ -0,0 +1,158 @@
+# Need cmd to pass quoted CC from nmake to mkbuildinf.pl, GH-37134
+find_program(CMD_EXECUTABLE cmd HINTS ENV PATH NO_DEFAULT_PATH REQUIRED)
+cmake_path(NATIVE_PATH CMD_EXECUTABLE cmd)
+set(ENV{COMSPEC} "${cmd}")
+
+vcpkg_find_acquire_program(PERL)
+get_filename_component(PERL_EXE_PATH "${PERL}" DIRECTORY)
+vcpkg_add_to_path("${PERL_EXE_PATH}")
+
+vcpkg_cmake_get_vars(cmake_vars_file)
+include("${cmake_vars_file}")
+
+if(VCPKG_TARGET_ARCHITECTURE STREQUAL "x86")
+ set(OPENSSL_ARCH VC-WIN32)
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "x64")
+ set(OPENSSL_ARCH VC-WIN64A)
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm")
+ set(OPENSSL_ARCH VC-WIN32-ARM)
+elseif(VCPKG_TARGET_ARCHITECTURE STREQUAL "arm64")
+ if(VCPKG_TARGET_IS_UWP)
+ set(OPENSSL_ARCH VC-WIN64-ARM)
+ elseif(VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES "Clang")
+ set(OPENSSL_ARCH VC-CLANG-WIN64-CLANGASM-ARM)
+ else()
+ set(OPENSSL_ARCH VC-WIN64-CLANGASM-ARM)
+ endif()
+else()
+ message(FATAL_ERROR "Unsupported target architecture: ${VCPKG_TARGET_ARCHITECTURE}")
+endif()
+
+if(VCPKG_TARGET_IS_UWP)
+ vcpkg_list(APPEND CONFIGURE_OPTIONS
+ no-unit-test
+ no-asm
+ no-uplink
+ )
+ string(APPEND OPENSSL_ARCH "-UWP")
+endif()
+
+if(VCPKG_CONCURRENCY GREATER "1")
+ vcpkg_list(APPEND CONFIGURE_OPTIONS no-makedepend)
+endif()
+
+cmake_path(NATIVE_PATH CURRENT_PACKAGES_DIR NORMALIZE install_dir_native)
+
+# Clang always uses /Z7; Patching /Zi /Fd<Name> out of openssl requires more work.
+set(OPENSSL_BUILD_MAKES_PDBS ON)
+if (VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES "Clang" OR VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ set(OPENSSL_BUILD_MAKES_PDBS OFF)
+endif()
+
+cmake_path(NATIVE_PATH VCPKG_DETECTED_CMAKE_C_COMPILER NORMALIZE cc)
+if(OPENSSL_ARCH MATCHES "CLANG")
+ vcpkg_find_acquire_program(CLANG)
+ cmake_path(GET CLANG PARENT_PATH clang_path)
+ vcpkg_add_to_path("${clang_path}")
+ if(VCPKG_DETECTED_CMAKE_C_COMPILER_ID MATCHES "Clang")
+ string(APPEND VCPKG_COMBINED_C_FLAGS_DEBUG " --target=aarch64-win32-msvc")
+ string(APPEND VCPKG_COMBINED_C_FLAGS_RELEASE " --target=aarch64-win32-msvc")
+ endif()
+endif()
+if(OPENSSL_ARCH MATCHES "CLANGASM")
+ vcpkg_list(APPEND CONFIGURE_OPTIONS "ASFLAGS=--target=aarch64-win32-msvc")
+else()
+ vcpkg_find_acquire_program(NASM)
+ cmake_path(NATIVE_PATH NASM NORMALIZE as)
+ cmake_path(GET NASM PARENT_PATH nasm_path)
+ vcpkg_add_to_path("${nasm_path}") # Needed by Configure
+endif()
+
+cmake_path(NATIVE_PATH VCPKG_DETECTED_CMAKE_AR NORMALIZE ar)
+cmake_path(NATIVE_PATH VCPKG_DETECTED_CMAKE_LINKER NORMALIZE ld)
+
+vcpkg_build_nmake(
+ SOURCE_PATH "${SOURCE_PATH}"
+ PREFER_JOM
+ CL_LANGUAGE NONE
+ PRERUN_SHELL_RELEASE "${PERL}" Configure
+ ${CONFIGURE_OPTIONS}
+ ${OPENSSL_ARCH}
+ "--prefix=${install_dir_native}"
+ "--openssldir=${install_dir_native}"
+ "AS=${as}"
+ "CC=${cc}"
+ "CFLAGS=${VCPKG_COMBINED_C_FLAGS_RELEASE}"
+ "AR=${ar}"
+ "ARFLAGS=${VCPKG_COMBINED_STATIC_LINKER_FLAGS_RELEASE}"
+ "LD=${ld}"
+ "LDFLAGS=${VCPKG_COMBINED_SHARED_LINKER_FLAGS_RELEASE}"
+ PRERUN_SHELL_DEBUG "${PERL}" Configure
+ ${CONFIGURE_OPTIONS}
+ ${OPENSSL_ARCH}
+ --debug
+ "--prefix=${install_dir_native}\\debug"
+ "--openssldir=${install_dir_native}\\debug"
+ "AS=${as}"
+ "CC=${cc}"
+ "CFLAGS=${VCPKG_COMBINED_C_FLAGS_DEBUG}"
+ "AR=${ar}"
+ "ARFLAGS=${VCPKG_COMBINED_STATIC_LINKER_FLAGS_DEBUG}"
+ "LD=${ld}"
+ "LDFLAGS=${VCPKG_COMBINED_SHARED_LINKER_FLAGS_DEBUG}"
+ PROJECT_NAME "makefile"
+ TARGET install_dev install_modules ${INSTALL_FIPS}
+ LOGFILE_ROOT install
+ OPTIONS
+ "INSTALL_PDBS=${OPENSSL_BUILD_MAKES_PDBS}" # install-pdbs.patch
+ OPTIONS_RELEASE
+ install_runtime install_ssldirs # extra targets
+)
+
+set(scripts "bin/c_rehash.pl" "misc/CA.pl" "misc/tsget.pl")
+if("tools" IN_LIST FEATURES)
+ file(MAKE_DIRECTORY "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
+ file(RENAME "${CURRENT_PACKAGES_DIR}/openssl.cnf" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/openssl.cnf")
+ if("fips" IN_LIST FEATURES)
+ file(RENAME "${CURRENT_PACKAGES_DIR}/fipsmodule.cnf" "${CURRENT_PACKAGES_DIR}/tools/${PORT}/fipsmodule.cnf")
+ endif()
+ foreach(script IN LISTS scripts)
+ file(COPY "${CURRENT_PACKAGES_DIR}/${script}" DESTINATION "${CURRENT_PACKAGES_DIR}/tools/${PORT}")
+ file(REMOVE "${CURRENT_PACKAGES_DIR}/${script}" "${CURRENT_PACKAGES_DIR}/debug/${script}")
+ endforeach()
+ vcpkg_copy_tools(TOOL_NAMES openssl AUTO_CLEAN)
+else()
+ file(REMOVE "${CURRENT_PACKAGES_DIR}/openssl.cnf")
+ file(REMOVE "${CURRENT_PACKAGES_DIR}/fipsmodule.cnf")
+ foreach(script IN LISTS scripts)
+ file(REMOVE "${CURRENT_PACKAGES_DIR}/${script}" "${CURRENT_PACKAGES_DIR}/debug/${script}")
+ endforeach()
+ if(VCPKG_LIBRARY_LINKAGE STREQUAL "static")
+ file(REMOVE_RECURSE "${CURRENT_PACKAGES_DIR}/bin" "${CURRENT_PACKAGES_DIR}/debug/bin")
+ endif()
+endif()
+
+vcpkg_copy_pdbs()
+
+file(REMOVE_RECURSE
+ "${CURRENT_PACKAGES_DIR}/certs"
+ "${CURRENT_PACKAGES_DIR}/misc"
+ "${CURRENT_PACKAGES_DIR}/private"
+ "${CURRENT_PACKAGES_DIR}/lib/engines-3"
+ "${CURRENT_PACKAGES_DIR}/debug/certs"
+ "${CURRENT_PACKAGES_DIR}/debug/misc"
+ "${CURRENT_PACKAGES_DIR}/debug/lib/engines-3"
+ "${CURRENT_PACKAGES_DIR}/debug/private"
+ "${CURRENT_PACKAGES_DIR}/debug/include"
+ "${CURRENT_PACKAGES_DIR}/debug/share"
+)
+file(REMOVE
+ "${CURRENT_PACKAGES_DIR}/ct_log_list.cnf"
+ "${CURRENT_PACKAGES_DIR}/ct_log_list.cnf.dist"
+ "${CURRENT_PACKAGES_DIR}/openssl.cnf.dist"
+ "${CURRENT_PACKAGES_DIR}/debug/ct_log_list.cnf"
+ "${CURRENT_PACKAGES_DIR}/debug/ct_log_list.cnf.dist"
+ "${CURRENT_PACKAGES_DIR}/debug/openssl.cnf"
+ "${CURRENT_PACKAGES_DIR}/debug/openssl.cnf.dist"
+ "${CURRENT_PACKAGES_DIR}/debug/fipsmodule.cnf"
+)