Don't fail in CMake on Windows if you've disabled building Wireshark.
It's possible to do a *build* on Windows without the Wireshark app being built; however, the *installers* can't currently be built. If we have NSIS or WiX, and Wireshark isn't being built, report a warning, and don't have targets for building the installers. Change-Id: I2cc9c1f6ba375dbcb6d5b7520d2fa33ad97ba9fe Reviewed-on: https://code.wireshark.org/review/32061 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
This commit is contained in:
parent
ba1ef0ec3d
commit
29ac5a9e61
|
@ -171,63 +171,71 @@ set(NSIS_OPTIONS
|
||||||
# installers. This means that uninstall.exe must be built separately AND
|
# installers. This means that uninstall.exe must be built separately AND
|
||||||
# that building the installer itself won't overwrite uninstall.exe
|
# that building the installer itself won't overwrite uninstall.exe
|
||||||
macro( ADD_NSIS_UNINSTALLER_TARGET )
|
macro( ADD_NSIS_UNINSTALLER_TARGET )
|
||||||
set (_nsis_source_dir ${CMAKE_SOURCE_DIR}/packaging/nsis )
|
#
|
||||||
set (_nsis_binary_dir ${CMAKE_BINARY_DIR}/packaging/nsis )
|
# XXX - if we're not building Wireshark, we can't build
|
||||||
|
# anything, so there's nothing to uninstall.
|
||||||
|
#
|
||||||
|
if(BUILD_wireshark)
|
||||||
|
set (_nsis_source_dir ${CMAKE_SOURCE_DIR}/packaging/nsis )
|
||||||
|
set (_nsis_binary_dir ${CMAKE_BINARY_DIR}/packaging/nsis )
|
||||||
|
|
||||||
add_custom_command(OUTPUT ${DATAFILE_DIR}/uninstall.exe
|
add_custom_command(OUTPUT ${DATAFILE_DIR}/uninstall.exe
|
||||||
DEPENDS ${_nsis_source_dir}/uninstall.nsi
|
DEPENDS ${_nsis_source_dir}/uninstall.nsi
|
||||||
${_nsis_source_dir}/common.nsh
|
${_nsis_source_dir}/common.nsh
|
||||||
COMMAND ${MAKENSIS_EXECUTABLE} ${NSIS_OPTIONS}
|
COMMAND ${MAKENSIS_EXECUTABLE} ${NSIS_OPTIONS}
|
||||||
uninstall.nsi
|
uninstall.nsi
|
||||||
COMMAND ${DATAFILE_DIR}/uninstall_installer.exe
|
COMMAND ${DATAFILE_DIR}/uninstall_installer.exe
|
||||||
COMMAND ${CMAKE_COMMAND} -E remove ${DATAFILE_DIR}/uninstall_installer.exe
|
COMMAND ${CMAKE_COMMAND} -E remove ${DATAFILE_DIR}/uninstall_installer.exe
|
||||||
WORKING_DIRECTORY ${_nsis_source_dir}
|
WORKING_DIRECTORY ${_nsis_source_dir}
|
||||||
)
|
)
|
||||||
|
else()
|
||||||
|
message(WARNING "The NSIS installer cannot be built if the Wireshark program isn't built.")
|
||||||
|
endif()
|
||||||
endmacro( ADD_NSIS_UNINSTALLER_TARGET )
|
endmacro( ADD_NSIS_UNINSTALLER_TARGET )
|
||||||
|
|
||||||
macro( ADD_NSIS_PACKAGE_TARGET )
|
macro( ADD_NSIS_PACKAGE_TARGET )
|
||||||
#set (_nsis_package ${CMAKE_BINARY_DIR}/packaging/nsis/Wireshark-$(WIRESHARK_TARGET_PLATFORM)-$(VERSION).exe)
|
|
||||||
|
|
||||||
# qt-dll-manifest.nsh. Created using Wireshark.exe.
|
|
||||||
#
|
#
|
||||||
# XXX - if we're not building Wireshark, we can't build this
|
# XXX - if we're not building Wireshark, we can't build the
|
||||||
# manifest. On the other hand, if we're not building
|
# manifest below. On the other hand, if we're not building
|
||||||
# Wireshark, we have no need to include Qt in the installer,
|
# Wireshark, we have no need to include Qt in the installer,
|
||||||
# so it's not clear we need this manifest.
|
# so it's not clear we need this manifest.
|
||||||
#
|
#
|
||||||
# This should probably be fixed, so that people can produce
|
# This should probably be fixed, so that people can produce
|
||||||
# command-line-only installer packages.
|
# command-line-only installer packages.
|
||||||
if(NOT BUILD_wireshark)
|
if(BUILD_wireshark)
|
||||||
message(FATAL_ERROR "The NSIS installer cannot be built if the Wireshark program isn't built.")
|
#set (_nsis_package ${CMAKE_BINARY_DIR}/packaging/nsis/Wireshark-$(WIRESHARK_TARGET_PLATFORM)-$(VERSION).exe)
|
||||||
|
|
||||||
|
# qt-dll-manifest.nsh. Created using Wireshark.exe.
|
||||||
|
add_custom_command(OUTPUT ${_nsis_binary_dir}/qt-dll-manifest.nsh
|
||||||
|
COMMAND set "PATH=${QT_BIN_PATH};%PATH%"
|
||||||
|
COMMAND ${POWERSHELL_COMMAND} "${_nsis_source_dir}/windeployqt-to-nsis.ps1"
|
||||||
|
-Executable $<TARGET_FILE:wireshark>
|
||||||
|
-FilePath ${_nsis_binary_dir}/qt-dll-manifest.nsh
|
||||||
|
)
|
||||||
|
|
||||||
|
# Build NSIS package dependencies. We build the package in
|
||||||
|
# two stages so that nsis_package below doesn't trigger
|
||||||
|
# any dependencies that might clobber any signed executables.
|
||||||
|
add_custom_target(nsis_package_prep
|
||||||
|
DEPENDS
|
||||||
|
${NSIS_FILES}
|
||||||
|
copy_data_files
|
||||||
|
user_guide_chm
|
||||||
|
faq_html
|
||||||
|
${DATAFILE_DIR}/uninstall.exe
|
||||||
|
)
|
||||||
|
set_target_properties(nsis_package_prep PROPERTIES FOLDER "Packaging")
|
||||||
|
|
||||||
|
# Dump the installer into
|
||||||
|
# ${CMAKE_CURRENT_SOURCE_DIR}/packaging/nsis
|
||||||
|
# Note that executables and DLLs *must* be built separately
|
||||||
|
add_custom_target(nsis_package
|
||||||
|
COMMAND ${MAKENSIS_EXECUTABLE} ${NSIS_OPTIONS}
|
||||||
|
wireshark.nsi
|
||||||
|
WORKING_DIRECTORY ${_nsis_source_dir}
|
||||||
|
)
|
||||||
|
set_target_properties(nsis_package PROPERTIES FOLDER "Packaging")
|
||||||
endif()
|
endif()
|
||||||
add_custom_command(OUTPUT ${_nsis_binary_dir}/qt-dll-manifest.nsh
|
|
||||||
COMMAND set "PATH=${QT_BIN_PATH};%PATH%"
|
|
||||||
COMMAND ${POWERSHELL_COMMAND} "${_nsis_source_dir}/windeployqt-to-nsis.ps1"
|
|
||||||
-Executable $<TARGET_FILE:wireshark>
|
|
||||||
-FilePath ${_nsis_binary_dir}/qt-dll-manifest.nsh
|
|
||||||
)
|
|
||||||
|
|
||||||
# Build NSIS package dependencies. We build the package in two stages
|
|
||||||
# so that nsis_package below doesn't trigger any dependencies that
|
|
||||||
# might clobber any signed executables.
|
|
||||||
add_custom_target(nsis_package_prep
|
|
||||||
DEPENDS
|
|
||||||
${NSIS_FILES}
|
|
||||||
copy_data_files
|
|
||||||
user_guide_chm
|
|
||||||
faq_html
|
|
||||||
${DATAFILE_DIR}/uninstall.exe
|
|
||||||
)
|
|
||||||
set_target_properties(nsis_package_prep PROPERTIES FOLDER "Packaging")
|
|
||||||
|
|
||||||
# Dump the installer into ${CMAKE_CURRENT_SOURCE_DIR}/packaging/nsis
|
|
||||||
# Note that executables and DLLs *must* be built separately
|
|
||||||
add_custom_target(nsis_package
|
|
||||||
COMMAND ${MAKENSIS_EXECUTABLE} ${NSIS_OPTIONS}
|
|
||||||
wireshark.nsi
|
|
||||||
WORKING_DIRECTORY ${_nsis_source_dir}
|
|
||||||
)
|
|
||||||
set_target_properties(nsis_package PROPERTIES FOLDER "Packaging")
|
|
||||||
endmacro( ADD_NSIS_PACKAGE_TARGET )
|
endmacro( ADD_NSIS_PACKAGE_TARGET )
|
||||||
|
|
||||||
set(CLEAN_FILES
|
set(CLEAN_FILES
|
||||||
|
|
|
@ -217,78 +217,84 @@ set(WIX_HEAT_FLAGS
|
||||||
)
|
)
|
||||||
|
|
||||||
macro( ADD_WIX_PACKAGE_TARGET )
|
macro( ADD_WIX_PACKAGE_TARGET )
|
||||||
set (_wix_source_dir ${CMAKE_SOURCE_DIR}/packaging/wix )
|
|
||||||
set (_wix_binary_dir ${CMAKE_BINARY_DIR}/packaging/wix )
|
|
||||||
|
|
||||||
# QtDependentComponents.wxs. Created using Wireshark.exe.
|
|
||||||
#
|
#
|
||||||
# XXX - if we're not building Wireshark, we can't build this
|
# XXX - if we're not building Wireshark, we can't build
|
||||||
# manifest. On the other hand, if we're not building
|
# QtDependentComponents.wxs.. On the other hand, if we're
|
||||||
# Wireshark, we have no need to include Qt in the installer,
|
# not building Wireshark, we have no need to include Qt
|
||||||
# so it's not clear we need this manifest.
|
# in the installer, so it's not clear we need that file.
|
||||||
#
|
#
|
||||||
# This should probably be fixed, so that people can produce
|
# This should probably be fixed, so that people can produce
|
||||||
# command-line-only installer packages.
|
# command-line-only installer packages.
|
||||||
if(NOT BUILD_wireshark)
|
if(BUILD_wireshark)
|
||||||
message(FATAL_ERROR "The WiX installer cannot be built if the Wireshark program isn't built.")
|
set (_wix_source_dir ${CMAKE_SOURCE_DIR}/packaging/wix )
|
||||||
|
set (_wix_binary_dir ${CMAKE_BINARY_DIR}/packaging/wix )
|
||||||
|
|
||||||
|
# QtDependentComponents.wxs. Created using Wireshark.exe.
|
||||||
|
add_custom_command(OUTPUT ${_wix_binary_dir}/QtDependentComponents.wxs
|
||||||
|
COMMAND set "PATH=${QT_BIN_PATH};%PATH%"
|
||||||
|
COMMAND ${POWERSHELL_COMMAND} "${_wix_source_dir}/windeployqt-to-wix.ps1"
|
||||||
|
-Executable $<TARGET_FILE:wireshark>
|
||||||
|
-FilePath ${_wix_binary_dir}/QtDependentComponents.wxs
|
||||||
|
)
|
||||||
|
|
||||||
|
# SNMPMibs.wxs. Collects all MIBs in "output" snmp/mibs
|
||||||
|
# directory. Generated with heat.exe
|
||||||
|
add_custom_command(OUTPUT ${_wix_binary_dir}/SNMPMibs.wxs
|
||||||
|
COMMAND ${WIX_HEAT_EXECUTABLE} dir ${ARCHIVE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/snmp/mibs
|
||||||
|
${WIX_HEAT_FLAGS} -cg CG.Plugins.SNMP -dr dirSnmpMibs -var var.SnmpMibDir
|
||||||
|
-out ${_wix_binary_dir}/SNMPMibs.wxs
|
||||||
|
)
|
||||||
|
|
||||||
|
# RadiusDict.wxs. Collects all Radius dictionary files in
|
||||||
|
# "output" radius directory. Generated with heat.exe
|
||||||
|
add_custom_command(OUTPUT ${_wix_binary_dir}/RadiusDict.wxs
|
||||||
|
COMMAND ${WIX_HEAT_EXECUTABLE} dir ${ARCHIVE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/radius
|
||||||
|
${WIX_HEAT_FLAGS} -cg CG.RadiusDict -dr dirRadius -var var.RadiusDictDir
|
||||||
|
-out ${_wix_binary_dir}/RadiusDict.wxs
|
||||||
|
)
|
||||||
|
|
||||||
|
# Diameter.wxs. Collects all Diameter XML dictionary files
|
||||||
|
# in "output" diameter directory. Generated with heat.exe
|
||||||
|
add_custom_command(OUTPUT ${_wix_binary_dir}/Diameter.wxs
|
||||||
|
COMMAND ${WIX_HEAT_EXECUTABLE} dir ${ARCHIVE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/diameter
|
||||||
|
${WIX_HEAT_FLAGS} -cg CG.Diameter -dr dirDiameter -var var.DiameterDir
|
||||||
|
-out ${_wix_binary_dir}/Diameter.wxs
|
||||||
|
)
|
||||||
|
|
||||||
|
# QtTranslation.wxs. Collects all Qt translation files in
|
||||||
|
# "output" translations directory. Generated with heat.exe
|
||||||
|
add_custom_command(OUTPUT ${_wix_binary_dir}/QtTranslation.wxs
|
||||||
|
COMMAND ${WIX_HEAT_EXECUTABLE} dir ${ARCHIVE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/translations
|
||||||
|
${WIX_HEAT_FLAGS} -cg CG.QtTranslations -dr dirTranslations -var var.QtTranslationDir
|
||||||
|
-out ${_wix_binary_dir}/QtTranslation.wxs
|
||||||
|
)
|
||||||
|
|
||||||
|
# Build WiX package dependencies. We build the package in
|
||||||
|
# two stages so that wix_package below doesn't trigger any
|
||||||
|
# dependencies that might clobber any signed executables.
|
||||||
|
add_custom_target(wix_package_prep
|
||||||
|
DEPENDS
|
||||||
|
${WIX_FILES}
|
||||||
|
copy_data_files
|
||||||
|
user_guide_chm
|
||||||
|
faq_html
|
||||||
|
)
|
||||||
|
set_target_properties(wix_package_prep PROPERTIES FOLDER "Packaging")
|
||||||
|
|
||||||
|
# Dump the installer into
|
||||||
|
# ${CMAKE_CURRENT_SOURCE_DIR}/packaging/wix
|
||||||
|
# Note that executables and DLLs *must* be built separately
|
||||||
|
add_custom_target(wix_package
|
||||||
|
COMMAND ${WIX_CANDLE_EXECUTABLE} ${WIX_CANDLE_DEFINES} ${WIX_SOURCE_FILES}
|
||||||
|
WORKING_DIRECTORY ${_wix_source_dir}
|
||||||
|
|
||||||
|
COMMAND ${WIX_LIGHT_EXECUTABLE} ${WIX_LIGHT_DEFINES} ${WIX_OUT_FILES}
|
||||||
|
WORKING_DIRECTORY ${_wix_binary_dir}
|
||||||
|
)
|
||||||
|
set_target_properties(wix_package PROPERTIES FOLDER "Packaging")
|
||||||
|
else()
|
||||||
|
message(WARNING "The WiX installer cannot be built if the Wireshark program isn't built.")
|
||||||
endif()
|
endif()
|
||||||
add_custom_command(OUTPUT ${_wix_binary_dir}/QtDependentComponents.wxs
|
|
||||||
COMMAND set "PATH=${QT_BIN_PATH};%PATH%"
|
|
||||||
COMMAND ${POWERSHELL_COMMAND} "${_wix_source_dir}/windeployqt-to-wix.ps1"
|
|
||||||
-Executable $<TARGET_FILE:wireshark>
|
|
||||||
-FilePath ${_wix_binary_dir}/QtDependentComponents.wxs
|
|
||||||
)
|
|
||||||
|
|
||||||
# SNMPMibs.wxs. Collects all MIBs in "output" snmp/mibs directory. Generated with heat.exe
|
|
||||||
add_custom_command(OUTPUT ${_wix_binary_dir}/SNMPMibs.wxs
|
|
||||||
COMMAND ${WIX_HEAT_EXECUTABLE} dir ${ARCHIVE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/snmp/mibs
|
|
||||||
${WIX_HEAT_FLAGS} -cg CG.Plugins.SNMP -dr dirSnmpMibs -var var.SnmpMibDir
|
|
||||||
-out ${_wix_binary_dir}/SNMPMibs.wxs
|
|
||||||
)
|
|
||||||
|
|
||||||
# RadiusDict.wxs. Collects all Radius dictionary files in "output" radius directory. Generated with heat.exe
|
|
||||||
add_custom_command(OUTPUT ${_wix_binary_dir}/RadiusDict.wxs
|
|
||||||
COMMAND ${WIX_HEAT_EXECUTABLE} dir ${ARCHIVE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/radius
|
|
||||||
${WIX_HEAT_FLAGS} -cg CG.RadiusDict -dr dirRadius -var var.RadiusDictDir
|
|
||||||
-out ${_wix_binary_dir}/RadiusDict.wxs
|
|
||||||
)
|
|
||||||
|
|
||||||
# Diameter.wxs. Collects all Diameter XML dictionary files in "output" diameter directory. Generated with heat.exe
|
|
||||||
add_custom_command(OUTPUT ${_wix_binary_dir}/Diameter.wxs
|
|
||||||
COMMAND ${WIX_HEAT_EXECUTABLE} dir ${ARCHIVE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/diameter
|
|
||||||
${WIX_HEAT_FLAGS} -cg CG.Diameter -dr dirDiameter -var var.DiameterDir
|
|
||||||
-out ${_wix_binary_dir}/Diameter.wxs
|
|
||||||
)
|
|
||||||
|
|
||||||
# QtTranslation.wxs. Collects all Qt translation files in "output" translations directory. Generated with heat.exe
|
|
||||||
add_custom_command(OUTPUT ${_wix_binary_dir}/QtTranslation.wxs
|
|
||||||
COMMAND ${WIX_HEAT_EXECUTABLE} dir ${ARCHIVE_OUTPUT_PATH}/${CMAKE_BUILD_TYPE}/translations
|
|
||||||
${WIX_HEAT_FLAGS} -cg CG.QtTranslations -dr dirTranslations -var var.QtTranslationDir
|
|
||||||
-out ${_wix_binary_dir}/QtTranslation.wxs
|
|
||||||
)
|
|
||||||
|
|
||||||
# Build WiX package dependencies. We build the package in two stages
|
|
||||||
# so that wix_package below doesn't trigger any dependencies that
|
|
||||||
# might clobber any signed executables.
|
|
||||||
add_custom_target(wix_package_prep
|
|
||||||
DEPENDS
|
|
||||||
${WIX_FILES}
|
|
||||||
copy_data_files
|
|
||||||
user_guide_chm
|
|
||||||
faq_html
|
|
||||||
)
|
|
||||||
set_target_properties(wix_package_prep PROPERTIES FOLDER "Packaging")
|
|
||||||
|
|
||||||
# Dump the installer into ${CMAKE_CURRENT_SOURCE_DIR}/packaging/wix
|
|
||||||
# Note that executables and DLLs *must* be built separately
|
|
||||||
add_custom_target(wix_package
|
|
||||||
COMMAND ${WIX_CANDLE_EXECUTABLE} ${WIX_CANDLE_DEFINES} ${WIX_SOURCE_FILES}
|
|
||||||
WORKING_DIRECTORY ${_wix_source_dir}
|
|
||||||
|
|
||||||
COMMAND ${WIX_LIGHT_EXECUTABLE} ${WIX_LIGHT_DEFINES} ${WIX_OUT_FILES}
|
|
||||||
WORKING_DIRECTORY ${_wix_binary_dir}
|
|
||||||
)
|
|
||||||
set_target_properties(wix_package PROPERTIES FOLDER "Packaging")
|
|
||||||
endmacro( ADD_WIX_PACKAGE_TARGET )
|
endmacro( ADD_WIX_PACKAGE_TARGET )
|
||||||
|
|
||||||
set(CLEAN_FILES
|
set(CLEAN_FILES
|
||||||
|
|
Loading…
Reference in New Issue