Преглед изворни кода

Build out EditorData and CoreData pak files with dependencies for editor (avoid symlink, which requires admin on Windows)

Josh Engebretson пре 10 година
родитељ
комит
8c328728ad

+ 1 - 0
.gitignore

@@ -2,6 +2,7 @@
 *.user
 Bin/Atomic.d.ts
 Bin/Atomic.js
+Bin/*.pak
 Source/Atomic/Javascript/Modules/*
 Artifacts/*
 Build/*

+ 2 - 7
CMakeLists.txt

@@ -5,8 +5,7 @@ cmake_minimum_required (VERSION 3.0.0)
 
 set (CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/CMake/Modules)
 
-add_definitions( -DATOMIC_STATIC_DEFINE -DATOMIC_LOGGING -DATOMIC_PHYSICS -DATOMIC_ATOMIC2D )
-
+add_definitions( -DATOMIC_API= -DATOMIC_STATIC_DEFINE -DATOMIC_LOGGING -DATOMIC_PHYSICS -DATOMIC_ATOMIC2D )
 
 # this is here as QtCreator is having trouble picking up #include <Atomic/*> without it
 include_directories(${CMAKE_SOURCE_DIR}/Source ${CMAKE_SOURCE_DIR}/Source/AtomicEditor/Source)
@@ -18,10 +17,6 @@ if (NOT EMSCRIPTEN)
     set (ATOMIC_LINK_LIBRARIES ${ATOMIC_LINK_LIBRARIES} SDL Civetweb Recast Detour kNet )
 endif()
 
-#if (NOT MSVC)
-    add_definitions(-DATOMIC_API=)
-#endif()
-
 if (MSVC)
 
     include(AtomicWindows)
@@ -39,7 +34,7 @@ elseif(ANDROID)
     include(AtomicAndroid)
 
 elseif(EMSCRIPTEN)    
-	
+
 	include(AtomicWeb)
 
 endif()

+ 0 - 6
Source/AtomicEditor/AtomicEditorMac.cmake

@@ -1,6 +0,0 @@
-
-add_custom_command(TARGET AtomicEditor POST_BUILD
-                   COMMAND ln -sfh "${CMAKE_SOURCE_DIR}/Data/AtomicEditor/Resources/EditorData" "$<TARGET_FILE_DIR:AtomicEditor>/../Resources/EditorData"
-                   COMMAND ln -sfh "${CMAKE_SOURCE_DIR}/Data/AtomicPlayer/Resources/CoreData" "$<TARGET_FILE_DIR:AtomicEditor>/../Resources/CoreData" )
-
-

+ 38 - 3
Source/AtomicEditor/CMakeLists.txt

@@ -42,8 +42,43 @@ if (TARGET_PROPERTIES)
     set_target_properties (AtomicEditor PROPERTIES ${TARGET_PROPERTIES})
 endif ()
 
+
+file (GLOB_RECURSE EDITORDATA_FILES ${CMAKE_SOURCE_DIR}/Data/AtomicEditor/Resources/EditorData/*)
+file (GLOB_RECURSE COREDATA_FILES ${CMAKE_SOURCE_DIR}/Data/AtomicPlayer/Resources/CoreData/*)
+
+add_custom_command (OUTPUT "${CMAKE_SOURCE_DIR}/Bin/EditorData.pak"
+                    COMMAND $<TARGET_FILE:PackageTool> "${CMAKE_SOURCE_DIR}/Data/AtomicEditor/Resources/EditorData" "${CMAKE_SOURCE_DIR}/Bin/EditorData.pak" -c
+                    DEPENDS PackageTool ${EDITORDATA_FILES}
+                    COMMENT "Packaging Editor Data")
+
+add_custom_command (OUTPUT "${CMAKE_SOURCE_DIR}/Bin/CoreData.pak"
+                    COMMAND $<TARGET_FILE:PackageTool> "${CMAKE_SOURCE_DIR}/Data/AtomicPlayer/Resources/CoreData" "${CMAKE_SOURCE_DIR}/Bin/CoreData.pak" -c
+                    DEPENDS PackageTool ${COREDATA_FILES}
+                    COMMENT "Packaging Core Data")
+
+add_custom_target(BuildEditorDataPak DEPENDS "${CMAKE_SOURCE_DIR}/Bin/EditorData.pak")
+add_custom_target(BuildCoreDataPak DEPENDS "${CMAKE_SOURCE_DIR}/Bin/CoreData.pak")
+
+add_dependencies( AtomicEditor BuildCoreDataPak BuildEditorDataPak)
+
 if (APPLE)
-    include(AtomicEditorMac.cmake)
-elseif(MSVC)
-    include(AtomicEditorWindows.cmake)
+
+    add_custom_target(CopyPakFiles ALL
+                       COMMAND
+                       rsync -u "${CMAKE_SOURCE_DIR}/Bin/EditorData.pak" "$<TARGET_FILE_DIR:AtomicEditor>/../Resources/EditorData.pak"
+                       COMMAND
+                       rsync -u "${CMAKE_SOURCE_DIR}/Bin/CoreData.pak" "$<TARGET_FILE_DIR:AtomicEditor>/../Resources/CoreData.pak"
+                       COMMENT "Copying Editor Resources")
+
+else()
+
 endif()
+
+
+
+
+
+
+
+
+

+ 3 - 3
Source/AtomicEditor/Source/AEApplication.cpp

@@ -70,12 +70,12 @@ void AEApplication::Start()
     FileSystem* fileSystem = GetSubsystem<FileSystem>();
 
 #ifdef __APPLE__    
-    String editorResources = fileSystem->GetAppBundleResourceFolder() + "EditorData/";
+    String editorResources = fileSystem->GetAppBundleResourceFolder() + "EditorData.pak";
 #else
     String editorResources = fileSystem->GetProgramDir() + "EditorData/";
 #endif    
-    assert(fileSystem->DirExists(editorResources));
-    cache->AddResourceDir(editorResources);
+    assert(fileSystem->FileExists(editorResources));
+    cache->AddPackageFile(editorResources);
 
     // initialize after EditorResources set
     TBUI* tbui = GetSubsystem<TBUI>();

+ 3 - 1
Source/CMakeLists.txt

@@ -4,8 +4,10 @@ add_subdirectory(Atomic)
 add_subdirectory(AtomicJS)
 add_subdirectory(AtomicPlayer)
 
-if (NOT IOS AND NOT ANDROID AND NOT EMSCRIPTEN)
+if (NOT IOS AND NOT ANDROID AND NOT EMSCRIPTEN)    
+    add_subdirectory(Tools)
     add_subdirectory(AtomicEditor)
+
 endif()
 
 

+ 1 - 1
Source/Tools/CMakeLists.txt

@@ -1,6 +1,6 @@
 
 
-add_subdirectory(JSBind)
+add_subdirectory(PackageTool)
 
 
 

+ 5 - 0
Source/Tools/PackageTool/CMakeLists.txt

@@ -0,0 +1,5 @@
+
+
+add_executable(PackageTool PackageTool.cpp)
+
+target_link_libraries(PackageTool ${ATOMIC_LINK_LIBRARIES})

+ 2 - 2
Source/Tools/PackageTool/PackageTool.cpp

@@ -34,8 +34,8 @@
 
 #include <cstdio>
 #include <cstring>
-#include <LZ4/lz4.h>
-#include <LZ4/lz4hc.h>
+#include <ThirdParty/LZ4/lz4.h>
+#include <ThirdParty/LZ4/lz4hc.h>
 
 #include <Atomic/DebugNew.h>