@@ -87,24 +87,37 @@ elseif(APPLE AND SFML_FOUND)
8787 get_target_property (SFML_GRAPHICS_LIB SFML::Graphics IMPORTED_LOCATION )
8888 endif ()
8989
90- if (SFML_GRAPHICS_LIB)
90+ # Check if SFML is statically or dynamically linked
91+ set (SFML_IS_STATIC FALSE )
92+ if (SFML_GRAPHICS_LIB AND SFML_GRAPHICS_LIB MATCHES "\\ .a$" )
93+ set (SFML_IS_STATIC TRUE )
94+ elseif (SFML_STATIC_LIBRARIES)
95+ set (SFML_IS_STATIC TRUE )
96+ endif ()
97+
98+ add_custom_command (
99+ TARGET ${BINARY_NAME} POST_BUILD
100+ # MacOS/にProdConfig.tsvをコピー
101+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
102+ "${CMAKE_CURRENT_SOURCE_DIR} /${OS} /ProdConfig.tsv"
103+ "$<TARGET_FILE_DIR :${BINARY_NAME} >/Config.tsv"
104+
105+ # Resources/にappicon.icnsをコピー
106+ COMMAND ${CMAKE_COMMAND} -E make_directory
107+ "$<TARGET_BUNDLE_CONTENT_DIR :${BINARY_NAME} >/Resources"
108+ COMMAND ${CMAKE_COMMAND} -E copy_if_different
109+ "${CMAKE_CURRENT_SOURCE_DIR} /${OS} /appicon.icns"
110+ "$<TARGET_BUNDLE_CONTENT_DIR :${BINARY_NAME} >/Resources/appicon.icns"
111+ COMMENT "Setting up app bundle resources..."
112+ )
113+
114+ # Only copy SFML dylibs if using dynamic linking
115+ if (SFML_GRAPHICS_LIB AND NOT SFML_IS_STATIC)
91116 get_filename_component (SFML_LIB_DIR ${SFML_GRAPHICS_LIB} DIRECTORY )
92117 set (APP_FRAMEWORKS_DIR "$<TARGET_BUNDLE_CONTENT_DIR :${BINARY_NAME} >/Frameworks" )
93118
94119 add_custom_command (
95120 TARGET ${BINARY_NAME} POST_BUILD
96- # MacOS/にProdConfig.tsvをコピー
97- COMMAND ${CMAKE_COMMAND} -E copy_if_different
98- "${CMAKE_CURRENT_SOURCE_DIR} /${OS} /ProdConfig.tsv"
99- "$<TARGET_FILE_DIR :${BINARY_NAME} >/Config.tsv"
100-
101- # Resources/にappicon.icnsをコピー
102- COMMAND ${CMAKE_COMMAND} -E make_directory
103- "$<TARGET_BUNDLE_CONTENT_DIR :${BINARY_NAME} >/Resources"
104- COMMAND ${CMAKE_COMMAND} -E copy_if_different
105- "${CMAKE_CURRENT_SOURCE_DIR} /${OS} /appicon.icns"
106- "$<TARGET_BUNDLE_CONTENT_DIR :${BINARY_NAME} >/Resources/appicon.icns"
107-
108121 # SFML の dylib をコピーして install_name_tool でパスを修正
109122 COMMAND ${CMAKE_COMMAND} -E make_directory
110123 ${APP_FRAMEWORKS_DIR}
@@ -123,6 +136,8 @@ elseif(APPLE AND SFML_FOUND)
123136 COMMAND install_name_tool -change ${SFML_LIB_DIR} /libsfml-system.3.0.dylib @rpath/libsfml-system.3.0.dylib $<TARGET_FILE :${BINARY_NAME} >
124137 COMMENT "Copying SFML dylibs to app bundle and fixing install names..."
125138 )
139+ else ()
140+ message (STATUS "Using static SFML libraries - no dylibs to copy" )
126141 endif ()
127142 else ()
128143 # Development: standard executable
0 commit comments