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 <gerald@wireshark.org>
This commit is contained in:
Gerald Combs 2015-01-05 12:53:46 -08:00
parent a70929c381
commit ea46a44f67
4 changed files with 193 additions and 88 deletions

View File

@ -4,6 +4,7 @@ MAINTAINERCLEANFILES = \
EXTRA_DIST = \
AdditionalTasksPage.ini \
common.nsh \
config.nsh.in \
Custom.nmake \
custom_diameter_xmls.txt \
custom_mibs.txt \

View File

@ -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) \
-e s/@NEED_XML_DLL@/$(NEED_XML_DLL)/ \
-e s/@XML_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) \
!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

View File

@ -3,6 +3,8 @@
; Name and version information
; ============================================================================
!include "config.nsh"
!if ${WIRESHARK_TARGET_PLATFORM} == "win32"
!define BITS 32
!else

View File

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