diff options
author | João Valverde <j@v6e.pt> | 2023-05-23 19:28:58 +0100 |
---|---|---|
committer | João Valverde <j@v6e.pt> | 2023-05-26 22:10:33 +0000 |
commit | 438667846a56c723b4583e672eedc3e07d7d9ea3 (patch) | |
tree | 0827a629253505c96a2a9c198f71f18f8be109b6 | |
parent | f0e4c5262dab59a880a207352fce80a746ec2281 (diff) |
CMake: Download Npcap/USBPcap using CMake
These binaries are required to build an NSIS installer. Download
them using CMake instead. This avoids a dependency on win-setup.ps1,
that gets in the way using MSYS2.
-rw-r--r-- | CMakeLists.txt | 31 | ||||
-rw-r--r-- | packaging/nsis/CMakeLists.txt | 3 | ||||
-rw-r--r-- | tools/win-setup.ps1 | 6 |
3 files changed, 36 insertions, 4 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index da0c003f8e..535eb90d1f 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,6 +20,9 @@ cmake_minimum_required(VERSION 3.13) if(POLICY CMP0083) cmake_policy(SET CMP0083 NEW) endif() +if(POLICY CMP0135) + cmake_policy(SET CMP0135 NEW) +endif() if(WIN32) if(DEFINED ENV{MSYSTEM}) @@ -220,6 +223,34 @@ and CPU target ${WIRESHARK_TARGET_PROCESSOR_ARCHITECTURE}" else() set(EXTRA_INSTALLER_DIR ${CMAKE_BINARY_DIR}/packaging/nsis) endif() + + include(FetchContent) + set(LIBS_URL "https://dev-libs.wireshark.org/windows/packages") + file(TO_CMAKE_PATH ${EXTRA_INSTALLER_DIR} _file_download_dir) + + # Download Npcap required by the Windows installer + set(NPCAP_VERSION "1.75") + set(NPCAP_SHA256 "9ac38dff01b48e18033e8a9015b27042ef847c8c84a9065961a30f8ae22d5245") + set(NPCAP_FILENAME "npcap-${NPCAP_VERSION}.exe") + set(NPCAP_URL "${LIBS_URL}/Npcap/${NPCAP_FILENAME}") + FetchContent_Declare(Npcap + URL ${NPCAP_URL} + DOWNLOAD_DIR ${_file_download_dir} + URL_HASH SHA256=${NPCAP_SHA256} + DOWNLOAD_NO_EXTRACT True + ) + + # Download USBPcap required by the Windows installer + set(USBPCAP_VERSION "1.5.4.0") + set(USBPCAP_SHA256 "87a7edf9bbbcf07b5f4373d9a192a6770d2ff3add7aa1e276e82e38582ccb622") + set(USBPCAP_FILENAME "USBPcapSetup-${USBPCAP_VERSION}.exe") + set(USBPCAP_URL "${LIBS_URL}/USBPcap/${USBPCAP_FILENAME}") + FetchContent_Declare(USBPcap + URL ${USBPCAP_URL} + DOWNLOAD_DIR ${_file_download_dir} + URL_HASH SHA256=${USBPCAP_SHA256} + DOWNLOAD_NO_EXTRACT True + ) endif(WIN32) include(UseCustomIncludes) diff --git a/packaging/nsis/CMakeLists.txt b/packaging/nsis/CMakeLists.txt index 912bb3d09c..46751f4626 100644 --- a/packaging/nsis/CMakeLists.txt +++ b/packaging/nsis/CMakeLists.txt @@ -320,6 +320,9 @@ macro( ADD_NSIS_PACKAGE_TARGETS ) EXCLUDE_FROM_DEFAULT_BUILD True ) + # Make sure required blobs are available + FetchContent_MakeAvailable(Npcap USBPcap) + # Dump the installer into # ${CMAKE_CURRENT_SOURCE_DIR}/packaging/nsis # Note that executables and DLLs *must* be built separately diff --git a/tools/win-setup.ps1 b/tools/win-setup.ps1 index 2ea8e7d295..aacef63fd4 100644 --- a/tools/win-setup.ps1 +++ b/tools/win-setup.ps1 @@ -133,13 +133,11 @@ $ArchivesSubDirectory = @{ # Plain file downloads $Win64Files = @{ - "Npcap/npcap-1.75.exe" = "9ac38dff01b48e18033e8a9015b27042ef847c8c84a9065961a30f8ae22d5245"; - "USBPcap/USBPcapSetup-1.5.4.0.exe" = "87a7edf9bbbcf07b5f4373d9a192a6770d2ff3add7aa1e276e82e38582ccb622"; + # Nothing here } $Win64ArmFiles = @{ - "Npcap/npcap-1.75.exe" = "9ac38dff01b48e18033e8a9015b27042ef847c8c84a9065961a30f8ae22d5245"; - # "USBPcap/USBPcapSetup-1.5.4.0.exe" = "87a7edf9bbbcf07b5f4373d9a192a6770d2ff3add7aa1e276e82e38582ccb622"; + # Nothing here } $Archives = $Win64Archives; |