aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoergen Ibsen <ji@ibse.dk>2018-08-31 07:43:53 +0200
committerJoergen Ibsen <ji@ibse.dk>2018-08-31 07:43:53 +0200
commit8856e5dfcbf647ef048934cc86a6cb2591270a13 (patch)
tree018ccdfd19d532ba7cbefb22e006da5278a1f47e
parentb97dd0e95c92c416352fd7c2bf5b849fe2f75900 (diff)
downloadzopfli-8856e5dfcbf647ef048934cc86a6cb2591270a13.tar.gz
Link libzopflipng with libzopfli
Avoids duplicating the zopfli code and simplifies the build a bit. Also move source file listings to the respective add_library and add_executable calls so we don't have extra variables.
-rw-r--r--CMakeLists.txt44
1 files changed, 13 insertions, 31 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 6cfe061..5505eba 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -57,7 +57,10 @@ else()
set(zopfli_library_type STATIC)
endif()
-set(zopflilib_src
+#
+# libzopfli
+#
+add_library(libzopfli ${zopfli_library_type}
src/zopfli/blocksplitter.c
src/zopfli/cache.c
src/zopfli/deflate.c
@@ -71,33 +74,9 @@ set(zopflilib_src
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(ZOPFLI_BUILD_SHARED)
- set_property(TARGET zopflilib_obj PROPERTY POSITION_INDEPENDENT_CODE ON)
-endif()
-
-#
-# libzopfli
-#
-add_library(libzopfli ${zopfli_library_type}
- $<TARGET_OBJECTS:zopflilib_obj>
+target_include_directories(libzopfli
+ INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/zopfli>
)
-target_include_directories(libzopfli INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/src/zopfli")
set_target_properties(libzopfli PROPERTIES
OUTPUT_NAME zopfli
VERSION ${ZOPFLI_VERSION}
@@ -111,11 +90,14 @@ endif()
# libzopflipng
#
add_library(libzopflipng ${zopfli_library_type}
- ${zopflipnglib_src}
- ${lodepng_src}
- $<TARGET_OBJECTS:zopflilib_obj>
+ src/zopflipng/zopflipng_lib.cc
+ src/zopflipng/lodepng/lodepng.cpp
+ src/zopflipng/lodepng/lodepng_util.cpp
+)
+target_link_libraries(libzopflipng libzopfli)
+target_include_directories(libzopflipng
+ INTERFACE $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/src/zopflipng>
)
-target_include_directories(libzopflipng INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}/src/zopflipng")
set_target_properties(libzopflipng PROPERTIES
OUTPUT_NAME zopflipng
VERSION ${ZOPFLI_VERSION}