Browse Source

VS2013 improvements

Josh Engebretson 10 years ago
parent
commit
416237d6c2

+ 18 - 1
Source/AtomicJS/CMakeLists.txt

@@ -31,6 +31,23 @@ if (NOT MSVC)
     add_definitions (-DUNIX)
     add_definitions (-DUNIX)
 endif()
 endif()
 
 
+# Create the JSBind files ahead of time, so they are picked up with glob
+set (JSFILES JSModuleAtomic2D.cpp;JSModuleAudio.cpp;JSModuleContainer.cpp;JSModuleCore.cpp;
+             JSModuleEngine.cpp;JSModuleEnvironment.cpp;JSModuleGraphics.cpp;JSModuleInput.cpp;
+             JSModuleIO.cpp;JSModuleJavascript.cpp;JSModuleMath.cpp;JSModuleNavigation.cpp;
+             JSModuleNetwork.cpp;JSModulePhysics.cpp;JSModuleResource.cpp;JSModules.cpp;
+             JSModuleScene.cpp;JSModuleUI.cpp)
+
+foreach(JSFILE ${JSFILES})
+
+  set (JSFILEPATH "${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Modules/${JSFILE}")
+
+  if (NOT EXISTS ${JSFILEPATH})
+    file(WRITE "${JSFILEPATH}" "// will be created by JSBind")
+  endif()
+
+endforeach()
+
 
 
 file (GLOB JAVASCRIPT_BINDINGS_SOURCE ${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Modules/*.cpp)
 file (GLOB JAVASCRIPT_BINDINGS_SOURCE ${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Modules/*.cpp)
 
 
@@ -39,5 +56,5 @@ set (SOURCE_FILES ${JAVASCRIPT_SOURCE} ${JAVASCRIPT_BINDINGS_SOURCE} )
 add_library(AtomicJS ${SOURCE_FILES})
 add_library(AtomicJS ${SOURCE_FILES})
 
 
 if (NOT IOS AND NOT ANDROID AND NOT EMSCRIPTEN)
 if (NOT IOS AND NOT ANDROID AND NOT EMSCRIPTEN)
-    add_dependencies(AtomicJS JSBind BuildJSBindings)
+    add_dependencies(AtomicJS JSBind)
 endif()
 endif()

+ 2 - 5
Source/AtomicJS/JSBind/CMakeLists.txt

@@ -12,9 +12,6 @@ add_executable(JSBind ${SOURCE_FILES})
 target_link_libraries(JSBind ${ATOMIC_LINK_LIBRARIES})
 target_link_libraries(JSBind ${ATOMIC_LINK_LIBRARIES})
 
 
 #TODO: finer grained dependencies
 #TODO: finer grained dependencies
-add_custom_command(OUTPUT "${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Modules/JSModules.cpp"
+add_custom_command(TARGET JSBind POST_BUILD
                    COMMAND $<TARGET_FILE:JSBind> "\"${CMAKE_SOURCE_DIR}\"" "${JAVASCRIPT_BINDINGS_PLATFORM}"
                    COMMAND $<TARGET_FILE:JSBind> "\"${CMAKE_SOURCE_DIR}\"" "${JAVASCRIPT_BINDINGS_PLATFORM}"
-                   DEPENDS JSBind
-                   COMMENT "Generating Javascript Bindings")
-
-add_custom_target(BuildJSBindings DEPENDS "${CMAKE_SOURCE_DIR}/Build/Source/Generated/${JAVASCRIPT_BINDINGS_PLATFORM}/Javascript/Modules/JSModules.cpp")
+                   COMMENT "Generating Javascript Bindings")

+ 13 - 12
Source/Tools/PackageTool/CMakeLists.txt

@@ -8,23 +8,25 @@ target_link_libraries(PackageTool ${ATOMIC_LINK_LIBRARIES})
 file (GLOB_RECURSE EDITORDATA_FILES ${CMAKE_SOURCE_DIR}/Data/AtomicEditor/Resources/EditorData/*)
 file (GLOB_RECURSE EDITORDATA_FILES ${CMAKE_SOURCE_DIR}/Data/AtomicEditor/Resources/EditorData/*)
 file (GLOB_RECURSE COREDATA_FILES ${CMAKE_SOURCE_DIR}/Data/AtomicPlayer/Resources/CoreData/*)
 file (GLOB_RECURSE COREDATA_FILES ${CMAKE_SOURCE_DIR}/Data/AtomicPlayer/Resources/CoreData/*)
 
 
+set (EDITORDATA_PAK "${CMAKE_SOURCE_DIR}/Bin/EditorData.pak")
+set (COREDATA_PAK "${CMAKE_SOURCE_DIR}/Bin/CoreData.pak")
+
 if (MSVC)
 if (MSVC)
 
 
-    add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/EditorData.pak"
-                       COMMAND $<TARGET_FILE:PackageTool> "${CMAKE_SOURCE_DIR}/Data/AtomicEditor/Resources/EditorData" "${CMAKE_CURRENT_BINARY_DIR}/EditorData.pak" -c
+    add_custom_command(OUTPUT "${EDITORDATA_PAK}"
+                       COMMAND $<TARGET_FILE:PackageTool> "${CMAKE_SOURCE_DIR}/Data/AtomicEditor/Resources/EditorData" "${EDITORDATA_PAK}" -c
+                       COMMAND ${CMAKE_COMMAND} 
+                       ARGS -E copy \"${EDITORDATA_PAK}\" \"$<TARGET_FILE_DIR:AtomicEditor>/EditorData.pak\"
                        DEPENDS PackageTool ${EDITORDATA_FILES})
                        DEPENDS PackageTool ${EDITORDATA_FILES})
 
 
-    add_custom_command(OUTPUT "${CMAKE_CURRENT_BINARY_DIR}/CoreData.pak"
-                      COMMAND $<TARGET_FILE:PackageTool> "${CMAKE_SOURCE_DIR}/Data/AtomicPlayer/Resources/CoreData" "${CMAKE_CURRENT_BINARY_DIR}/CoreData.pak" -c
+    add_custom_command(OUTPUT "${COREDATA_PAK}"
+                      COMMAND $<TARGET_FILE:PackageTool> "${CMAKE_SOURCE_DIR}/Data/AtomicPlayer/Resources/CoreData" "${COREDATA_PAK}" -c
+                      COMMAND ${CMAKE_COMMAND} 
+                      ARGS -E copy \"${COREDATA_PAK}\" \"$<TARGET_FILE_DIR:AtomicEditor>/CoreData.pak\"
                       DEPENDS PackageTool ${COREDATA_FILES})
                       DEPENDS PackageTool ${COREDATA_FILES})
 
 
-    add_custom_target(BuildPakFiles ALL DEPENDS "${CMAKE_CURRENT_BINARY_DIR}/EditorData.pak" "${CMAKE_CURRENT_BINARY_DIR}/CoreData.pak")
-
 elseif (APPLE)
 elseif (APPLE)
 
 
-    set (EDITORDATA_PAK "${CMAKE_SOURCE_DIR}/Bin/EditorData.pak")
-    set (COREDATA_PAK "${CMAKE_SOURCE_DIR}/Bin/CoreData.pak")
-
     add_custom_command(OUTPUT "${EDITORDATA_PAK}"
     add_custom_command(OUTPUT "${EDITORDATA_PAK}"
                        COMMAND $<TARGET_FILE:PackageTool> "${CMAKE_SOURCE_DIR}/Data/AtomicEditor/Resources/EditorData" "${EDITORDATA_PAK}" -c
                        COMMAND $<TARGET_FILE:PackageTool> "${CMAKE_SOURCE_DIR}/Data/AtomicEditor/Resources/EditorData" "${EDITORDATA_PAK}" -c
                        COMMAND rsync -u "${EDITORDATA_PAK}" "$<TARGET_FILE_DIR:AtomicEditor>/../Resources/EditorData.pak"
                        COMMAND rsync -u "${EDITORDATA_PAK}" "$<TARGET_FILE_DIR:AtomicEditor>/../Resources/EditorData.pak"
@@ -34,8 +36,7 @@ elseif (APPLE)
                       COMMAND $<TARGET_FILE:PackageTool> "${CMAKE_SOURCE_DIR}/Data/AtomicPlayer/Resources/CoreData" "${COREDATA_PAK}" -c
                       COMMAND $<TARGET_FILE:PackageTool> "${CMAKE_SOURCE_DIR}/Data/AtomicPlayer/Resources/CoreData" "${COREDATA_PAK}" -c
                       COMMAND rsync -u "${COREDATA_PAK}" "$<TARGET_FILE_DIR:AtomicEditor>/../Resources/CoreData.pak"
                       COMMAND rsync -u "${COREDATA_PAK}" "$<TARGET_FILE_DIR:AtomicEditor>/../Resources/CoreData.pak"
                       DEPENDS PackageTool ${COREDATA_FILES})
                       DEPENDS PackageTool ${COREDATA_FILES})
-
-    add_custom_target(BuildEditorFiles ALL DEPENDS AtomicEditor "${EDITORDATA_PAK}" "${COREDATA_PAK}")
-
 endif()
 endif()
 
 
+add_custom_target(BuildEditorFiles ALL DEPENDS AtomicEditor "${EDITORDATA_PAK}" "${COREDATA_PAK}")
+