blob: 2036bf59625434636eeeb5f9ab310a25f12554bc [file] [log] [blame] [edit]
From 7554e4d34e7000b0595aa606e7d72357cf46ba86 Mon Sep 17 00:00:00 2001
From: Joergen Ibsen <jibz-git@stdip.com>
Date: Sat, 30 May 2015 15:21:51 +0200
Subject: [PATCH] Add CMake script
---
CMakeLists.txt | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 88 insertions(+)
create mode 100644 CMakeLists.txt
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..b37987d
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,88 @@
+cmake_minimum_required(VERSION 2.8)
+
+project(Zopfli)
+
+option(BUILD_SHARED_LIBS "Build Zopfli with shared libraries" OFF)
+
+if(NOT CMAKE_BUILD_TYPE)
+ set(CMAKE_BUILD_TYPE Release)
+endif()
+
+if(MSVC)
+ add_definitions(/D_CRT_SECURE_NO_WARNINGS)
+endif()
+
+set(zopflilib_src
+ src/zopfli/blocksplitter.c
+ src/zopfli/cache.c
+ src/zopfli/deflate.c
+ src/zopfli/gzip_container.c
+ src/zopfli/hash.c
+ src/zopfli/katajainen.c
+ src/zopfli/lz77.c
+ src/zopfli/squeeze.c
+ src/zopfli/tree.c
+ src/zopfli/util.c
+ src/zopfli/zlib_container.c
+ src/zopfli/zopfli_lib.c
+)
+
+set(zopflipnglib_src
+ src/zopflipng/zopflipng_lib.cc
+)
+
+set (lodepng_src
+ src/zopflipng/lodepng/lodepng.cpp
+ src/zopflipng/lodepng/lodepng_util.cpp
+)
+
+#
+# libzopfli object files shared by both libraries
+#
+add_library(zopflilib_obj OBJECT
+ ${zopflilib_src}
+)
+if(BUILD_SHARED_LIBS)
+ set_property(TARGET zopflilib_obj PROPERTY POSITION_INDEPENDENT_CODE ON)
+endif()
+
+#
+# libzopfli
+#
+add_library(libzopfli
+ $<TARGET_OBJECTS:zopflilib_obj>
+)
+set_target_properties(libzopfli PROPERTIES
+ OUTPUT_NAME zopfli
+ VERSION 1.0.1
+ SOVERSION 1
+)
+if(UNIX)
+ target_link_libraries(libzopfli m)
+endif()
+
+#
+# libzopflipng
+#
+add_library(libzopflipng
+ ${zopflipnglib_src}
+ ${lodepng_src}
+ $<TARGET_OBJECTS:zopflilib_obj>
+)
+set_target_properties(libzopflipng PROPERTIES
+ OUTPUT_NAME zopflipng
+ VERSION 1.0.0
+ SOVERSION 1
+)
+
+#
+# zopfli
+#
+add_executable(zopfli src/zopfli/zopfli_bin.c)
+target_link_libraries(zopfli libzopfli)
+
+#
+# zopflipng
+#
+add_executable(zopflipng src/zopflipng/zopflipng_bin.cc)
+target_link_libraries(zopflipng libzopflipng)