early-access version 2853

This commit is contained in:
pineappleEA
2022-07-23 03:01:36 +02:00
parent 1f2b5081b5
commit 1f111bb69c
8955 changed files with 418777 additions and 999 deletions

View File

@@ -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"

View File

@@ -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@"
)

View File

@@ -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@"
)

View File

@@ -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()

View File

@@ -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)

4
externals/vcpkg/ports/intel-ipsec/usage vendored Executable file
View File

@@ -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)

View File

@@ -0,0 +1,6 @@
{
"name": "intel-ipsec",
"version": "1.1",
"description": "Intel(R) Multi-Buffer Crypto for IPsec Library",
"supports": "x64 & (windows | linux) & !uwp"
}