From ea46a44f67eed8081379a81911dc069478429201 Mon Sep 17 00:00:00 2001 From: Gerald Combs Date: Mon, 5 Jan 2015 12:53:46 -0800 Subject: NSIS: Move definitions to their own file. Convert the pile-o-makensis-flags to a pile-o-sed-commands which creates a "config.nsh" file. This should hopefully make it easier to port the "packaging" target to CMake. Change-Id: I439fea5721c5b209a753044a8e9e8ac6fc5291c3 Reviewed-on: https://code.wireshark.org/review/6345 Reviewed-by: Gerald Combs --- packaging/nsis/Makefile.am | 1 + packaging/nsis/Makefile.nmake | 179 +++++++++++++++++++++--------------------- packaging/nsis/common.nsh | 2 + packaging/nsis/config.nsh.in | 103 ++++++++++++++++++++++++ 4 files changed, 195 insertions(+), 90 deletions(-) create mode 100644 packaging/nsis/config.nsh.in (limited to 'packaging/nsis') diff --git a/packaging/nsis/Makefile.am b/packaging/nsis/Makefile.am index 946fabae89..191ea10244 100644 --- a/packaging/nsis/Makefile.am +++ b/packaging/nsis/Makefile.am @@ -4,6 +4,7 @@ MAINTAINERCLEANFILES = \ EXTRA_DIST = \ AdditionalTasksPage.ini \ common.nsh \ + config.nsh.in \ Custom.nmake \ custom_diameter_xmls.txt \ custom_mibs.txt \ diff --git a/packaging/nsis/Makefile.nmake b/packaging/nsis/Makefile.nmake index be74fae3ea..29d843624c 100644 --- a/packaging/nsis/Makefile.nmake +++ b/packaging/nsis/Makefile.nmake @@ -85,155 +85,153 @@ user-guide.chm:: if exist ..\..\docbook\user-guide.chm xcopy ..\..\docbook\user-guide.chm . /Y /D if exist $(WIRESHARK_LIB_DIR)\user-guide\user-guide.chm xcopy $(WIRESHARK_LIB_DIR)\user-guide\user-guide.chm . /Y /D -NSIS_FLAGS=\ - /DPROGRAM_NAME=$(PROGRAM_NAME) \ - /DMAKEDIR="$(MAKEDIR)" \ - /DSTAGING_DIR=$(STAGING_DIR) \ - /DWIRESHARK_TARGET_PLATFORM=$(WIRESHARK_TARGET_PLATFORM) \ - /DTARGET_MACHINE=$(TARGET_MACHINE) \ - /DMSVC_VARIANT=$(MSVC_VARIANT) \ - /DMSC_VER_REQUIRED=$(MSC_VER_REQUIRED) \ - /DWIRESHARK_LIB_DIR=$(WIRESHARK_LIB_DIR) \ - /DWINPCAP_VERSION=$(WINPCAP_VERSION) \ - /DPCAP_DISPLAY_VERSION=$(WINPCAP_VERSION:_=.) \ -!IFDEF MSVCR_DLL - /DMSVCR_DLL="$(MSVCR_DLL)" \ -!ENDIF -!IFDEF VCREDIST_EXE - /DVCREDIST_EXE="$(VCREDIST_EXE)" \ -!ENDIF -!IF "$(ENABLE_LIBWIRESHARK)" != "" - /DENABLE_LIBWIRESHARK=$(ENABLE_LIBWIRESHARK) \ -!ENDIF +common.nsh: config.nsh +config.nsh: config.nsh.in ..\..\config.nmake + sed \ + -e s/@PROGRAM_NAME@/$(PROGRAM_NAME)/ \ + -e s/@MAKEDIR@/$(MAKEDIR_ESCAPED:\=\\)/ \ + -e s/@STAGING_DIR@/$(STAGING_DIR:\=\\)/ \ + -e s/@WIRESHARK_TARGET_PLATFORM@/$(WIRESHARK_TARGET_PLATFORM)/ \ + -e s/@TARGET_MACHINE@/$(TARGET_MACHINE)/ \ + -e s/@MSVC_VARIANT@/$(MSVC_VARIANT)/ \ + -e s/@MSC_VER_REQUIRED@/$(MSC_VER_REQUIRED)/ \ + -e s/@WIRESHARK_LIB_DIR@/$(WIRESHARK_LIB_DIR:\=\\)/ \ + -e s/@WINPCAP_VERSION@/$(WINPCAP_VERSION)/ \ + -e s/@PCAP_DISPLAY_VERSION@/$(WINPCAP_VERSION:_=.)/ \ + -e s/@INTL_DLL@/$(INTL_DLL)/ \ + -e s/@VERSION@/$(VERSION)/ \ + -e s/@VERSION_MAJOR@/$(VERSION_MAJOR)/ \ + -e s/@VERSION_MINOR@/$(VERSION_MINOR)/ \ + -e s/@VERSION_MICRO@/$(VERSION_MICRO)/ \ + -e s/@VERSION_BUILD@/$(VERSION_BUILD)/ \ + -e s/@PRODUCT_VERSION@/$(PRODUCT_VERSION)/ \ + -e s/@WTAP_VERSION@/$(WTAP_VERSION)/ \ + -e s/@MSVCR_DLL@/$(MSVCR_DLL:\=\\)/ \ + -e s/@VCREDIST_EXE@/$(VCREDIST_EXE:\=\\)/ \ + -e s/@ENABLE_LIBWIRESHARK@/$(ENABLE_LIBWIRESHARK)/ \ !IFDEF GTK_DIR - /DGTK_DIR=$(GTK_DIR) \ - /DGTK_LIB_DIR=$(GTK_LIB_DIR) \ - /DPANGO_LIB_DIR=$(PANGO_LIB_DIR) \ - /DGDK_DLL=$(GDK_DLL) \ - /DGTK_DLL=$(GTK_DLL) \ - /DGTK_NAME=$(GTK_NAME) \ - /DGTK_ETC_DIR=$(GTK_ETC_DIR) \ + -e s/@GTK_DIR@/$(GTK_DIR:\=\\)/ \ + -e s/@GTK_LIB_DIR@/$(GTK_LIB_DIR:\=\\)/ \ + -e s/@PANGO_LIB_DIR@/$(PANGO_LIB_DIR:\=\\)/ \ + -e s/@GDK_DLL@/$(GDK_DLL)/ \ + -e s/@GTK_DLL@/$(GTK_DLL)/ \ + -e s/@GTK_NAME@/$(GTK_NAME)/ \ + -e s/@GTK_ETC_DIR@/$(GTK_ETC_DIR:\=\\)/ \ !IFDEF GTK_ENGINES_DIR - /DGTK_ENGINES_DIR=$(GTK_ENGINES_DIR) \ + -e s/@GTK_ENGINES_DIR@/$(GTK_ENGINES_DIR:\=\\)/ \ !ENDIF !IFDEF GTK_MODULES_DIR - /DGTK_MODULES_DIR=$(GTK_MODULES_DIR) \ + -e s/@GTK_MODULES_DIR@/$(GTK_MODULES_DIR:\=\\)/ \ !ENDIF !IFDEF GTK_SCHEMAS_DIR - /DGTK_SCHEMAS_DIR=$(GTK_SCHEMAS_DIR) \ + -e s/@GTK_SCHEMAS_DIR@/$(GTK_SCHEMAS_DIR:\=\\)/ \ !ENDIF !IFDEF NEED_CAIRO_GOBJECT_DLL - /DNEED_CAIRO_GOBJECT_DLL=$(NEED_CAIRO_GOBJECT_DLL) \ + -e s/@NEED_CAIRO_GOBJECT_DLL@/$(NEED_CAIRO_GOBJECT_DLL)/ \ !ENDIF !IFDEF NEED_CAIRO_DLL - /DNEED_CAIRO_DLL=$(NEED_CAIRO_DLL) \ + -e s/@NEED_CAIRO_DLL@/$(NEED_CAIRO_DLL)/ \ !ENDIF !IFDEF NEED_EXPAT_DLL - /DNEED_EXPAT_DLL=$(NEED_EXPAT_DLL) \ - /DEXPAT_DLL=$(EXPAT_DLL) \ + -e s/@NEED_EXPAT_DLL@/$(NEED_EXPAT_DLL)/ \ + -e s/@EXPAT_DLL@/$(EXPAT_DLL)/ \ !ENDIF !IFDEF NEED_FFI_DLL - /DNEED_FFI_DLL=$(NEED_FFI_DLL) \ - /DFFI_DLL=$(FFI_DLL) \ + -e s/@NEED_FFI_DLL@/$(NEED_FFI_DLL)/ \ + -e s/@FFI_DLL@/$(FFI_DLL)/ \ !ENDIF !IFDEF NEED_FONTCONFIG_DLL - /DNEED_FONTCONFIG_DLL=$(NEED_FONTCONFIG_DLL) \ - /DFONTCONFIG_DLL=$(FONTCONFIG_DLL) \ + -e s/@NEED_FONTCONFIG_DLL@/$(NEED_FONTCONFIG_DLL)/ \ + -e s/@FONTCONFIG_DLL@/$(FONTCONFIG_DLL)/ \ !ENDIF !IFDEF NEED_FREETYPE_DLL - /DNEED_FREETYPE_DLL=$(NEED_FREETYPE_DLL) \ - /DFREETYPE_DLL=$(FREETYPE_DLL) \ + -e s/@NEED_FREETYPE_DLL@/$(NEED_FREETYPE_DLL)/ \ + -e s/@FREETYPE_DLL@/$(FREETYPE_DLL)/ \ !ENDIF !IFDEF NEED_HARFBUZZ_DLL - /DNEED_HARFBUZZ_DLL=$(NEED_HARFBUZZ_DLL) \ - /DHARFBUZZ_DLL=$(HARFBUZZ_DLL) \ + -e s/@NEED_HARFBUZZ_DLL@/$(NEED_HARFBUZZ_DLL)/ \ + -e s/@HARFBUZZ_DLL@/$(HARFBUZZ_DLL)/ \ !ENDIF !IFDEF NEED_JASPER_DLL - /DNEED_JASPER_DLL=$(NEED_JASPER_DLL) \ - /DJASPER_DLL=$(JASPER_DLL) \ + -e s/@NEED_JASPER_DLL@/$(NEED_JASPER_DLL)/ \ + -e s/@JASPER_DLL@/$(JASPER_DLL)/ \ !ENDIF !IFDEF NEED_JPEG_DLL - /DNEED_JPEG_DLL=$(NEED_JPEG_DLL) \ - /DJPEG_DLL=$(JPEG_DLL) \ + -e s/@NEED_JPEG_DLL@/$(NEED_JPEG_DLL)/ \ + -e s/@JPEG_DLL@/$(JPEG_DLL)/ \ !ENDIF !IFDEF NEED_LZMA_DLL - /DNEED_LZMA_DLL=$(NEED_LZMA_DLL) \ - /DLZMA_DLL=$(LZMA_DLL) \ + -e s/@NEED_LZMA_DLL@/$(NEED_LZMA_DLL)/ \ + -e s/@LZMA_DLL@/$(LZMA_DLL)/ \ !ENDIF !IFDEF NEED_PIXMAN_DLL - /DNEED_PIXMAN_DLL=$(NEED_PIXMAN_DLL) \ - /DPIXMAN_DLL=$(PIXMAN_DLL) \ + -e s/@NEED_PIXMAN_DLL@/$(NEED_PIXMAN_DLL)/ \ + -e s/@PIXMAN_DLL@/$(PIXMAN_DLL)/ \ !ENDIF !IFDEF NEED_PNG_DLL - /DNEED_PNG_DLL=$(NEED_PNG_DLL) \ - /DPNG_DLL=$(PNG_DLL) \ + -e s/@NEED_PNG_DLL@/$(NEED_PNG_DLL)/ \ + -e s/@PNG_DLL@/$(PNG_DLL)/ \ !ENDIF !IFDEF NEED_SEH_DLL - /DNEED_SEH_DLL=$(NEED_SEH_DLL) \ - /DSEH_DLL=$(SEH_DLL) \ + -e s/@NEED_SEH_DLL@/$(NEED_SEH_DLL)/ \ + -e s/@SEH_DLL@/$(SEH_DLL)/ \ !ENDIF !IFDEF NEED_SJLJ_DLL - /DNEED_SJLJ_DLL=$(NEED_SJLJ_DLL) \ - /DSJLJ_DLL=$(SJLJ_DLL) \ + -e s/@NEED_SJLJ_DLL@/$(NEED_SJLJ_DLL)/ \ + -e s/@SJLJ_DLL@/$(SJLJ_DLL)/ \ !ENDIF !IFDEF NEED_TIFF_DLL - /DNEED_TIFF_DLL=$(NEED_TIFF_DLL) \ - /DTIFF_DLL=$(TIFF_DLL) \ + -e s/@NEED_TIFF_DLL@/$(NEED_TIFF_DLL)/ \ + -e s/@TIFF_DLL@/$(TIFF_DLL)/ \ !ENDIF !IFDEF NEED_XML_DLL - /DNEED_XML_DLL=$(NEED_XML_DLL) \ - /DXML_DLL=$(XML_DLL) \ -!ENDIF -!ENDIF - /DINTL_DLL=$(INTL_DLL) \ - /DVERSION=$(VERSION) \ - /DVERSION_MAJOR=$(VERSION_MAJOR) \ - /DVERSION_MINOR=$(VERSION_MINOR) \ - /DVERSION_MICRO=$(VERSION_MICRO) \ - /DVERSION_BUILD=$(VERSION_BUILD) \ - /DPRODUCT_VERSION=$(PRODUCT_VERSION) \ - /DWTAP_VERSION=$(WTAP_VERSION) \ + -e s/@NEED_XML_DLL@/$(NEED_XML_DLL)/ \ + -e s/@XML_DLL@/$(XML_DLL)/ \ +!ENDIF +!ENDIF !IF "$(C_ARES_DIR)" != "" - /DC_ARES_DIR=$(C_ARES_DIR) \ + -e s/@C_ARES_DIR@/$(C_ARES_DIR:\=\\)/ \ !ENDIF !IF "$(ADNS_DIR)" != "" - /DADNS_DIR=$(ADNS_DIR) \ + -e s/@ADNS_DIR@/$(ADNS_DIR:\=\\)/ \ !ENDIF !IF "$(KFW_DIR)" != "" - /DKFW_DIR=$(KFW_DIR) \ - /DKFW_PATH=$(KFW_PATH) \ - /DCOMERR_DLL=$(COMERR_DLL) \ - /DKRB5_DLL=$(KRB5_DLL) \ - /DK5SPRT_DLL=$(K5SPRT_DLL) \ + -e s/@KFW_DIR@/$(KFW_DIR:\=\\)/ \ + -e s/@KFW_PATH@/$(KFW_PATH:\=\\)/ \ + -e s/@COMERR_DLL@/$(COMERR_DLL:\=\\)/ \ + -e s/@KRB5_DLL@/$(KRB5_DLL:\=\\)/ \ + -e s/@K5SPRT_DLL@/$(K5SPRT_DLL:\=\\)/ \ !ENDIF !IF "$(GNUTLS_DIR)" != "" - /DGPGERROR_DLL=$(GPGERROR_DLL) \ - /DGCC_DLL=$(GCC_DLL) \ - /DGNUTLS_DIR=$(GNUTLS_DIR) \ + -e s/@GPGERROR_DLL@/$(GPGERROR_DLL)/ \ + -e s/@GCC_DLL@/$(GCC_DLL)/ \ + -e s/@GNUTLS_DIR@/$(GNUTLS_DIR:\=\\)/ \ !ENDIF !IF "$(ZLIB_DIR)" != "" - /DZLIB_DIR=$(ZLIB_DIR) \ + -e s/@ZLIB_DIR@/$(ZLIB_DIR:\=\\)/ \ !ENDIF !IFDEF LUA_DIR - /DLUA_DIR=$(LUA_DIR) \ + -e s/@LUA_DIR@/$(LUA_DIR:\=\\)/ \ !ENDIF !IFDEF SMI_DIR - /DSMI_DIR=$(SMI_DIR) \ + -e s/@SMI_DIR@/$(SMI_DIR:\=\\)/ \ !ENDIF !IFDEF GEOIP_DIR - /DGEOIP_DIR=$(GEOIP_DIR) \ + -e s/@GEOIP_DIR@/$(GEOIP_DIR:\=\\)/ \ !ENDIF !IFDEF WINSPARKLE_DIR - /DWINSPARKLE_DIR=$(WINSPARKLE_DIR) \ + -e s/@WINSPARKLE_DIR@/$(WINSPARKLE_DIR:\=\\)/ \ !ENDIF !IFDEF HHC_DIR - /DHHC_DIR="$(HHC_DIR)" \ + -e 's/@HHC_DIR@/$(HHC_DIR:\=\\\\\\)/' \ !ENDIF !IF EXIST("..\..\wireshark-qt-release\wireshark.exe") - /DQT_DIR="..\..\wireshark-qt-release" \ + -e s/@QT_DIR@/..\\..\\wireshark-qt-release/ \ !ENDIF + -e 's/\(^^!define .* \)@.*@$$/; \1/' \ + < config.nsh.in > $@ -wireshark.nsi: qt-dll-manifest.nsh +wireshark.nsi: qt-dll-manifest.nsh common.nsh qt-dll-manifest.nsh: windeployqt-to-nsis.ps1 Makefile.nmake !IF EXIST("$(QT5_BASE_DIR)\bin\qmake.exe") set PATH=%PATH%;$(QT5_BASE_DIR)\bin @@ -244,14 +242,14 @@ qt-dll-manifest.nsh: windeployqt-to-nsis.ps1 Makefile.nmake $(STAGING_DIR)\uninstall.exe : $(NSI) rm -f $(UNINSTALL_INSTALLER) - $(MAKENSIS) $(NSIS_FLAGS) uninstall.nsi + $(MAKENSIS) uninstall.nsi $(UNINSTALL_INSTALLER) rm -f $(UNINSTALL_INSTALLER) uninstall-exe : $(STAGING_DIR)\uninstall.exe wireshark-$(WIRESHARK_TARGET_PLATFORM)-$(VERSION).exe : user-guide.chm $(NSI) $(DELIVERABLES) Makefile.nmake $(STAGING_DIR)\uninstall.exe - $(MAKENSIS) $(NSIS_FLAGS) wireshark.nsi + $(MAKENSIS) wireshark.nsi clean: rm -f wireshark-$(WIRESHARK_TARGET_PLATFORM)-$(VERSION).exe @@ -259,6 +257,7 @@ clean: rm -f NEWS.txt rm -f user-guide.chm rm -f qt-dll-manifest.nsh + rm -f config.nsh distclean: clean rm -f wireshark-$(WIRESHARK_TARGET_PLATFORM)-*.exe diff --git a/packaging/nsis/common.nsh b/packaging/nsis/common.nsh index 3ffd9b02de..81a61f8eb3 100755 --- a/packaging/nsis/common.nsh +++ b/packaging/nsis/common.nsh @@ -3,6 +3,8 @@ ; Name and version information ; ============================================================================ +!include "config.nsh" + !if ${WIRESHARK_TARGET_PLATFORM} == "win32" !define BITS 32 !else diff --git a/packaging/nsis/config.nsh.in b/packaging/nsis/config.nsh.in new file mode 100644 index 0000000000..0a5ea99359 --- /dev/null +++ b/packaging/nsis/config.nsh.in @@ -0,0 +1,103 @@ +; ============================================================================ +; NSIS configuration definitions. Generated from config.nsh.in. +; ============================================================================ + +; XXX We might want to switch all of the "!define"s below to "#cmakedefine" +; so that we can more easily integrate with CMake. + +!define PROGRAM_NAME "@PROGRAM_NAME@" +!define MAKEDIR "@MAKEDIR@" +!define STAGING_DIR "@STAGING_DIR@" +!define WIRESHARK_TARGET_PLATFORM @WIRESHARK_TARGET_PLATFORM@ +!define TARGET_MACHINE @TARGET_MACHINE@ +!define MSVC_VARIANT @MSVC_VARIANT@ +!define MSC_VER_REQUIRED @MSC_VER_REQUIRED@ +!define WIRESHARK_LIB_DIR "@WIRESHARK_LIB_DIR@" +!define WINPCAP_VERSION @WINPCAP_VERSION@ +!define PCAP_DISPLAY_VERSION @PCAP_DISPLAY_VERSION@ +!define INTL_DLL @INTL_DLL@ +!define VERSION @VERSION@ +!define VERSION_MAJOR @VERSION_MAJOR@ +!define VERSION_MINOR @VERSION_MINOR@ +!define VERSION_MICRO @VERSION_MICRO@ +!define VERSION_BUILD @VERSION_BUILD@ +!define PRODUCT_VERSION @PRODUCT_VERSION@ +!define WTAP_VERSION @WTAP_VERSION@ + +!define MSVCR_DLL "@MSVCR_DLL@" + +!define VCREDIST_EXE "@VCREDIST_EXE@" + +!define ENABLE_LIBWIRESHARK @ENABLE_LIBWIRESHARK@ + +; Qt +!define QT_DIR @QT_DIR@ + +; GTK+ +!define GTK_DIR @GTK_DIR@ +!define GTK_LIB_DIR @GTK_LIB_DIR@ +!define PANGO_LIB_DIR @PANGO_LIB_DIR@ +!define GDK_DLL @GDK_DLL@ +!define GTK_DLL @GTK_DLL@ +!define GTK_NAME @GTK_NAME@ +!define GTK_ETC_DIR @GTK_ETC_DIR@ +!define GTK_ENGINES_DIR @GTK_ENGINES_DIR@ +!define GTK_MODULES_DIR @GTK_MODULES_DIR@ +!define GTK_SCHEMAS_DIR @GTK_SCHEMAS_DIR@ +!define NEED_CAIRO_GOBJECT_DLL @NEED_CAIRO_GOBJECT_DLL@ +!define NEED_CAIRO_DLL @NEED_CAIRO_DLL@ +!define NEED_EXPAT_DLL @NEED_EXPAT_DLL@ +!define EXPAT_DLL @EXPAT_DLL@ +!define NEED_FFI_DLL @NEED_FFI_DLL@ +!define FFI_DLL @FFI_DLL@ +!define NEED_FONTCONFIG_DLL @NEED_FONTCONFIG_DLL@ +!define FONTCONFIG_DLL @FONTCONFIG_DLL@ +!define NEED_FREETYPE_DLL @NEED_FREETYPE_DLL@ +!define FREETYPE_DLL @FREETYPE_DLL@ +!define NEED_HARFBUZZ_DLL @NEED_HARFBUZZ_DLL@ +!define HARFBUZZ_DLL @HARFBUZZ_DLL@ +!define NEED_JASPER_DLL @NEED_JASPER_DLL@ +!define JASPER_DLL @JASPER_DLL@ +!define NEED_JPEG_DLL @NEED_JPEG_DLL@ +!define JPEG_DLL @JPEG_DLL@ +!define NEED_LZMA_DLL @NEED_LZMA_DLL@ +!define LZMA_DLL @LZMA_DLL@ +!define NEED_PIXMAN_DLL @NEED_PIXMAN_DLL@ +!define PIXMAN_DLL @PIXMAN_DLL@ +!define NEED_PNG_DLL @NEED_PNG_DLL@ +!define PNG_DLL @PNG_DLL@ +!define NEED_SEH_DLL @NEED_SEH_DLL@ +!define SEH_DLL @SEH_DLL@ +!define NEED_SJLJ_DLL @NEED_SJLJ_DLL@ +!define SJLJ_DLL @SJLJ_DLL@ +!define NEED_TIFF_DLL @NEED_TIFF_DLL@ +!define TIFF_DLL @TIFF_DLL@ +!define NEED_XML_DLL @NEED_XML_DLL@ +!define XML_DLL @XML_DLL@ + +; Common +!define C_ARES_DIR @C_ARES_DIR@ +!define ADNS_DIR @ADNS_DIR@ + +!define KFW_DIR @KFW_DIR@ +!define KFW_PATH @KFW_PATH@ +!define COMERR_DLL @COMERR_DLL@ +!define KRB5_DLL @KRB5_DLL@ +!define K5SPRT_DLL @K5SPRT_DLL@ + +!define GPGERROR_DLL @GPGERROR_DLL@ +!define GNUTLS_DIR @GNUTLS_DIR@ + +!define GCC_DLL @GCC_DLL@ + +!define ZLIB_DIR @ZLIB_DIR@ + +!define LUA_DIR @LUA_DIR@ + +!define SMI_DIR @SMI_DIR@ + +!define GEOIP_DIR @GEOIP_DIR@ + +!define WINSPARKLE_DIR @WINSPARKLE_DIR@ + +!define HHC_DIR "@HHC_DIR@" -- cgit v1.2.3