diff --git a/CMakeLists.txt b/CMakeLists.txt index 9f1044cd5..2ef93bf0c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -117,7 +117,7 @@ if(SWIFT_USE_CRASHPAD) endif() if(APPLE) - set(CMAKE_INSTALL_RPATH @loader_path/../lib) + set(CMAKE_INSTALL_RPATH @loader_path/../../../../lib) elseif(UNIX) set(CMAKE_INSTALL_RPATH \$ORIGIN/../lib) endif() diff --git a/scripts/build.py b/scripts/build.py index e3f2a9d07..594271cf4 100644 --- a/scripts/build.py +++ b/scripts/build.py @@ -384,11 +384,14 @@ class MacOSBuilder(Builder): return True def _strip_debug(self): + bundle_files = [ + "bin/swiftcore.app/Contents/MacOS/swiftcore", + "bin/swiftdata.app/Contents/MacOS/swiftdata", + "bin/swiftguistd.app/Contents/MacOS/swiftguistd", + "bin/swiftlauncher.app/Contents/MacOS/swiftlauncher", + ] + files = [ - "bin/swiftcore", - "bin/swiftdata", - "bin/swiftguistd", - "bin/swiftlauncher", "lib/libcore.dylib", "lib/libgui.dylib", "lib/libinput.dylib", @@ -405,6 +408,11 @@ class MacOSBuilder(Builder): "xswiftbus/64/mac.xpl", ] dist_path = path.join(self._get_swift_source_path(), "dist") + + # Put output of bundle files directly in bin folder + for file in bundle_files: + subprocess.check_call(["dsymutil", path.join(dist_path, file), "-o", path.join(dist_path, "bin", file.split("/")[-1] + ".dSYM")], env=dict(os.environ)) + for file in files: subprocess.check_call(["dsymutil", path.join(dist_path, file)], env=dict(os.environ)) diff --git a/src/swiftcore/CMakeLists.txt b/src/swiftcore/CMakeLists.txt index 0d4db1fc5..8460ab7a6 100644 --- a/src/swiftcore/CMakeLists.txt +++ b/src/swiftcore/CMakeLists.txt @@ -22,10 +22,22 @@ target_link_libraries(swiftcore core ) +if(APPLE) + set_target_properties(swiftcore PROPERTIES MACOSX_BUNDLE TRUE) + set_target_properties(swiftcore PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist) + set(RESOURCE_FILES swiftcore.icns qt.conf) + target_sources(swiftcore PRIVATE ${RESOURCE_FILES}) + set_target_properties(swiftcore PROPERTIES RESOURCE "${RESOURCE_FILES}") +endif() + add_dependencies(swiftcore resources) if(WIN32) add_dependencies(swiftcore copy_externals_to_build_dir) endif() -install(TARGETS swiftcore) +if(APPLE) + install(TARGETS swiftcore BUNDLE DESTINATION bin) +else() + install(TARGETS swiftcore) +endif() diff --git a/src/swiftcore/Info.plist b/src/swiftcore/Info.plist index b3329e47a..1da8183a3 100644 --- a/src/swiftcore/Info.plist +++ b/src/swiftcore/Info.plist @@ -7,19 +7,19 @@ CFBundleDisplayName swift core CFBundleExecutable - ${EXECUTABLE_NAME} + swiftcore CFBundleGetInfoString swift project - free and open source pilot client CFBundleIconFile - ${ASSETCATALOG_COMPILER_APPICON_NAME} + swiftcore.icns CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} + org.swift-project.swiftcore CFBundlePackageType APPL CFBundleSignature - ${QMAKE_PKGINFO_TYPEINFO} + ???? LSMinimumSystemVersion - ${MACOSX_DEPLOYMENT_TARGET} + 10.13 NSPrincipalClass NSApplication NSSupportsAutomaticGraphicsSwitching diff --git a/src/swiftdata/CMakeLists.txt b/src/swiftdata/CMakeLists.txt index 90b31c1ad..1dc6536e9 100644 --- a/src/swiftdata/CMakeLists.txt +++ b/src/swiftdata/CMakeLists.txt @@ -23,10 +23,22 @@ target_link_libraries(swiftdata core ) +if(APPLE) + set_target_properties(swiftdata PROPERTIES MACOSX_BUNDLE TRUE) + set_target_properties(swiftdata PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist) + set(RESOURCE_FILES swiftdata.icns qt.conf) + target_sources(swiftdata PRIVATE ${RESOURCE_FILES}) + set_target_properties(swiftdata PROPERTIES RESOURCE "${RESOURCE_FILES}") +endif() + add_dependencies(swiftdata resources) if(WIN32) add_dependencies(swiftdata copy_externals_to_build_dir) endif() -install(TARGETS swiftdata) +if(APPLE) + install(TARGETS swiftdata BUNDLE DESTINATION bin) +else() + install(TARGETS swiftdata) +endif() diff --git a/src/swiftdata/Info.plist b/src/swiftdata/Info.plist index ec28bef06..e9a96233f 100644 --- a/src/swiftdata/Info.plist +++ b/src/swiftdata/Info.plist @@ -7,19 +7,19 @@ CFBundleDisplayName swift data CFBundleExecutable - ${EXECUTABLE_NAME} + swiftdata CFBundleGetInfoString swift project - free and open source pilot client CFBundleIconFile - ${ASSETCATALOG_COMPILER_APPICON_NAME} + swiftdata.icns CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} + org.swift-project.swiftdata CFBundlePackageType APPL CFBundleSignature - ${QMAKE_PKGINFO_TYPEINFO} + ???? LSMinimumSystemVersion - ${MACOSX_DEPLOYMENT_TARGET} + 10.13 NSPrincipalClass NSApplication NSSupportsAutomaticGraphicsSwitching diff --git a/src/swiftguistandard/CMakeLists.txt b/src/swiftguistandard/CMakeLists.txt index 8f10f6613..1c746d7dd 100644 --- a/src/swiftguistandard/CMakeLists.txt +++ b/src/swiftguistandard/CMakeLists.txt @@ -28,10 +28,22 @@ target_link_libraries(swiftguistd sound ) +if(APPLE) + set_target_properties(swiftguistd PROPERTIES MACOSX_BUNDLE TRUE) + set_target_properties(swiftguistd PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist) + set(RESOURCE_FILES swift.icns qt.conf) + target_sources(swiftguistd PRIVATE ${RESOURCE_FILES}) + set_target_properties(swiftguistd PROPERTIES RESOURCE "${RESOURCE_FILES}") +endif() + add_dependencies(swiftguistd resources) if(WIN32) add_dependencies(swiftguistd copy_externals_to_build_dir) endif() -install(TARGETS swiftguistd) +if(APPLE) + install(TARGETS swiftguistd BUNDLE DESTINATION bin) +else() + install(TARGETS swiftguistd) +endif() diff --git a/src/swiftguistandard/Info.plist b/src/swiftguistandard/Info.plist index f973058e8..97ab00511 100644 --- a/src/swiftguistandard/Info.plist +++ b/src/swiftguistandard/Info.plist @@ -7,19 +7,19 @@ CFBundleDisplayName swift gui CFBundleExecutable - ${EXECUTABLE_NAME} + swiftguistd CFBundleGetInfoString swift project - free and open source pilot client CFBundleIconFile - ${ASSETCATALOG_COMPILER_APPICON_NAME} + swift.icns CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} + org.swift-project.swiftguistd CFBundlePackageType APPL CFBundleSignature - ${QMAKE_PKGINFO_TYPEINFO} + ???? LSMinimumSystemVersion - ${MACOSX_DEPLOYMENT_TARGET} + 10.13 NSPrincipalClass NSApplication NSSupportsAutomaticGraphicsSwitching diff --git a/src/swiftlauncher/CMakeLists.txt b/src/swiftlauncher/CMakeLists.txt index a0ed223b8..e21a7170d 100644 --- a/src/swiftlauncher/CMakeLists.txt +++ b/src/swiftlauncher/CMakeLists.txt @@ -23,10 +23,22 @@ target_link_libraries(swiftlauncher core ) +if(APPLE) + set_target_properties(swiftlauncher PROPERTIES MACOSX_BUNDLE TRUE) + set_target_properties(swiftlauncher PROPERTIES MACOSX_BUNDLE_INFO_PLIST ${CMAKE_CURRENT_SOURCE_DIR}/Info.plist) + set(RESOURCE_FILES swiftlauncher.icns qt.conf) + target_sources(swiftlauncher PRIVATE ${RESOURCE_FILES}) + set_target_properties(swiftlauncher PROPERTIES RESOURCE "${RESOURCE_FILES}") +endif() + add_dependencies(swiftlauncher resources) if(WIN32) add_dependencies(swiftlauncher copy_externals_to_build_dir) endif() -install(TARGETS swiftlauncher) +if(APPLE) + install(TARGETS swiftlauncher BUNDLE DESTINATION bin) +else() + install(TARGETS swiftlauncher) +endif() diff --git a/src/swiftlauncher/Info.plist b/src/swiftlauncher/Info.plist index 296795748..d160cf6cc 100644 --- a/src/swiftlauncher/Info.plist +++ b/src/swiftlauncher/Info.plist @@ -7,19 +7,19 @@ CFBundleDisplayName swift launcher CFBundleExecutable - ${EXECUTABLE_NAME} + swiftlauncher CFBundleGetInfoString swift project - free and open source pilot client CFBundleIconFile - ${ASSETCATALOG_COMPILER_APPICON_NAME} + swiftlauncher.icns CFBundleIdentifier - ${PRODUCT_BUNDLE_IDENTIFIER} + org.swift-project.swiftlauncher CFBundlePackageType APPL CFBundleSignature - ${QMAKE_PKGINFO_TYPEINFO} + ???? LSMinimumSystemVersion - ${MACOSX_DEPLOYMENT_TARGET} + 10.13 NSPrincipalClass NSApplication NSSupportsAutomaticGraphicsSwitching