diff options
author | Lode Vandevenne <lvandeve@users.noreply.github.com> | 2018-08-10 13:42:32 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-10 13:42:32 +0200 |
commit | 9f3a635f3bdb6bc4a7545e82443c8c2bb48f788c (patch) | |
tree | fde4e65b746c1a52e5cfaad60841d93e66c1c95d | |
parent | ae43a8b73827577c4b19b005b6eed81f5cf9bbac (diff) | |
parent | 7554e4d34e7000b0595aa606e7d72357cf46ba86 (diff) | |
download | zopfli-9f3a635f3bdb6bc4a7545e82443c8c2bb48f788c.tar.gz |
Merge pull request #58 from jibsen/cmake-build
Add CMake script
-rw-r--r-- | CMakeLists.txt | 88 |
1 files changed, 88 insertions, 0 deletions
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) |