Skip to content

Commit c9dfabd

Browse files
committed
removed zlib dependency in favour of included miniz (no more external linking!)
fixed a few compilier warnings
1 parent 0c66457 commit c9dfabd

11 files changed

+4967
-29
lines changed

CMakeLists.txt

+17-15
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ set(tmx_SRCS
7070
src/MapLoaderPrivate.cpp
7171
src/MapLayer.cpp
7272
src/MapObject.cpp
73+
src/miniz.c
7374
src/QuadTreeNode.cpp
7475
src/Log.cpp)
7576

@@ -101,15 +102,15 @@ elseif(NOT SFML_FOUND)
101102
message("-> Make sure the SFML libraries with the same configuration (Release/Debug, Static/Dynamic) exist.\n")
102103
endif()
103104

104-
find_package(ZLIB REQUIRED)
105+
#find_package(ZLIB REQUIRED)
105106

106-
if(ZLIB_FOUND)
107-
include_directories(${ZLIB_INCLUDE_DIRS})
108-
elseif(NOT ZLIB_FOUND)
109-
set(ZLIB_ROOT "" CACHE PATH "zlib top-level directory")
110-
message("\n-> zlib directory not found. Set ZLIB_ROOT to zlib's top-level path (containing \"include\" and \"lib\" directories).")
111-
message("-> Make sure the zlib libraries with the same configuration (Release/Debug, Static/Dynamic) exist.\n")
112-
endif()
107+
#if(ZLIB_FOUND)
108+
# include_directories(${ZLIB_INCLUDE_DIRS})
109+
#elseif(NOT ZLIB_FOUND)
110+
# set(ZLIB_ROOT "" CACHE PATH "zlib top-level directory")
111+
# message("\n-> zlib directory not found. Set ZLIB_ROOT to zlib's top-level path (containing \"include\" and \"lib\" directories).")
112+
# message("-> Make sure the zlib libraries with the same configuration (Release/Debug, Static/Dynamic) exist.\n")
113+
#endif()
113114

114115
if(USE_BOX2D)
115116
find_package(BOX2D)
@@ -125,7 +126,8 @@ endif()
125126
endif()
126127

127128
#target_link_libraries(pugi ${ZLIB_LIBRARIES})
128-
target_link_libraries(tmx-loader pugi ${SFML_LIBRARIES} ${SFML_DEPENDENCIES} ${ZLIB_LIBRARIES})
129+
#target_link_libraries(tmx-loader pugi ${SFML_LIBRARIES} ${SFML_DEPENDENCIES} ${ZLIB_LIBRARIES})
130+
target_link_libraries(tmx-loader pugi ${SFML_LIBRARIES} ${SFML_DEPENDENCIES})
129131

130132
# Adjust the output file prefix/suffix to match our conventions
131133
if(BUILD_SHARED_LIBS)
@@ -171,28 +173,28 @@ install(DIRECTORY include DESTINATION .)
171173
# Build and install the examples
172174
if(TMX_BUILD_EXAMPLE)
173175
add_executable(BenchMark examples/Benchmark.cpp)
174-
target_link_libraries(BenchMark ${PROJECT_NAME} pugi ${SFML_LIBRARIES} ${SFML_DEPENDENCIES} ${ZLIB_LIBRARIES})
176+
target_link_libraries(BenchMark ${PROJECT_NAME} pugi ${SFML_LIBRARIES} ${SFML_DEPENDENCIES})
175177
install(TARGETS BenchMark RUNTIME DESTINATION share/tmx/examples)
176178

177179
add_executable(DrawWithDebug examples/DrawMapWithDebug.cpp)
178-
target_link_libraries(DrawWithDebug ${PROJECT_NAME} pugi ${SFML_LIBRARIES} ${SFML_DEPENDENCIES} ${ZLIB_LIBRARIES})
180+
target_link_libraries(DrawWithDebug ${PROJECT_NAME} pugi ${SFML_LIBRARIES} ${SFML_DEPENDENCIES})
179181
install(TARGETS DrawWithDebug RUNTIME DESTINATION share/tmx/examples)
180182

181183
add_executable(Isometric examples/IsometricWithConvertCoords.cpp)
182-
target_link_libraries(Isometric ${PROJECT_NAME} pugi ${SFML_LIBRARIES} ${SFML_DEPENDENCIES} ${ZLIB_LIBRARIES})
184+
target_link_libraries(Isometric ${PROJECT_NAME} pugi ${SFML_LIBRARIES} ${SFML_DEPENDENCIES})
183185
install(TARGETS Isometric RUNTIME DESTINATION share/tmx/examples)
184186

185187
add_executable(QuadTree examples/MapWithQuadTree.cpp)
186-
target_link_libraries(QuadTree ${PROJECT_NAME} pugi ${SFML_LIBRARIES} ${SFML_DEPENDENCIES} ${ZLIB_LIBRARIES})
188+
target_link_libraries(QuadTree ${PROJECT_NAME} pugi ${SFML_LIBRARIES} ${SFML_DEPENDENCIES})
187189
install(TARGETS QuadTree RUNTIME DESTINATION share/tmx/examples)
188190

189191
add_executable(ShaderEffects examples/ShaderEffects.cpp)
190-
target_link_libraries(ShaderEffects ${PROJECT_NAME} pugi ${SFML_LIBRARIES} ${SFML_DEPENDENCIES} ${ZLIB_LIBRARIES})
192+
target_link_libraries(ShaderEffects ${PROJECT_NAME} pugi ${SFML_LIBRARIES} ${SFML_DEPENDENCIES})
191193
install(TARGETS ShaderEffects RUNTIME DESTINATION share/tmx/examples)
192194

193195
if(BOX2D_FOUND)
194196
add_executable(Box2D examples/Box2D.cpp src/tmx2box2d.cpp)
195-
target_link_libraries(Box2D ${PROJECT_NAME} pugi ${SFML_LIBRARIES} ${SFML_DEPENDENCIES} ${ZLIB_LIBRARIES} ${BOX2D_LIBRARIES})
197+
target_link_libraries(Box2D ${PROJECT_NAME} pugi ${SFML_LIBRARIES} ${SFML_DEPENDENCIES} ${BOX2D_LIBRARIES})
196198
install(TARGETS Box2D RUNTIME DESTINATION share/tmx/examples)
197199
endif()
198200

build/VS2013/Example.vcxproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@
8989
</ClCompile>
9090
<Link>
9191
<AdditionalLibraryDirectories>$(SolutionDir)$(Configuration)\Shared\;extlibs/bin</AdditionalLibraryDirectories>
92-
<AdditionalDependencies>tmxsfml-d.lib;Box2D-d.lib;sfml-graphics-d.lib;sfml-system-d.lib;sfml-window-d.lib;zlibstat.lib;%(AdditionalDependencies)</AdditionalDependencies>
92+
<AdditionalDependencies>tmxsfml-d.lib;Box2D-d.lib;sfml-graphics-d.lib;sfml-system-d.lib;sfml-window-d.lib;%(AdditionalDependencies)</AdditionalDependencies>
9393
<GenerateDebugInformation>true</GenerateDebugInformation>
9494
</Link>
9595
</ItemDefinitionGroup>
@@ -113,7 +113,7 @@
113113
<EnableCOMDATFolding>true</EnableCOMDATFolding>
114114
<OptimizeReferences>true</OptimizeReferences>
115115
<AdditionalLibraryDirectories>$(SolutionDir)$(Configuration)\Static\;extlibs/bin</AdditionalLibraryDirectories>
116-
<AdditionalDependencies>Box2D.lib;zlibstat.lib;tmxsfml-s.lib;sfml-system.lib;sfml-graphics.lib;sfml-window.lib;%(AdditionalDependencies)</AdditionalDependencies>
116+
<AdditionalDependencies>Box2D.lib;tmxsfml-s.lib;sfml-system.lib;sfml-graphics.lib;sfml-window.lib;%(AdditionalDependencies)</AdditionalDependencies>
117117
<GenerateDebugInformation>true</GenerateDebugInformation>
118118
</Link>
119119
</ItemDefinitionGroup>

build/VS2013/tmxsfml-s.vcxproj

+1
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@
105105
<ClCompile Include="..\..\src\MapLoaderPrivate.cpp" />
106106
<ClCompile Include="..\..\src\MapLoaderPublic.cpp" />
107107
<ClCompile Include="..\..\src\MapObject.cpp" />
108+
<ClCompile Include="..\..\src\miniz.c" />
108109
<ClCompile Include="..\..\src\pugixml\pugixml.cpp" />
109110
<ClCompile Include="..\..\src\QuadTreeNode.cpp" />
110111
<ClCompile Include="..\..\src\tmx2box2d.cpp" />

build/VS2013/tmxsfml-s.vcxproj.filters

+3
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
<ClCompile Include="..\..\src\Log.cpp">
2929
<Filter>Source Files</Filter>
3030
</ClCompile>
31+
<ClCompile Include="..\..\src\miniz.c">
32+
<Filter>Source Files</Filter>
33+
</ClCompile>
3134
</ItemGroup>
3235
<ItemGroup>
3336
<ClInclude Include="..\..\include\tmx\tmx2box2d.hpp">

build/VS2013/tmxsfml.vcxproj

+3-1
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@
8585
<EnableCOMDATFolding>true</EnableCOMDATFolding>
8686
<OptimizeReferences>true</OptimizeReferences>
8787
<AdditionalLibraryDirectories>extlibs/bin</AdditionalLibraryDirectories>
88-
<AdditionalDependencies>Box2D.lib;sfml-graphics.lib;sfml-system.lib;sfml-window.lib;zlibstat.lib;%(AdditionalDependencies)</AdditionalDependencies>
88+
<AdditionalDependencies>Box2D.lib;sfml-graphics.lib;sfml-system.lib;sfml-window.lib;%(AdditionalDependencies)</AdditionalDependencies>
8989
</Link>
9090
<Lib>
9191
<AdditionalLibraryDirectories>extlibs/bin</AdditionalLibraryDirectories>
@@ -101,6 +101,7 @@
101101
<ClInclude Include="..\..\include\tmx\MapObject.hpp" />
102102
<ClInclude Include="..\..\include\tmx\QuadTreeNode.hpp" />
103103
<ClInclude Include="..\..\include\tmx\tmx2box2d.hpp" />
104+
<ClInclude Include="..\..\src\miniz.h" />
104105
</ItemGroup>
105106
<ItemGroup>
106107
<ClCompile Include="..\..\src\DebugShape.cpp" />
@@ -109,6 +110,7 @@
109110
<ClCompile Include="..\..\src\MapLoaderPrivate.cpp" />
110111
<ClCompile Include="..\..\src\MapLoaderPublic.cpp" />
111112
<ClCompile Include="..\..\src\MapObject.cpp" />
113+
<ClCompile Include="..\..\src\miniz.c" />
112114
<ClCompile Include="..\..\src\pugixml\pugixml.cpp" />
113115
<ClCompile Include="..\..\src\QuadTreeNode.cpp" />
114116
<ClCompile Include="..\..\src\tmx2box2d.cpp" />

build/VS2013/tmxsfml.vcxproj.filters

+6
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,9 @@
2828
<ClCompile Include="..\..\src\Log.cpp">
2929
<Filter>Source Files</Filter>
3030
</ClCompile>
31+
<ClCompile Include="..\..\src\miniz.c">
32+
<Filter>Source Files</Filter>
33+
</ClCompile>
3134
</ItemGroup>
3235
<ItemGroup>
3336
<ClInclude Include="..\..\include\tmx\DebugShape.hpp">
@@ -57,6 +60,9 @@
5760
<ClInclude Include="..\..\include\tmx\Export.hpp">
5861
<Filter>Header Files</Filter>
5962
</ClInclude>
63+
<ClInclude Include="..\..\src\miniz.h">
64+
<Filter>Header Files</Filter>
65+
</ClInclude>
6066
</ItemGroup>
6167
<ItemGroup>
6268
<Filter Include="Header Files">

include/tmx/Export.hpp

+6
Original file line numberDiff line numberDiff line change
@@ -65,4 +65,10 @@ source distribution.
6565

6666
#endif //TMX_STATIC
6767

68+
//TODO if linking the source directly to a project in visual studio
69+
//use this to supress a warning about export symbols no a non-exported project
70+
//#ifdef _MSC_VER
71+
//#pragma warning(disable: 4275)
72+
//#endif //_MSC_VER
73+
6874
#endif //TMX_EXPORT_HPP_

src/MapLayer.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ LayerSet::LayerSet(const sf::Texture& texture, sf::Uint8 patchSize, const sf::Ve
7676
m_patchSize (patchSize),
7777
m_mapSize (mapSize),
7878
m_tileSize (tileSize),
79-
m_patchCount(std::ceil(static_cast<float>(mapSize.x) / patchSize), std::ceil(static_cast<float>(mapSize.y) / patchSize)),
79+
m_patchCount(static_cast<sf::Uint32>(std::ceil(static_cast<float>(mapSize.x) / patchSize)), static_cast<sf::Uint32>(std::ceil(static_cast<float>(mapSize.y) / patchSize))),
8080
m_visible (true)
8181
{
8282
m_patches.resize(m_patchCount.x * m_patchCount.y);

src/MapLoaderPrivate.cpp

+4-10
Original file line numberDiff line numberDiff line change
@@ -29,19 +29,13 @@ it freely, subject to the following restrictions:
2929
#include <tmx/MapLoader.hpp>
3030
#include <tmx/Log.hpp>
3131

32-
//this is needed on windows to prevent unresolved external errors
33-
//alternatively define this in the zlib project before compiling the zlib library
34-
#ifdef _WIN32
35-
#ifndef ZLIB_WINAPI
36-
#define ZLIB_WINAPI
37-
#endif //ZLIB_WINAPI
38-
#endif //_WIN32
39-
#include <zlib.h>
32+
#include "miniz.h"
4033

4134
#ifdef _MSC_VER
4235
#ifdef LoadImage
4336
#undef LoadImage
4437
#endif //Loadimage
38+
#pragma warning(disable: 4800) //forcing int to bool warning
4539
#endif //_MSC_VER
4640

4741
#include <cstring>
@@ -1139,9 +1133,9 @@ bool MapLoader::decompress(const char* source, std::vector<unsigned char>& dest,
11391133
stream.next_out = (Bytef*)byteArray.data();
11401134
stream.avail_out = expectedSize;
11411135

1142-
if(inflateInit2(&stream, 15 + 32) != Z_OK)
1136+
if(inflateInit(&stream/*, 15 + 32*/) != Z_OK)
11431137
{
1144-
LOG("inflate 2 failed", Logger::Type::Error);
1138+
LOG("inflate init failed", Logger::Type::Error);
11451139
return false;
11461140
}
11471141

0 commit comments

Comments
 (0)