From 049a89b2ce3c1035a7a73c85654230ac1ee11e70 Mon Sep 17 00:00:00 2001 From: Gerald Combs Date: Tue, 6 Jun 2023 17:54:57 -0700 Subject: [PATCH] CMake+Windows: Use "x64" instead of "win64" Use "x64" to refer to "Windows running on 64-bit Intel processors". Get rid of WIRESHARK_TARGET_PROCESSOR_ARCHITECTURE in favor of WIRESHARK_TARGET_PLATFORM because the latter is shorter. --- CMakeLists.txt | 38 +++++++++---------------- cmake/modules/FindWSWinLibs.cmake | 2 +- cmake/modules/FindWinSparkle.cmake | 2 +- docbook/wsdg_src/wsdg_libraries.adoc | 2 +- docbook/wsdg_src/wsdg_quick_setup.adoc | 2 +- docbook/wsug_src/wsug_introduction.adoc | 1 - packaging/nsis/CMakeLists.txt | 8 +++--- packaging/nsis/logray-common.nsh | 4 +-- packaging/nsis/logray-config.nsh.in | 2 +- packaging/nsis/logray.nsi | 4 +-- packaging/nsis/wireshark-common.nsh | 4 +-- packaging/nsis/wireshark-config.nsh.in | 2 +- packaging/nsis/wireshark.nsi | 6 ++-- packaging/wix/CMakeLists.txt | 10 +++---- tools/win-setup.ps1 | 4 +-- 15 files changed, 40 insertions(+), 51 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 8ab418b345..1c07990873 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -127,10 +127,6 @@ endif() # WIRESHARK_TARGET_PLATFORM accordingly. Otherwise use # %WIRESHARK_TARGET_PLATFORM%. -# XXX We should probably consolidate WIRESHARK_TARGET_PLATFORM and -# WIRESHARK_TARGET_PROCESSOR_ARCHITECTURE and just use "x64" -# instead of "win64" - if(WIN32) if(DEFINED ENV{WIRESHARK_TARGET_PLATFORM}) string(TOLOWER $ENV{WIRESHARK_TARGET_PLATFORM} _target_platform) @@ -142,10 +138,10 @@ if(WIN32) # The differences among the environments are mainly environment # variables, default compilers/linkers, architecture, # system libraries used etc. If you are unsure, go with UCRT64. - set(WIRESHARK_TARGET_PLATFORM win64) + set(WIRESHARK_TARGET_PLATFORM x64) elseif(USE_MSYSTEM) if($ENV{MSYSTEM_CARCH} MATCHES "x86_64") - set(WIRESHARK_TARGET_PLATFORM win64) + set(WIRESHARK_TARGET_PLATFORM x64) elseif($ENV{MSYSTEM_CARCH} MATCHES "i686") set(WIRESHARK_TARGET_PLATFORM win32) elseif($ENV{MSYSTEM_CARCH} MATCHES "aarch64") @@ -155,21 +151,16 @@ if(WIN32) endif() elseif($ENV{Platform} MATCHES arm64 OR CMAKE_GENERATOR_PLATFORM MATCHES arm64) set(WIRESHARK_TARGET_PLATFORM arm64) - elseif(CMAKE_CL_64 OR CMAKE_GENERATOR MATCHES Win64) - set(WIRESHARK_TARGET_PLATFORM win64) + elseif(CMAKE_CL_64 OR CMAKE_GENERATOR MATCHES x64) + set(WIRESHARK_TARGET_PLATFORM x64) else() - message(WARNING "Assuming \"win64\" target platform") - set(WIRESHARK_TARGET_PLATFORM win64) + message(WARNING "Assuming \"x64\" target platform") + set(WIRESHARK_TARGET_PLATFORM x64) endif() - set(WIRESHARK_TARGET_PROCESSOR_ARCHITECTURE ${WIRESHARK_TARGET_PLATFORM}) - if(WIRESHARK_TARGET_PLATFORM MATCHES "win64") - set(WIRESHARK_TARGET_PROCESSOR_ARCHITECTURE x64) - elseif(WIRESHARK_TARGET_PLATFORM MATCHES "arm64") - # Pass - elseif(WIRESHARK_TARGET_PLATFORM MATCHES "win32") + if(WIRESHARK_TARGET_PLATFORM MATCHES "win32") message(FATAL_ERROR "Deprecated target platform ${WIRESHARK_TARGET_PLATFORM}. See https://gitlab.com/wireshark/wireshark/-/issues/17779 for details.") - else() + elseif(NOT WIRESHARK_TARGET_PLATFORM MATCHES "x64" OR WIRESHARK_TARGET_PLATFORM MATCHES "arm64") message(FATAL_ERROR "Invalid target platform: ${WIRESHARK_TARGET_PLATFORM}") endif() @@ -181,7 +172,7 @@ if(WIN32) set(_vs_platform "[undefined]") # x86 endif() if( - (_vs_platform STREQUAL "x64" AND NOT WIRESHARK_TARGET_PLATFORM STREQUAL "win64") + (_vs_platform STREQUAL "x64" AND NOT WIRESHARK_TARGET_PLATFORM STREQUAL "x64") OR (_vs_platform STREQUAL "[undefined]" AND NOT WIRESHARK_TARGET_PLATFORM STREQUAL "win32") ) @@ -190,8 +181,7 @@ if(WIN32) endif() endif() message(STATUS - "Building for ${WIRESHARK_TARGET_PLATFORM} \ -and CPU target ${WIRESHARK_TARGET_PROCESSOR_ARCHITECTURE}" + "Building for ${WIRESHARK_TARGET_PLATFORM}" ) if(NOT CMAKE_CROSSCOMPILING) @@ -408,7 +398,7 @@ else() endif() # Used in .rc files and manifests -set(MANIFEST_PROCESSOR_ARCHITECTURE ${WIRESHARK_TARGET_PROCESSOR_ARCHITECTURE}) +set(MANIFEST_PROCESSOR_ARCHITECTURE ${WIRESHARK_TARGET_PLATFORM}) if (MANIFEST_PROCESSOR_ARCHITECTURE MATCHES "x64") set(MANIFEST_PROCESSOR_ARCHITECTURE "amd64") endif() @@ -585,7 +575,7 @@ if( CMAKE_C_COMPILER_ID MATCHES "MSVC") /D_CRT_NONSTDC_NO_WARNINGS ) - if(NOT WIRESHARK_TARGET_PLATFORM STREQUAL "win64") + if(NOT WIRESHARK_TARGET_PLATFORM STREQUAL "x64") add_definitions("/D_BIND_TO_CURRENT_CRT_VERSION=1") endif() @@ -2278,7 +2268,7 @@ if(USE_REPOSITORY) list (APPEND THIRD_PARTY_DLLS "${SPEEXDSP_DLL_DIR}/${SPEEXDSP_DLL}") endif() - # With libs downloaded to c:/wireshark-win64-libs this currently + # With libs downloaded to c:/wireshark-x64-libs this currently # (early 2018) expands to about 1900 characters. if (THIRD_PARTY_DLLS) add_custom_command(TARGET copy_cli_dlls PRE_BUILD @@ -2316,7 +2306,7 @@ if(USE_REPOSITORY) if(ZIP_EXECUTABLE) add_custom_target(pdb_zip_package COMMENT "This packages .PDBs but will not create them.") set_target_properties(pdb_zip_package PROPERTIES FOLDER "Packaging") - set(_pdb_zip "${CMAKE_BINARY_DIR}/Wireshark-pdb-${PROJECT_VERSION}-${WIRESHARK_TARGET_PROCESSOR_ARCHITECTURE}.zip") + set(_pdb_zip "${CMAKE_BINARY_DIR}/Wireshark-pdb-${PROJECT_VERSION}-${WIRESHARK_TARGET_PLATFORM}.zip") file(TO_NATIVE_PATH "${_pdb_zip}" _pdb_zip_win) add_custom_command(TARGET pdb_zip_package POST_BUILD COMMAND ${CMAKE_COMMAND} -E remove -f "${_pdb_zip}" diff --git a/cmake/modules/FindWSWinLibs.cmake b/cmake/modules/FindWSWinLibs.cmake index 3778f4b8dd..71297e6463 100644 --- a/cmake/modules/FindWSWinLibs.cmake +++ b/cmake/modules/FindWSWinLibs.cmake @@ -26,7 +26,7 @@ function( FindWSWinLibs _WS_LIB_SEARCH_PATH _LIB_HINT_VAR ) foreach( _DIR ${_SUBDIR} ) if( IS_DIRECTORY ${_DIR} ) if( "${_DIR}" MATCHES ".*/${_WS_LIB_SEARCH_PATH}" ) - set(_vcpkg_dir "${_DIR}/installed/${WIRESHARK_TARGET_PROCESSOR_ARCHITECTURE}-windows") + set(_vcpkg_dir "${_DIR}/installed/${WIRESHARK_TARGET_PLATFORM}-windows") if( IS_DIRECTORY "${_vcpkg_dir}") set( ${_LIB_HINT_VAR} ${_vcpkg_dir} PARENT_SCOPE ) else() diff --git a/cmake/modules/FindWinSparkle.cmake b/cmake/modules/FindWinSparkle.cmake index d2888911c7..7418cfb7a8 100644 --- a/cmake/modules/FindWinSparkle.cmake +++ b/cmake/modules/FindWinSparkle.cmake @@ -17,7 +17,7 @@ ENDIF (WINSPARKLE_INCLUDE_DIRS) INCLUDE(FindWSWinLibs) FindWSWinLibs("WinSparkle.*" "WINSPARKLE_HINTS") -set (_release_subdir "${WIRESHARK_TARGET_PROCESSOR_ARCHITECTURE}/Release") +set (_release_subdir "${WIRESHARK_TARGET_PLATFORM}/Release") FIND_PATH(WINSPARKLE_INCLUDE_DIR winsparkle.h HINTS "${WINSPARKLE_HINTS}/include" ) diff --git a/docbook/wsdg_src/wsdg_libraries.adoc b/docbook/wsdg_src/wsdg_libraries.adoc index cc62a44fca..d0f5f1d065 100644 --- a/docbook/wsdg_src/wsdg_libraries.adoc +++ b/docbook/wsdg_src/wsdg_libraries.adoc @@ -37,7 +37,7 @@ the CMake generation step, and subsequently as required when libraries are updat The libraries are downloaded into the directory indicated by the environment variable WIRESHARK_BASE_DIR, this must be set appropriately for your environment. -The libraries are downloaded and extracted into WIRESHARK_BASE_DIR\wireshark-win64-libs. +The libraries are downloaded and extracted into WIRESHARK_BASE_DIR\wireshark-x64-libs or WIRESHARK_BASE_DIR\wireshark-arm64-libs depending on your target platform. You may also set the library directory to a custom value with the environment variable WIRESHARK_LIB_DIR, but you may run into problems if you switch between major versions or target platforms. diff --git a/docbook/wsdg_src/wsdg_quick_setup.adoc b/docbook/wsdg_src/wsdg_quick_setup.adoc index 4a65bfb6ef..e6ba1a9470 100644 --- a/docbook/wsdg_src/wsdg_quick_setup.adoc +++ b/docbook/wsdg_src/wsdg_quick_setup.adoc @@ -562,7 +562,7 @@ rem Let CMake determine the library download directory name under rem WIRESHARK_BASE_DIR or set it explicitly by using WIRESHARK_LIB_DIR. rem Set *one* of these. set WIRESHARK_BASE_DIR=C:\Development -rem set WIRESHARK_LIB_DIR=c:\wireshark-win64-libs +rem set WIRESHARK_LIB_DIR=c:\wireshark-x64-libs rem Set the Qt installation directory set WIRESHARK_QT6_PREFIX_PATH=C:\Qt{backslash}{qt6-lts-version}\msvc2019_64 rem Append a custom string to the package version. Optional. diff --git a/docbook/wsug_src/wsug_introduction.adoc b/docbook/wsug_src/wsug_introduction.adoc index dee342662f..3939e94b93 100644 --- a/docbook/wsug_src/wsug_introduction.adoc +++ b/docbook/wsug_src/wsug_introduction.adoc @@ -513,7 +513,6 @@ Email _backtrace.txt_ to mailto:{wireshark-dev-list-email}[]. The Windows distributions don’t contain the symbol files (.pdb) because they are very large. You can download them separately at -{wireshark-main-url}download/win32/all-versions/ and {wireshark-main-url}download/win64/all-versions/ . // End of WSUG Chapter 1 diff --git a/packaging/nsis/CMakeLists.txt b/packaging/nsis/CMakeLists.txt index 4afd58b131..e30eb5d875 100644 --- a/packaging/nsis/CMakeLists.txt +++ b/packaging/nsis/CMakeLists.txt @@ -119,8 +119,8 @@ endif() find_program(_vcredist NAMES - "vc_redist.${WIRESHARK_TARGET_PROCESSOR_ARCHITECTURE}.exe" # Visual Studio 2022 and later - "vcredist_${WIRESHARK_TARGET_PROCESSOR_ARCHITECTURE}.exe" # Visual Studio 2019 and earlier + "vc_redist.${WIRESHARK_TARGET_PLATFORM}.exe" # Visual Studio 2022 and later + "vcredist_${WIRESHARK_TARGET_PLATFORM}.exe" # Visual Studio 2019 and earlier PATHS "${_PROJECT_LIB_DIR}" $ENV{VCToolsRedistDir} "${VCINSTALLDIR}" PATH_SUFFIXES ${_ws_vcredist_subdir} ${_ms_vcredist_subdir} NO_DEFAULT_PATH @@ -396,12 +396,12 @@ set(CLEAN_FILES #NEWS.txt #user-guide.chm ${DATAFILE_DIR}/uninstall-wireshark.exe - wireshark-${VERSION}-${WIRESHARK_TARGET_PROCESSOR_ARCHITECTURE}.exe + wireshark-${VERSION}-${WIRESHARK_TARGET_PLATFORM}.exe wireshark-config.nsh wireshark-manifest.nsh wireshark-qt-manifest.nsh ${DATAFILE_DIR}/uninstall-logray.exe - logray-${VERSION}-${WIRESHARK_TARGET_PROCESSOR_ARCHITECTURE}.exe + logray-${VERSION}-${WIRESHARK_TARGET_PLATFORM}.exe logray-config.nsh logray-manifest.nsh logray-qt-manifest.nsh diff --git a/packaging/nsis/logray-common.nsh b/packaging/nsis/logray-common.nsh index 6f1c81c076..4eaacd5cae 100644 --- a/packaging/nsis/logray-common.nsh +++ b/packaging/nsis/logray-common.nsh @@ -20,7 +20,7 @@ ManifestDPIAware true !include "logray-config.nsh" -!define DISPLAY_NAME "${PROGRAM_NAME} ${VERSION} ${WIRESHARK_TARGET_PROCESSOR_ARCHITECTURE}" +!define DISPLAY_NAME "${PROGRAM_NAME} ${VERSION} ${WIRESHARK_TARGET_PLATFORM}" Name "${DISPLAY_NAME}" !define PROGRAM_FULL_NAME "The ${PROGRAM_NAME} Log Analyzer" @@ -34,7 +34,7 @@ VIAddVersionKey "CompanyName" "${PROGRAM_NAME} development team" ; NSIS handles U+00a9 but not a UTF-8 encoded copyright symbol. VIAddVersionKey "LegalCopyright" "${U+00a9} Gerald Combs and many others" VIAddVersionKey "LegalTrademarks" "Logray and the 'ray' logo are registered trademarks" -VIAddVersionKey "FileDescription" "${PROGRAM_NAME} installer for Windows on ${WIRESHARK_TARGET_PROCESSOR_ARCHITECTURE}" +VIAddVersionKey "FileDescription" "${PROGRAM_NAME} installer for Windows on ${WIRESHARK_TARGET_PLATFORM}" VIAddVersionKey "Language" "English" VIAddVersionKey "ProductVersion" "${PRODUCT_VERSION}" VIAddVersionKey "FileVersion" "${PRODUCT_VERSION}" diff --git a/packaging/nsis/logray-config.nsh.in b/packaging/nsis/logray-config.nsh.in index 7d1710f00a..b08327221f 100644 --- a/packaging/nsis/logray-config.nsh.in +++ b/packaging/nsis/logray-config.nsh.in @@ -7,7 +7,7 @@ # MUST match " .\tools\win-setup.ps1 -Destination C:\wireshark-master-64-libs -Platform win64 +C:\PS> .\tools\win-setup.ps1 -Destination C:\wireshark-master-64-libs -Platform x64 #> Param( @@ -53,7 +53,7 @@ Param( $Destination, [Parameter(Mandatory=$true, Position=1)] - [ValidateSet("win64", "arm64")] + [ValidateSet("x64", "arm64")] [String] $Platform,