diff options
| author | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
|---|---|---|
| committer | Ethan Morgan <ethan@gweithio.com> | 2026-02-14 16:44:06 +0000 |
| commit | 54409423f767d8b1cf30cb7d0efca6b4ca138823 (patch) | |
| tree | d915ac7828703ce4b963efdd9728a1777ba18c1e /vcpkg/ports/intel-ipsec | |
Diffstat (limited to 'vcpkg/ports/intel-ipsec')
| -rw-r--r-- | vcpkg/ports/intel-ipsec/always-generate-pdb.patch | 80 | ||||
| -rw-r--r-- | vcpkg/ports/intel-ipsec/intel-ipsec-targets-implib.cmake.in | 5 | ||||
| -rw-r--r-- | vcpkg/ports/intel-ipsec/intel-ipsec-targets.cmake.in | 4 | ||||
| -rw-r--r-- | vcpkg/ports/intel-ipsec/intel-ipsecConfig.cmake.in | 16 | ||||
| -rw-r--r-- | vcpkg/ports/intel-ipsec/portfile.cmake | 105 | ||||
| -rw-r--r-- | vcpkg/ports/intel-ipsec/usage | 4 | ||||
| -rw-r--r-- | vcpkg/ports/intel-ipsec/vcpkg.json | 6 |
7 files changed, 220 insertions, 0 deletions
diff --git a/vcpkg/ports/intel-ipsec/always-generate-pdb.patch b/vcpkg/ports/intel-ipsec/always-generate-pdb.patch new file mode 100644 index 0000000..24894e4 --- /dev/null +++ b/vcpkg/ports/intel-ipsec/always-generate-pdb.patch @@ -0,0 +1,80 @@ +From 19d3b3fca689fb87e819b0b27bc74d1f52fcd2c8 Mon Sep 17 00:00:00 2001 +From: Billy Robert O'Neal III <bion@microsoft.com> +Date: Wed, 12 Jan 2022 12:40:30 +0000 +Subject: [PATCH] lib: generate PDB in release build on Windows + +PDBs are necessary for postmortem debugging and for teams to get reports +from Watson, so they should be built for released software too. This +change always passes /DEBUG to the MSVC linker. That switch controls +whether a PDB is generated (as in "generate debugging information") not +a statement that the resulting files are the debug specific version of +your library. + +/DEBUG changes the default values of /INCREMENTAL (to on) and /OPT:REF +and /OPT:ICF to off, so those are changed back to incremental off and +linker optimizations on in debug builds. + +This missing PDB issue was discovered in fixing intel-ipsec's port in +vcpkg to build on Windows (https://github.com/microsoft/vcpkg/pull/22269). + +intel-ipsec-mb vcpkg PR link is https://github.com/microsoft/vcpkg/pull/5586 +--- + lib/win_x64.mak | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +diff --git a/lib/win_x64.mak b/lib/win_x64.mak +index 89162feb..bb62b2ea 100644 +--- a/lib/win_x64.mak ++++ b/lib/win_x64.mak +@@ -12,7 +12,7 @@ + # * Neither the name of Intel Corporation nor the names of its contributors
+ # may be used to endorse or promote products derived from this software
+ # without specific prior written permission.
+-#
++#
+ # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ # AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+@@ -71,14 +71,14 @@ LIB_DIR = .\ +
+ !ifdef DEBUG
+ OPT = $(DEBUG_OPT)
+-DCFLAGS = /DDEBUG /Z7
++DCFLAGS = /DDEBUG
+ DAFLAGS = -gcv8
+-DLFLAGS = /DEBUG
++DLFLAGS = /DEBUG /INCREMENTAL:NO
+ !else
+ OPT = /O2 /Oi
+ DCFLAGS =
+ DAFLAGS =
+-DLFLAGS = /RELEASE
++DLFLAGS = /RELEASE /DEBUG /OPT:REF /OPT:ICF /INCREMENTAL:NO
+ !endif
+
+ !if "$(SAFE_DATA)" != "n"
+@@ -98,7 +98,7 @@ DAFLAGS = $(DAFLAGS) -DSAFE_LOOKUP +
+ CC = cl
+ CFLAGS_ALL = $(EXTRA_CFLAGS) /DNO_COMPAT_IMB_API_053 /I. /Iinclude /Ino-aesni \
+- /nologo /Y- /W3 /WX- /Gm- /fp:precise /EHsc
++ /nologo /Y- /W3 /WX- /Gm- /fp:precise /EHsc /Z7
+
+ CFLAGS = $(CFLAGS_ALL) $(OPT) $(DCFLAGS)
+ CFLAGS_NO_SIMD = $(CFLAGS_ALL) /Od $(DCFLAGS)
+@@ -633,6 +633,7 @@ install: + -copy /Y /V /B $(LIBBASE).lib "$(INSTDIR)"
+ -copy /Y /V /A intel-ipsec-mb.h "$(INSTDIR)"
+ !if "$(SHARED)" == "y"
++ -copy /Y /V /B $(LIB_DIR)\$(LIBBASE).pdb "$(INSTDIR)"
+ -copy /Y /V /B $(LIB_DIR)\$(LIBBASE).dll "$(INSTDIR)"
+ -copy /Y /V /B $(LIB_DIR)\$(LIBBASE).dll "%windir%\system32"
+ !endif
+@@ -641,6 +642,7 @@ uninstall: + !if "$(SHARED)" == "y"
+ -del /Q "%windir%\system32\$(LIBBASE).dll"
+ -del /Q "$(INSTDIR)\$(LIBBASE).dll"
++ -del /Q "$(INSTDIR)\$(LIBBASE).pdb"
+ !endif
+ -del /Q "$(INSTDIR)\$(LIBBASE).def"
+ -del /Q "$(INSTDIR)\$(LIBBASE).exp"
diff --git a/vcpkg/ports/intel-ipsec/intel-ipsec-targets-implib.cmake.in b/vcpkg/ports/intel-ipsec/intel-ipsec-targets-implib.cmake.in new file mode 100644 index 0000000..1a907fc --- /dev/null +++ b/vcpkg/ports/intel-ipsec/intel-ipsec-targets-implib.cmake.in @@ -0,0 +1,5 @@ +set_property(TARGET IPSEC::ipsec APPEND PROPERTY IMPORTED_CONFIGURATIONS @INTEL_IPSEC_CONFIGURATION@)
+set_target_properties(IPSEC::ipsec PROPERTIES
+ IMPORTED_LOCATION_@INTEL_IPSEC_CONFIGURATION@ "${_IMPORT_PREFIX}/@INTEL_IPSEC_LOCATION@"
+ IMPORTED_IMPLIB_@INTEL_IPSEC_CONFIGURATION@ "${_IMPORT_PREFIX}/@INTEL_IPSEC_IMPLIB@"
+ )
diff --git a/vcpkg/ports/intel-ipsec/intel-ipsec-targets.cmake.in b/vcpkg/ports/intel-ipsec/intel-ipsec-targets.cmake.in new file mode 100644 index 0000000..0f5983c --- /dev/null +++ b/vcpkg/ports/intel-ipsec/intel-ipsec-targets.cmake.in @@ -0,0 +1,4 @@ +set_property(TARGET IPSEC::ipsec APPEND PROPERTY IMPORTED_CONFIGURATIONS @INTEL_IPSEC_CONFIGURATION@)
+set_target_properties(IPSEC::ipsec PROPERTIES
+ IMPORTED_LOCATION_@INTEL_IPSEC_CONFIGURATION@ "${_IMPORT_PREFIX}/@INTEL_IPSEC_LOCATION@"
+ )
diff --git a/vcpkg/ports/intel-ipsec/intel-ipsecConfig.cmake.in b/vcpkg/ports/intel-ipsec/intel-ipsecConfig.cmake.in new file mode 100644 index 0000000..cc722d5 --- /dev/null +++ b/vcpkg/ports/intel-ipsec/intel-ipsecConfig.cmake.in @@ -0,0 +1,16 @@ +if(TARGET IPSEC::ipsec) + return() +endif() + +get_filename_component(_IMPORT_PREFIX "${CMAKE_CURRENT_LIST_FILE}" PATH) # intel-ipsec +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) # share +get_filename_component(_IMPORT_PREFIX "${_IMPORT_PREFIX}" PATH) # package root +add_library(IPSEC::ipsec @INTEL_IPSEC_STATIC_OR_SHARED@ IMPORTED) +set_target_properties(IPSEC::ipsec PROPERTIES INTERFACE_INCLUDE_DIRECTORIES "${_IMPORT_PREFIX}/include") +set(IPSEC_ipsec_FOUND 1) + +get_filename_component(_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) +file(GLOB CONFIG_FILES "${_DIR}/intel-ipsec-targets-*.cmake") +foreach(f ${CONFIG_FILES}) + include(${f}) +endforeach() diff --git a/vcpkg/ports/intel-ipsec/portfile.cmake b/vcpkg/ports/intel-ipsec/portfile.cmake new file mode 100644 index 0000000..eb945e1 --- /dev/null +++ b/vcpkg/ports/intel-ipsec/portfile.cmake @@ -0,0 +1,105 @@ +vcpkg_from_github( + OUT_SOURCE_PATH SOURCE_PATH + REPO intel/intel-ipsec-mb + REF bde82c8737edc04d80549f0a68225ede7e5cefd #v1.1 + SHA512 f41dcde88b062e8ec2327987c6d36cd4f74a5e4fea386cc1ef8364f1dc432a2db02ca7d3312c0471b443cf93e815af6d74a4819c249afd6777aa91693b2546e5 + HEAD_REF master + PATCHES + always-generate-pdb.patch # https://github.com/intel/intel-ipsec-mb/pull/93 +) + +vcpkg_find_acquire_program(NASM) +get_filename_component(NASM_DIR "${NASM}" DIRECTORY) +vcpkg_add_to_path(PREPEND "${NASM_DIR}") + +vcpkg_list(SET MAKE_OPTIONS) +set(INTEL_IPSEC_STATIC_OR_SHARED SHARED) +if ("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "static") + vcpkg_list(APPEND MAKE_OPTIONS SHARED=n) + set(INTEL_IPSEC_STATIC_OR_SHARED STATIC) +endif() + +set(DEBUG_LIB "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib") +set(RELEASE_LIB "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib") + +if (VCPKG_TARGET_IS_WINDOWS AND NOT VCPKG_TARGET_IS_MINGW) + vcpkg_build_nmake( + SOURCE_PATH "${SOURCE_PATH}" + PROJECT_SUBPATH lib + PROJECT_NAME win_x64.mak + OPTIONS ${MAKE_OPTIONS} + OPTIONS_DEBUG DEBUG=y + ) + + if(NOT "${VCPKG_BUILD_TYPE}" STREQUAL "release") + file(INSTALL "${DEBUG_LIB}/libIPSec_MB.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") + set(INTEL_IPSEC_CONFIGURATION "DEBUG") + if ("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "static") + set(INTEL_IPSEC_LOCATION "debug/lib/libIPSec_MB.lib") + configure_file("${CMAKE_CURRENT_LIST_DIR}/intel-ipsec-targets.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/intel-ipsec-targets-debug.cmake" @ONLY) + else() + file(INSTALL "${DEBUG_LIB}/libIPSec_MB.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") + file(INSTALL "${DEBUG_LIB}/libIPSec_MB.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/bin") + file(INSTALL "${DEBUG_LIB}/libIPSec_MB.exp" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") + set(INTEL_IPSEC_LOCATION "debug/bin/libIPSec_MB.dll") + set(INTEL_IPSEC_IMPLIB "debug/lib/libIPSec_MB.lib") + configure_file("${CMAKE_CURRENT_LIST_DIR}/intel-ipsec-targets-implib.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/intel-ipsec-targets-debug.cmake" @ONLY) + endif() + endif() + + file(INSTALL "${RELEASE_LIB}/libIPSec_MB.lib" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") + set(INTEL_IPSEC_CONFIGURATION "RELEASE") + if ("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "static") + set(INTEL_IPSEC_LOCATION "lib/libIPSec_MB.lib") + configure_file("${CMAKE_CURRENT_LIST_DIR}/intel-ipsec-targets.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/intel-ipsec-targets-release.cmake" @ONLY) + else() + file(INSTALL "${RELEASE_LIB}/libIPSec_MB.dll" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") + file(INSTALL "${RELEASE_LIB}/libIPSec_MB.pdb" DESTINATION "${CURRENT_PACKAGES_DIR}/bin") + file(INSTALL "${RELEASE_LIB}/libIPSec_MB.exp" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") + set(INTEL_IPSEC_LOCATION "bin/libIPSec_MB.dll") + set(INTEL_IPSEC_IMPLIB "lib/libIPSec_MB.lib") + configure_file("${CMAKE_CURRENT_LIST_DIR}/intel-ipsec-targets-implib.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/intel-ipsec-targets-release.cmake" @ONLY) + endif() +else() + if ("${VCPKG_LIBRARY_LINKAGE}" STREQUAL "static") + set(LIB_SUFFIX ".a") + else() + set(LIB_SUFFIX ".so") + endif() + + find_program(MAKE make REQUIRED) + if(NOT "${VCPKG_BUILD_TYPE}" STREQUAL "release") + message(STATUS "Building ${TARGET_TRIPLET}-dbg") + set(INTEL_IPSEC_CONFIGURATION "DEBUG") + file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") + file(COPY "${SOURCE_PATH}/" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg") + vcpkg_execute_build_process( + COMMAND "${MAKE}" "-j${VCPKG_CONCURRENCY}" ${MAKE_OPTIONS} + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-dbg/lib" + LOGNAME "build-${TARGET_TRIPLET}-dbg" + ) + + file(INSTALL "${DEBUG_LIB}/libIPSec_MB${LIB_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/debug/lib") + set(INTEL_IPSEC_LOCATION "debug/lib/libIPSec_MB${LIB_SUFFIX}") + configure_file("${CMAKE_CURRENT_LIST_DIR}/intel-ipsec-targets.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/intel-ipsec-targets-debug.cmake" @ONLY) + endif() + + message(STATUS "Building ${TARGET_TRIPLET}-rel") + set(INTEL_IPSEC_CONFIGURATION "RELEASE") + file(REMOVE_RECURSE "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") + file(COPY "${SOURCE_PATH}/" DESTINATION "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel") + vcpkg_execute_build_process( + COMMAND "${MAKE}" -j ${MAKE_OPTIONS} + WORKING_DIRECTORY "${CURRENT_BUILDTREES_DIR}/${TARGET_TRIPLET}-rel/lib" + LOGNAME "build-${TARGET_TRIPLET}-rel" + ) + + file(INSTALL "${RELEASE_LIB}/libIPSec_MB${LIB_SUFFIX}" DESTINATION "${CURRENT_PACKAGES_DIR}/lib") + set(INTEL_IPSEC_LOCATION "lib/libIPSec_MB${LIB_SUFFIX}") + configure_file("${CMAKE_CURRENT_LIST_DIR}/intel-ipsec-targets.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/intel-ipsec-targets-release.cmake" @ONLY) +endif() + +file(INSTALL "${SOURCE_PATH}/lib/intel-ipsec-mb.h" DESTINATION "${CURRENT_PACKAGES_DIR}/include") +configure_file("${CMAKE_CURRENT_LIST_DIR}/intel-ipsecConfig.cmake.in" "${CURRENT_PACKAGES_DIR}/share/${PORT}/intel-ipsecConfig.cmake" @ONLY) +file(INSTALL "${CMAKE_CURRENT_LIST_DIR}/usage" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}") +file(INSTALL "${SOURCE_PATH}/LICENSE" DESTINATION "${CURRENT_PACKAGES_DIR}/share/${PORT}" RENAME copyright) diff --git a/vcpkg/ports/intel-ipsec/usage b/vcpkg/ports/intel-ipsec/usage new file mode 100644 index 0000000..083bbca --- /dev/null +++ b/vcpkg/ports/intel-ipsec/usage @@ -0,0 +1,4 @@ +The package intel-ipsec is compatible with built-in CMake targets:
+
+ FIND_PACKAGE(intel-ipsec CONFIG REQUIRED)
+ TARGET_LINK_LIBRARIES(main PRIVATE IPSEC::ipsec)
diff --git a/vcpkg/ports/intel-ipsec/vcpkg.json b/vcpkg/ports/intel-ipsec/vcpkg.json new file mode 100644 index 0000000..2083fbf --- /dev/null +++ b/vcpkg/ports/intel-ipsec/vcpkg.json @@ -0,0 +1,6 @@ +{ + "name": "intel-ipsec", + "version": "1.1", + "description": "Intel(R) Multi-Buffer Crypto for IPsec Library", + "supports": "x64 & (windows | linux) & !uwp" +} |