From b984e6e29d21427277da85e8634e25117c836703 Mon Sep 17 00:00:00 2001 From: Gerald Combs Date: Wed, 31 Aug 2022 17:59:36 -0700 Subject: [PATCH] CMake: Split more Wireshark/Logray variables. Split our macOS application bundle variables into Wireshark- and Logray-specific ones. Make sure Logray's PkgInfo and CFBundleSignature match. --- CMakeLists.txt | 80 +++++++++++++++++++++------- doc/CMakeLists.txt | 8 ++- packaging/macosx/LograyInfo.plist.in | 2 +- 3 files changed, 68 insertions(+), 22 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 566d95d5d3..46613006af 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2535,47 +2535,89 @@ if(ENABLE_APPLICATION_BUNDLE) "-Wl,-headerpad_max_install_names -Wl,-search_paths_first ${CMAKE_EXE_LINKER_FLAGS}" ) - # Add files to the app bundle + # Add files to the Wireshark application bundle # Wireshark.app/Contents - file(WRITE ${CMAKE_BINARY_DIR}/packaging/macosx/PkgInfo "APPLWshk\n") - set(BUNDLE_CONTENTS_FILES - ${CMAKE_BINARY_DIR}/packaging/macosx/PkgInfo + file(WRITE ${CMAKE_BINARY_DIR}/packaging/macosx/wireshark/PkgInfo "APPLWshk\n") + set(WIRESHARK_BUNDLE_CONTENTS_FILES + ${CMAKE_BINARY_DIR}/packaging/macosx/wireshark/PkgInfo ) - set_source_files_properties(${BUNDLE_CONTENTS_FILES} PROPERTIES + set_source_files_properties(${WIRESHARK_BUNDLE_CONTENTS_FILES} PROPERTIES MACOSX_PACKAGE_LOCATION . ) # Wireshark.app/Contents/Resources - set(BUNDLE_RESOURCE_FILES + set(WIRESHARK_BUNDLE_RESOURCE_FILES ${CMAKE_SOURCE_DIR}/packaging/macosx/Wireshark.icns ${CMAKE_SOURCE_DIR}/packaging/macosx/Wiresharkdoc.icns ) - set_source_files_properties(${BUNDLE_RESOURCE_FILES} PROPERTIES + set_source_files_properties(${WIRESHARK_BUNDLE_RESOURCE_FILES} PROPERTIES MACOSX_PACKAGE_LOCATION Resources ) # Wireshark.app/Contents/Resources/share/man/man1 - set_source_files_properties(${BUNDLE_RESOURCE_SHARE_MAN1_FILES} PROPERTIES + set_source_files_properties(${WIRESHARK_BUNDLE_RESOURCE_SHARE_MAN1_FILES} PROPERTIES MACOSX_PACKAGE_LOCATION Resources/share/man/man1 GENERATED 1 ) # Wireshark.app/Contents/Resources/share/man/man4 - set_source_files_properties(${BUNDLE_RESOURCE_SHARE_MAN4_FILES} PROPERTIES + set_source_files_properties(${WIRESHARK_BUNDLE_RESOURCE_SHARE_MAN4_FILES} PROPERTIES MACOSX_PACKAGE_LOCATION Resources/share/man/man4 GENERATED 1 ) # INSTALL_FILES and INSTALL_DIRS are handled by copy_data_files - set(EXTRA_BUNDLE_FILES - ${BUNDLE_CONTENTS_FILES} - ${BUNDLE_RESOURCE_FILES} - ${BUNDLE_RESOURCE_SHARE_MAN1_FILES} - ${BUNDLE_RESOURCE_SHARE_MAN4_FILES} + set(EXTRA_WIRESHARK_BUNDLE_FILES + ${WIRESHARK_BUNDLE_CONTENTS_FILES} + ${WIRESHARK_BUNDLE_RESOURCE_FILES} + ${WIRESHARK_BUNDLE_RESOURCE_SHARE_MAN1_FILES} + ${WIRESHARK_BUNDLE_RESOURCE_SHARE_MAN4_FILES} ) + + # Add files to the Logray application bundle + # Logray.app/Contents + file(WRITE ${CMAKE_BINARY_DIR}/packaging/macosx/logray/PkgInfo "APPLLgry\n") + set(LOGRAY_BUNDLE_CONTENTS_FILES + ${CMAKE_BINARY_DIR}/packaging/macosx/logray/PkgInfo + ) + set_source_files_properties(${LOGRAY_BUNDLE_CONTENTS_FILES} PROPERTIES + MACOSX_PACKAGE_LOCATION . + ) + + # Logray.app/Contents/Resources + set(LOGRAY_BUNDLE_RESOURCE_FILES + ${CMAKE_SOURCE_DIR}/packaging/macosx/Wireshark.icns + ${CMAKE_SOURCE_DIR}/packaging/macosx/Wiresharkdoc.icns + ) + set_source_files_properties(${LOGRAY_BUNDLE_RESOURCE_FILES} PROPERTIES + MACOSX_PACKAGE_LOCATION Resources + ) + + # Logray.app/Contents/Resources/share/man/man1 + set_source_files_properties(${LOGRAY_BUNDLE_RESOURCE_SHARE_MAN1_FILES} PROPERTIES + MACOSX_PACKAGE_LOCATION Resources/share/man/man1 + GENERATED 1 + ) + + # Logray.app/Contents/Resources/share/man/man4 + set_source_files_properties(${LOGRAY_BUNDLE_RESOURCE_SHARE_MAN4_FILES} PROPERTIES + MACOSX_PACKAGE_LOCATION Resources/share/man/man4 + GENERATED 1 + ) + + # INSTALL_FILES and INSTALL_DIRS are handled by copy_data_files + + set(EXTRA_LOGRAY_BUNDLE_FILES + ${LOGRAY_BUNDLE_CONTENTS_FILES} + ${LOGRAY_BUNDLE_RESOURCE_FILES} + ${LOGRAY_BUNDLE_RESOURCE_SHARE_MAN1_FILES} + ${LOGRAY_BUNDLE_RESOURCE_SHARE_MAN4_FILES} + ) + else() - set(EXTRA_BUNDLE_FILES) + set(EXTRA_WIRESHARK_BUNDLE_FILES) + set(EXTRA_LOGRAY_BUNDLE_FILES) endif() if(BUILD_wireshark AND QT_FOUND) @@ -2600,7 +2642,7 @@ if(BUILD_wireshark AND QT_FOUND) ${MINIZIP_LIBRARIES} ) - add_executable(wireshark WIN32 MACOSX_BUNDLE ${wireshark_FILES} ${EXTRA_BUNDLE_FILES}) + add_executable(wireshark WIN32 MACOSX_BUNDLE ${wireshark_FILES} ${EXTRA_WIRESHARK_BUNDLE_FILES}) if(WIN32) set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT wireshark) endif() @@ -2623,7 +2665,7 @@ if(BUILD_wireshark AND QT_FOUND) if(ENABLE_APPLICATION_BUNDLE) if(ASCIIDOCTOR_FOUND) # Make sure to generate files referenced by - # BUNDLE_RESOURCE_SHARE_MAN1_FILES + # WIRESHARK_BUNDLE_RESOURCE_SHARE_MAN1_FILES add_dependencies(wireshark manpages) endif() set_target_properties( @@ -2703,7 +2745,7 @@ if(BUILD_logray AND QT_FOUND) ${MINIZIP_LIBRARIES} ) - add_executable(logray WIN32 MACOSX_BUNDLE ${logray_FILES} ${EXTRA_BUNDLE_FILES}) + add_executable(logray WIN32 MACOSX_BUNDLE ${logray_FILES} ${EXTRA_LOGRAY_BUNDLE_FILES}) if(WIN32 AND NOT BUILD_wireshark) set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT logray) endif() @@ -2726,7 +2768,7 @@ if(BUILD_logray AND QT_FOUND) if(ENABLE_APPLICATION_BUNDLE) if(ASCIIDOCTOR_FOUND) # Make sure to generate files referenced by - # BUNDLE_RESOURCE_SHARE_MAN1_FILES + # LOGRAY_BUNDLE_RESOURCE_SHARE_MAN1_FILES add_dependencies(logray manpages) endif() set_target_properties( diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt index 413b0b23cc..82b13f31f0 100644 --- a/doc/CMakeLists.txt +++ b/doc/CMakeLists.txt @@ -87,8 +87,12 @@ if (BUILD_xxx2deb) ADD_MAN_PAGE(idl2deb 1) endif() -set(BUNDLE_RESOURCE_SHARE_MAN1_FILES ${MAN1_INSTALL_FILES} PARENT_SCOPE) -set(BUNDLE_RESOURCE_SHARE_MAN4_FILES ${MAN4_INSTALL_FILES} PARENT_SCOPE) +set(WIRESHARK_BUNDLE_RESOURCE_SHARE_MAN1_FILES ${MAN1_INSTALL_FILES} PARENT_SCOPE) +set(WIRESHARK_BUNDLE_RESOURCE_SHARE_MAN4_FILES ${MAN4_INSTALL_FILES} PARENT_SCOPE) +# XXX We need a Logray-specific man page list, which might overlap with Wireshark's. +# Just install everything for now. +set(LOGRAY_BUNDLE_RESOURCE_SHARE_MAN1_FILES ${WIRESHARK_BUNDLE_RESOURCE_SHARE_MAN1_FILES} PARENT_SCOPE) +set(LOGRAY_BUNDLE_RESOURCE_SHARE_MAN4_FILES ${WIRESHARK_BUNDLE_RESOURCE_SHARE_MAN4_FILES} PARENT_SCOPE) set(MAN_INCLUDES diagnostic-options.adoc) diff --git a/packaging/macosx/LograyInfo.plist.in b/packaging/macosx/LograyInfo.plist.in index 9e72fd76fd..50c9a5ddad 100644 --- a/packaging/macosx/LograyInfo.plist.in +++ b/packaging/macosx/LograyInfo.plist.in @@ -36,7 +36,7 @@ CFBundleShortVersionString @LOG_PROJECT_VERSION@ CFBundleSignature - Lshk + Lgry CFBundleVersion @LOG_PROJECT_VERSION@ NSHumanReadableCopyright