@@ -151,6 +151,10 @@ elseif(PLATFORM_MACOS)
151151 )
152152
153153 function (add_macos_app TARGET_NAME SOURCE INCLUDE ASSETS )
154+ # Optional per-app overrides; fall back to the engine defaults when not provided,
155+ # so any application can supply its own icon, Info.plist and bundle identifier.
156+ cmake_parse_arguments (ARG "" "INFO_PLIST;ICON;BUNDLE_IDENTIFIER" "" ${ARGN} )
157+
154158 get_target_property (NATIVE_APP_SOURCE_DIR Diligent-NativeAppBase SOURCE_DIR)
155159
156160 set (APPLE_SOURCE
@@ -180,27 +184,40 @@ elseif(PLATFORM_MACOS)
180184 ${NATIVE_APP_SOURCE_DIR } /Apple /Source/Classes/OSX/ModeSelectionViewController.h
181185 )
182186
187+ if (ARG_ICON)
188+ set (APP_ICON_FILE ${ARG_ICON} )
189+ else ()
190+ set (APP_ICON_FILE ${NATIVE_APP_SOURCE_DIR } /Apple /Data/OSX/Images.xcassets/AppIcon.appiconset/dg.icns)
191+ endif ()
192+
183193 set (APPLE_RESOURCES
184194 ${NATIVE_APP_SOURCE_DIR } /Apple /Data/OSX/Base.lproj/Main.storyboard
185- ${NATIVE_APP_SOURCE_DIR } / Apple /Data/OSX/Images.xcassets/AppIcon.appiconset/dg.icns
195+ ${APP_ICON_FILE}
186196 ${NATIVE_APP_SOURCE_DIR } /Apple /Data/OSX/Images.xcassets/opengl-logo.png
187197 ${NATIVE_APP_SOURCE_DIR } /Apple /Data/OSX/Images.xcassets/vulkan-logo.png
188198 ${NATIVE_APP_SOURCE_DIR } /Apple /Data/OSX/Images.xcassets/metal-logo.png
189199 ${NATIVE_APP_SOURCE_DIR } /Apple /Data/OSX/Images.xcassets/webgpu-logo.png
190200 )
191201
192- set (APPLE_INFO_PLIST
193- ${NATIVE_APP_SOURCE_DIR } /Apple /Data/OSX/Info.plist
194- )
202+ if (ARG_INFO_PLIST)
203+ set (APPLE_INFO_PLIST ${ARG_INFO_PLIST} )
204+ else ()
205+ set (APPLE_INFO_PLIST ${NATIVE_APP_SOURCE_DIR } /Apple /Data/OSX/Info.plist)
206+ endif ()
195207
196208 set (APPLE_INCLUDE_DIRS
197209 ${NATIVE_APP_SOURCE_DIR } /Apple /Source/Classes/OSX
198210 )
199211
200212 add_executable (${TARGET_NAME} MACOSX_BUNDLE ${SOURCE} ${APPLE_SOURCE} ${INCLUDE} ${APPLE_INCLUDE} ${ASSETS} ${APPLE_RESOURCES} )
201- string (REPLACE "_" "-" BUNDLE_NAME ${TARGET_NAME} )
213+ if (ARG_BUNDLE_IDENTIFIER)
214+ set (APP_BUNDLE_IDENTIFIER ${ARG_BUNDLE_IDENTIFIER} )
215+ else ()
216+ string (REPLACE "_" "-" BUNDLE_NAME ${TARGET_NAME} )
217+ set (APP_BUNDLE_IDENTIFIER "com.diligentengine.samples.${BUNDLE_NAME} " )
218+ endif ()
202219 set_target_properties (${TARGET_NAME} PROPERTIES
203- XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "com.diligentengine.samples. ${BUNDLE_NAME } "
220+ XCODE_ATTRIBUTE_PRODUCT_BUNDLE_IDENTIFIER "${APP_BUNDLE_IDENTIFIER } "
204221 MACOSX_BUNDLE_INFO_PLIST "${APPLE_INFO_PLIST} "
205222 RESOURCE "${APPLE_RESOURCES} "
206223 )
@@ -233,7 +250,7 @@ elseif(PLATFORM_MACOS)
233250 endfunction ()
234251
235252 function (add_target_platform_app TARGET_NAME SOURCE INCLUDE ASSETS )
236- add_macos_app ("${TARGET_NAME} " "${SOURCE} " "${INCLUDE} " "${ASSETS} " )
253+ add_macos_app ("${TARGET_NAME} " "${SOURCE} " "${INCLUDE} " "${ASSETS} " ${ARGN} )
237254 endfunction ()
238255
239256elseif (PLATFORM_IOS)
0 commit comments