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