Selaa lähdekoodia

Simplify the Mac OS X inclusion of resource files.

Michel Lesoinne 10 vuotta sitten
vanhempi
sitoutus
b861d94d4b
2 muutettua tiedostoa jossa 20 lisäystä ja 54 poistoa
  1. 13 12
      samples/BuildHelpers.CMakeLists.txt
  2. 7 42
      samples/racer/CMakeLists.txt

+ 13 - 12
samples/BuildHelpers.CMakeLists.txt

@@ -62,22 +62,23 @@ macro(MAKE_ABSOLUTE RESULT REL_PATH)
     endforeach()
 endmacro()
 
-macro(COPY_RES_MAC RESULT BASE_SRC_PATH REL_PATH)
+# Build a list of resource files matching a list of regular expression within a given path
+# and mark their correct Mac OS X destination, keeping the relative position to a base path
+#   RESULT name of the global variable into which the result is built
+#   BASE_SRC_PATH the base path under which the structure is replicated in the bundle
+#   REL_PATH a pattern to be matched and searched recursively.
+macro(COPY_RES_MAC RESULT BASE_SRC_PATH)
 	set(${RESULT})
-	MESSAGE("COPY_RES_MAC with base ${BASE_SRC_PATH} and rel ${REL_PATH}")
-	#foreach(PATTERN ${ARGN} )
-            file(GLOB_RECURSE XX RELATIVE ${BASE_SRC_PATH} ${BASE_SRC_PATH}/${REL_PATH}/${PATTERN})
-            MESSAGE("XX is ${XX}")
+	foreach(PATTERN ${ARGN} )
+            file(GLOB_RECURSE XX RELATIVE ${BASE_SRC_PATH} ${BASE_SRC_PATH}/${PATTERN})
             foreach(FNAME ${XX})
-                list(APPEND ${RESULT} ${BASE_SRC_PATH}/${XX})
-                MESSAGE("Working on ${FNAME}")
-                get_filename_component(YY ${FNAME} DIRECTORY )
-                MESSAGE("Directory is ${YY} for ${BASE_SRC_PATH}/${FNAME}")
-                SET_SOURCE_FILES_PROPERTIES(
+                list(APPEND ${RESULT} ${BASE_SRC_PATH}/${FNAME})
+                get_filename_component(DIR ${FNAME} DIRECTORY )
+                set_source_files_properties(
                             ${BASE_SRC_PATH}/${FNAME}
                             PROPERTIES
-                            MACOSX_PACKAGE_LOCATION Resources/${YY}
+                            MACOSX_PACKAGE_LOCATION Resources/${DIR}
                     )
             endforeach()
-    #endforeach()
+    endforeach()
 endmacro()

+ 7 - 42
samples/racer/CMakeLists.txt

@@ -16,38 +16,16 @@ source_group(res FILES ${GAME_RES} ${GAMEPLAY_RES} ${GAMEPLAY_RES_SHADERS} ${GAM
 source_group(src FILES ${GAME_SRC})
 
 if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-    MAKE_ABSOLUTE(GAMEPLAY_RES_SHADERS  ${CMAKE_SOURCE_DIR}/gameplay
-            res/shaders/*)
-    MAKE_ABSOLUTE(GAMEPLAY_RES_UI  ${CMAKE_SOURCE_DIR}/gameplay
-            res/ui/*)
-    MESSAGE("GP Shaders ${GAMEPLAY_RES_SHADERS}")
-#    include(BundleUtilities)
-#    SET(GAME_RES res/png/car.png)
     COPY_RES_MAC(GAME_RES ${CMAKE_SOURCE_DIR}/samples/racer res/*)
-    message("Resources are ${GAME_RES} !!!")
+    COPY_RES_MAC(GAMEPLAY_RES ${CMAKE_SOURCE_DIR}/gameplay
+            res/shaders/* res/ui/* res/logo_powered_white.png)
     set(Apple_Resources
             ../../gameplay/res/logo_powered_white.png
             ${GAME_RES}
             ${GAMEPLAY_RES}
-            ${GAMEPLAY_RES_SHADERS}
-            ${GAMEPLAY_RES_UI}
             game.config)
     SET(EXEC_TYPE MACOSX_BUNDLE)
-    SET_SOURCE_FILES_PROPERTIES(
-            ../../gameplay/res/logo_powered_white.png
-            PROPERTIES
-            MACOSX_PACKAGE_LOCATION Resources/res
-    )
-    SET_SOURCE_FILES_PROPERTIES(
-            ${GAMEPLAY_RES_SHADERS}
-            PROPERTIES
-            MACOSX_PACKAGE_LOCATION Resources/res/shaders
-    )
-    SET_SOURCE_FILES_PROPERTIES(
-            ${GAMEPLAY_RES_UI}
-            PROPERTIES
-            MACOSX_PACKAGE_LOCATION Resources/res/ui
-    )
+
     SET_SOURCE_FILES_PROPERTIES(
             game.config
             PROPERTIES
@@ -59,7 +37,6 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
     set( MACOSX_BUNDLE_BUNDLE_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}" )
     set( MACOSX_BUNDLE_COPYRIGHT "(C) gameplay3d contributors" )
     set( PLIST_TEMPLATE sample-racer-macosx.plist )
-    configure_file( game.png.config game.config COPYONLY )
 endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
 
 add_executable(${GAME_NAME} ${EXEC_TYPE}
@@ -68,19 +45,7 @@ add_executable(${GAME_NAME} ${EXEC_TYPE}
         )
 target_link_libraries(${GAME_NAME} ${GAMEPLAY_LIBRARIES})
 
-if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
-    #    SET_TARGET_PROPERTIES( ${GAME_NAME}
-    #            PROPERTIES MACOSX_BUNDLE_INFO_PLIST "${CMAKE_SOURCE_DIR}/samples/racer/${PLIST_TEMPLATE}" )
-    #    install(TARGETS ${GAME_NAME}
-    #            RUNTIME DESTINATION bin
-    #            BUNDLE DESTINATION bundle
-    #            )
-#    GET_BUNDLE_AND_EXECUTABLE(${GAME_NAME} BUNDLE_NAME EXEC_NAME VALID_TAG)
-#    message("Bundle name is ${BUNDLE_NAME} valid ${VALID_TAG}")
-#    GET_DOTAPP_DIR(${GAME_NAME} DIR_NAME)
-#    message(".app dirr name is ${DIR_NAME}")
-    configure_file( game.png.config game.config COPYONLY )
-else(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+if(!${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
 
 
     COPY_RES( ${GAME_NAME} )
@@ -90,6 +55,6 @@ else(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
             res/ui/*
             )
 
-    # Just use the PNG config file (most compatible)
-    configure_file( game.png.config game.config COPYONLY )
-endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+endif(!${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
+# Just use the PNG config file (most compatible)
+configure_file( game.png.config game.config COPYONLY )