Procházet zdrojové kódy

Moved container & string classes to a separate library.

Lasse Öörni před 14 roky
rodič
revize
4a35758028

+ 1 - 0
CMakeLists.txt

@@ -104,6 +104,7 @@ endmacro ()
 
 # Add projects
 add_subdirectory (Engine/Audio)
+add_subdirectory (Engine/Container)
 add_subdirectory (Engine/Core)
 add_subdirectory (Engine/Engine)
 add_subdirectory (Engine/Graphics)

+ 3 - 2
Engine/Audio/CMakeLists.txt

@@ -8,11 +8,12 @@ set (SOURCE_FILES ${CPP_FILES} ${H_FILES})
 
 # Include directories
 include_directories (
-    ../Core ../Graphics ../IO ../Math ../Resource ../Scene ../../ThirdParty/STB
+    ../Container ../Core ../Graphics ../IO ../Math ../Resource ../Scene ../../ThirdParty/STB
 )
 
 # Define target & libraries to link
 add_library (${TARGET_NAME} STATIC ${SOURCE_FILES})
-target_link_libraries (${TARGET_NAME} Core Graphics IO Math Resource Scene STB dsound.lib)
+target_link_libraries (${TARGET_NAME} Container Core Graphics IO Math Resource Scene STB 
+    dsound.lib)
 enable_pch ()
 finalize_lib ()

+ 11 - 0
Engine/Container/CMakeLists.txt

@@ -0,0 +1,11 @@
+# Define target name
+set (TARGET_NAME Container)
+
+# Define source files
+file (GLOB CPP_FILES *.cpp)
+file (GLOB H_FILES *.h)
+set (SOURCE_FILES ${CPP_FILES} ${H_FILES})
+
+# Define target & libraries to link
+add_library (${TARGET_NAME} STATIC ${SOURCE_FILES})
+finalize_lib ()

+ 0 - 0
Engine/Core/Iterator.h → Engine/Container/Iterator.h


+ 0 - 0
Engine/Core/ListBase.h → Engine/Container/ListBase.h


+ 0 - 0
Engine/Core/Map.h → Engine/Container/Map.h


+ 0 - 0
Engine/Core/PODVector.h → Engine/Container/PODVector.h


+ 0 - 0
Engine/Core/Pair.h → Engine/Container/Pair.h


+ 0 - 0
Engine/Core/Set.h → Engine/Container/Set.h


+ 0 - 0
Engine/Core/Sort.h → Engine/Container/Sort.h


+ 1 - 2
Engine/Core/CoreString.cpp → Engine/Container/String.cpp

@@ -21,8 +21,7 @@
 // THE SOFTWARE.
 //
 
-#include "Precompiled.h"
-#include "CoreString.h"
+#include "StringBase.h"
 #include "Swap.h"
 
 char String::endZero = 0;

+ 2 - 0
Engine/Core/CoreString.h → Engine/Container/StringBase.h

@@ -23,6 +23,8 @@
 
 #pragma once
 
+// Note: file is named StringBase.h to prevent conflicts with C headers
+
 #include "Iterator.h"
 
 #include <cstring>

+ 41 - 0
Engine/Container/Swap.cpp

@@ -0,0 +1,41 @@
+//
+// Urho3D Engine
+// Copyright (c) 2008-2011 Lasse Öörni
+//
+// Permission is hereby granted, free of charge, to any person obtaining a copy
+// of this software and associated documentation files (the "Software"), to deal
+// in the Software without restriction, including without limitation the rights
+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+// copies of the Software, and to permit persons to whom the Software is
+// furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice shall be included in
+// all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+// THE SOFTWARE.
+//
+
+#include "ListBase.h"
+#include "StringBase.h"
+#include "VectorBase.h"
+
+template<> void Swap<String>(String& first, String& second)
+{
+    first.Swap(second);
+}
+
+template<> void Swap<VectorBase>(VectorBase& first, VectorBase& second)
+{
+    first.Swap(second);
+}
+
+template<> void Swap<SkipListBase>(SkipListBase& first, SkipListBase& second)
+{
+    first.Swap(second);
+}

+ 0 - 0
Engine/Core/Swap.h → Engine/Container/Swap.h


+ 0 - 0
Engine/Core/Vector.h → Engine/Container/Vector.h


+ 0 - 0
Engine/Core/VectorBase.h → Engine/Container/VectorBase.h


+ 2 - 2
Engine/Core/CMakeLists.txt

@@ -8,11 +8,11 @@ set (SOURCE_FILES ${CPP_FILES} ${H_FILES})
 
 # Include directories
 include_directories (
-    ../Math
+    ../Container ../Math
 )
 
 # Define target & libraries to link
 add_library (${TARGET_NAME} STATIC ${SOURCE_FILES})
-target_link_libraries (${TARGET_NAME} Math winmm.lib)
+target_link_libraries (${TARGET_NAME} Container Math winmm.lib)
 enable_pch ()
 finalize_lib ()

+ 0 - 19
Engine/Core/Swap.cpp

@@ -1,19 +0,0 @@
-#include "Precompiled.h"
-#include "CoreString.h"
-#include "ListBase.h"
-#include "VectorBase.h"
-
-template<> void Swap<String>(String& first, String& second)
-{
-    first.Swap(second);
-}
-
-template<> void Swap<VectorBase>(VectorBase& first, VectorBase& second)
-{
-    first.Swap(second);
-}
-
-template<> void Swap<SkipListBase>(SkipListBase& first, SkipListBase& second)
-{
-    first.Swap(second);
-}

+ 4 - 4
Engine/Engine/CMakeLists.txt

@@ -8,13 +8,13 @@ set (SOURCE_FILES ${CPP_FILES} ${H_FILES})
 
 # Include directories
 include_directories (
-    ../Audio ../Core ../Graphics ../Input ../IO ../Math ../Network ../Physics ../Resource ../Scene
-    ../Script ../UI ../../ThirdParty/AngelScript/include
+    ../Audio ../Container ../Core ../Graphics ../Input ../IO ../Math ../Network ../Physics ../Resource
+    ../Scene ../Script ../UI ../../ThirdParty/AngelScript/include
 )
 
 # Define target & libraries to link
 add_library (${TARGET_NAME} STATIC ${SOURCE_FILES})
-target_link_libraries (${TARGET_NAME} Audio Core Graphics Input IO Math Network Physics Resource Scene
-    Script UI)
+target_link_libraries (${TARGET_NAME} Audio Container Core Graphics Input IO Math Network Physics 
+    Resource Scene Script UI)
 enable_pch ()
 finalize_lib ()

+ 2 - 2
Engine/Graphics/CMakeLists.txt

@@ -8,11 +8,11 @@ set (SOURCE_FILES ${CPP_FILES} ${H_FILES})
 
 # Include directories
 include_directories (
-    ../Core ../IO ../Math ../Resource ../Scene
+    ../Container ../Core ../IO ../Math ../Resource ../Scene
 )
 
 # Define target & libraries to link
 add_library (${TARGET_NAME} STATIC ${SOURCE_FILES})
-target_link_libraries (${TARGET_NAME} Core Math Resource Scene d3d9.lib)
+target_link_libraries (${TARGET_NAME} Container Core Math Resource Scene d3d9.lib)
 enable_pch ()
 finalize_lib ()

+ 2 - 2
Engine/IO/CMakeLists.txt

@@ -8,11 +8,11 @@ set (SOURCE_FILES ${CPP_FILES} ${H_FILES})
 
 # Include directories
 include_directories (
-    ../Core ../Math
+    ../Container ../Core ../Math
 )
 
 # Define target & libraries to link
 add_library (${TARGET_NAME} STATIC ${SOURCE_FILES})
-target_link_libraries (${TARGET_NAME} Core Math)
+target_link_libraries (${TARGET_NAME} Container Core Math)
 enable_pch ()
 finalize_lib ()

+ 2 - 2
Engine/Input/CMakeLists.txt

@@ -8,10 +8,10 @@ set (SOURCE_FILES ${CPP_FILES} ${H_FILES})
 
 # Include directories
 include_directories (
-    ../Core ../Graphics ../IO ../Math ../Resource ../Scene
+    ../Container ../Core ../Graphics ../IO ../Math ../Resource ../Scene
 )
 
 # Define target & libraries to link
 add_library (${TARGET_NAME} STATIC ${SOURCE_FILES})
-target_link_libraries (${TARGET_NAME} Core Graphics IO Math Resource Scene)
+target_link_libraries (${TARGET_NAME} Container Core Graphics IO Math Resource Scene)
 finalize_lib ()

+ 2 - 2
Engine/Network/CMakeLists.txt

@@ -8,11 +8,11 @@ set (SOURCE_FILES ${CPP_FILES} ${H_FILES})
 
 # Include directories
 include_directories (
-    ../Core ../IO ../Math ../Resource ../Scene ../../ThirdParty/ENet/include
+    ../Container ../Core ../IO ../Math ../Resource ../Scene ../../ThirdParty/ENet/include
 )
 
 # Define target & libraries to link
 add_library (${TARGET_NAME} STATIC ${SOURCE_FILES})
-target_link_libraries (${TARGET_NAME} Core ENet IO Math Resource Scene)
+target_link_libraries (${TARGET_NAME} Container Core ENet IO Math Resource Scene)
 enable_pch ()
 finalize_lib ()

+ 4 - 3
Engine/Physics/CMakeLists.txt

@@ -8,12 +8,13 @@ set (SOURCE_FILES ${CPP_FILES} ${H_FILES})
 
 # Include directories
 include_directories (
-    ../Core ../Graphics ../IO ../Math ../Resource ../Scene ../../ThirdParty/ODE/include
-    ../../ThirdParty/StanHull
+    ../Container ../Core ../Graphics ../IO ../Math ../Resource ../Scene 
+    ../../ThirdParty/ODE/include ../../ThirdParty/StanHull
 )
 
 # Define target & libraries to link
 add_library (${TARGET_NAME} STATIC ${SOURCE_FILES})
-target_link_libraries (${TARGET_NAME} Core Graphics IO Math ODE Resource Scene StanHull)
+target_link_libraries (${TARGET_NAME} Container Core Graphics IO Math ODE Resource Scene 
+    StanHull)
 enable_pch ()
 finalize_lib ()

+ 2 - 2
Engine/Resource/CMakeLists.txt

@@ -8,11 +8,11 @@ set (SOURCE_FILES ${CPP_FILES} ${H_FILES})
 
 # Include directories
 include_directories (
-    ../Core ../IO ../Math ../../ThirdParty/STB ../../ThirdParty/TinyXML
+    ../Container ../Core ../IO ../Math ../../ThirdParty/STB ../../ThirdParty/TinyXML
 )
 
 # Define target & libraries to link
 add_library (${TARGET_NAME} STATIC ${SOURCE_FILES})
-target_link_libraries (${TARGET_NAME} Core IO Math STB TinyXML)
+target_link_libraries (${TARGET_NAME} Container Core IO Math STB TinyXML)
 enable_pch ()
 finalize_lib ()

+ 2 - 2
Engine/Scene/CMakeLists.txt

@@ -8,11 +8,11 @@ set (SOURCE_FILES ${CPP_FILES} ${H_FILES})
 
 # Include directories
 include_directories (
-    ../Core ../IO ../Math ../Resource
+    ../Container ../Core ../IO ../Math ../Resource
 )
 
 # Define target & libraries to link
 add_library (${TARGET_NAME} STATIC ${SOURCE_FILES})
-target_link_libraries (${TARGET_NAME} Core IO Math Resource)
+target_link_libraries (${TARGET_NAME} Container Core IO Math Resource)
 enable_pch ()
 finalize_lib ()

+ 3 - 2
Engine/Script/CMakeLists.txt

@@ -8,11 +8,12 @@ set (SOURCE_FILES ${CPP_FILES} ${H_FILES})
 
 # Include directories
 include_directories (
-    ../Core ../IO ../Math ../Physics ../Resource ../Scene ../../ThirdParty/AngelScript/include
+    ../Container ../Core ../IO ../Math ../Physics ../Resource ../Scene 
+    ../../ThirdParty/AngelScript/include
 )
 
 # Define target & libraries to link
 add_library (${TARGET_NAME} STATIC ${SOURCE_FILES})
-target_link_libraries (${TARGET_NAME} AngelScript Core IO Math Physics Resource Scene)
+target_link_libraries (${TARGET_NAME} AngelScript Container Core IO Math Physics Resource Scene)
 enable_pch ()
 finalize_lib ()

+ 3 - 2
Engine/UI/CMakeLists.txt

@@ -8,12 +8,13 @@ set (SOURCE_FILES ${CPP_FILES} ${H_FILES})
 
 # Include directories
 include_directories (
-    ../Core ../Graphics ../Input ../IO ../Math ../Resource ../../ThirdParty/TinyXML
+    ../Container ../Core ../Graphics ../Input ../IO ../Math ../Resource ../../ThirdParty/TinyXML
     ../../ThirdParty/FreeType/include 
 )
 
 # Define target & libraries to link
 add_library (${TARGET_NAME} STATIC ${SOURCE_FILES})
-target_link_libraries (${TARGET_NAME} Core FreeType Graphics Input IO Math Resource STB TinyXML)
+target_link_libraries (${TARGET_NAME} Container Core FreeType Graphics Input IO Math Resource STB 
+    TinyXML)
 enable_pch ()
 finalize_lib ()

+ 4 - 3
Tools/AssetImporter/CMakeLists.txt

@@ -8,12 +8,13 @@ set (SOURCE_FILES ${CPP_FILES} ${H_FILES})
 
 # Include directories
 include_directories (
-    ../../Engine/Core ../../Engine/Graphics ../../Engine/IO ../../Engine/Math ../../Engine/Resource
-    ../../Engine/Physics ../../Engine/Scene ../../ThirdParty/Assimp/include
+    ../../Engine/Container ../../Engine/Core ../../Engine/Graphics ../../Engine/IO ../../Engine/Math 
+    ../../Engine/Resource ../../Engine/Physics ../../Engine/Scene ../../ThirdParty/Assimp/include
 )
 
 # Define target & libraries to link
 add_executable (${TARGET_NAME} ${SOURCE_FILES})
-target_link_libraries (${TARGET_NAME} Assimp Core Graphics IO Math Physics Scene Resource ${DBGHELP_LIB})
+target_link_libraries (${TARGET_NAME} Assimp Container Core Graphics IO Math Physics Scene Resource 
+    ${DBGHELP_LIB})
 finalize_exe ()
 

+ 3 - 2
Tools/NormalMapTool/CMakeLists.txt

@@ -6,10 +6,11 @@ set (SOURCE_FILES NormalMapTool.cpp)
 
 # Include directories
 include_directories (
-    ../../Engine/Core ../../Engine/IO ../../Engine/Math ../../Engine/Resource ../../ThirdParty/STB
+    ../../Engine/Container ../../Engine/Core ../../Engine/IO ../../Engine/Math ../../Engine/Resource
+    ../../ThirdParty/STB
 )
 
 # Define target & libraries to link
 add_executable (${TARGET_NAME} ${SOURCE_FILES})
-target_link_libraries (${TARGET_NAME} Core IO Math Resource STB)
+target_link_libraries (${TARGET_NAME} Container Core IO Math Resource STB)
 finalize_exe ()

+ 3 - 3
Tools/OgreImporter/CMakeLists.txt

@@ -8,12 +8,12 @@ set (SOURCE_FILES ${CPP_FILES} ${H_FILES})
 
 # Include directories
 include_directories (
-    ../../Engine/Core ../../Engine/Graphics ../../Engine/IO ../../Engine/Math ../../Engine/Physics  
-    ../../Engine/Resource ../../ThirdParty/TinyXML
+    ../../Engine/Container ../../Engine/Core ../../Engine/Graphics ../../Engine/IO ../../Engine/Math 
+    ../../Engine/Physics ../../Engine/Resource ../../ThirdParty/TinyXML
 )
 
 # Define target & libraries to link
 add_executable (${TARGET_NAME} ${SOURCE_FILES})
-target_link_libraries (${TARGET_NAME} Core Graphics IO Math Resource TinyXML)
+target_link_libraries (${TARGET_NAME} Container Core Graphics IO Math Resource TinyXML)
 finalize_exe ()
 

+ 2 - 2
Tools/PackageTool/CMakeLists.txt

@@ -6,10 +6,10 @@ set (SOURCE_FILES PackageTool.cpp)
 
 # Include directories
 include_directories (
-    ../../Engine/Core ../../Engine/IO ../../Engine/Math ../../Engine/Resource
+    ../../Engine/Container ../../Engine/Core ../../Engine/IO ../../Engine/Math ../../Engine/Resource
 )
 
 # Define target & libraries to link
 add_executable (${TARGET_NAME} ${SOURCE_FILES})
-target_link_libraries (${TARGET_NAME} Core IO Math Resource)
+target_link_libraries (${TARGET_NAME} Container Core IO Math Resource)
 finalize_exe ()

+ 3 - 2
Tools/RampGenerator/CMakeLists.txt

@@ -6,11 +6,12 @@ set (SOURCE_FILES RampGenerator.cpp)
 
 # Include directories
 include_directories (
-    ../../Engine/Core ../../Engine/IO ../../Engine/Math ../../Engine/Resource ../../ThirdParty/STB
+    ../../Engine/Container ../../Engine/Core ../../Engine/IO ../../Engine/Math ../../Engine/Resource 
+    ../../ThirdParty/STB
 )
 
 # Define target & libraries to link
 add_executable (${TARGET_NAME} ${SOURCE_FILES})
-target_link_libraries (${TARGET_NAME} Core IO Math Resource STB)
+target_link_libraries (${TARGET_NAME} Container Core IO Math Resource STB)
 finalize_exe ()
 

+ 3 - 2
Tools/ShaderCompiler/CMakeLists.txt

@@ -8,10 +8,11 @@ set (SOURCE_FILES ${CPP_FILES} ${H_FILES})
 
 # Include directories
 include_directories (
-    ../../Engine/Core ../../Engine/IO ../../Engine/Math ../../Engine/Resource ../../ThirdParty/TinyXML
+    ../../Engine/Container ../../Engine/Core ../../Engine/IO ../../Engine/Math ../../Engine/Resource
+    ../../ThirdParty/TinyXML
 )
 
 # Define target & libraries to link
 add_executable (${TARGET_NAME} ${SOURCE_FILES})
-target_link_libraries (${TARGET_NAME} Core IO Math Resource TinyXML)
+target_link_libraries (${TARGET_NAME} Container Core IO Math Resource TinyXML)
 finalize_exe ()

+ 3 - 2
Urho3D/CMakeLists.txt

@@ -8,11 +8,12 @@ set (SOURCE_FILES ${CPP_FILES} ${H_FILES})
 
 # Include directories
 include_directories (
-    ../Engine/Core ../Engine/Engine ../Engine/IO ../Engine/Math ../Engine/Resource ../Engine/Script
+    ../Engine/Container ../Engine/Core ../Engine/Engine ../Engine/IO ../Engine/Math ../Engine/Resource 
+    ../Engine/Script
 )
 
 # Define target & libraries to link
 add_executable (${TARGET_NAME} WIN32 ${SOURCE_FILES})
 set_target_properties (${TARGET_NAME} PROPERTIES DEBUG_POSTFIX _d)
-target_link_libraries (${TARGET_NAME} Core Engine IO Math Resource Script ${DBGHELP_LIB})
+target_link_libraries (${TARGET_NAME} Container Core Engine IO Math Resource Script ${DBGHELP_LIB})
 finalize_exe ()