summaryrefslogtreecommitdiff
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt29
1 files changed, 21 insertions, 8 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2cde676fca..9fc6bf1122 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -2,9 +2,15 @@ cmake_minimum_required(VERSION 3.0)
project(libnbt++
VERSION 2.3)
-include(GenerateExportHeader)
+# supported configure options
+option(NBT_BUILD_SHARED "Build shared libraries" OFF)
+option(NBT_USE_ZLIB "Build additional zlib stream functionality" ON)
+option(NBT_BUILD_TESTS "Build the unit tests. Requires CxxTest." ON)
+
+# hide this from includers.
+set(BUILD_SHARED_LIBS ${NBT_BUILD_SHARED})
-find_package(ZLIB REQUIRED)
+include(GenerateExportHeader)
set(NBT_SOURCES
src/endian_str.cpp
@@ -16,26 +22,33 @@ set(NBT_SOURCES
src/value.cpp
src/value_initializer.cpp
- src/io/izlibstream.cpp
- src/io/ozlibstream.cpp
src/io/stream_reader.cpp
src/io/stream_writer.cpp
src/text/json_formatter.cpp)
+set(NBT_SOURCES_Z
+ src/io/izlibstream.cpp
+ src/io/ozlibstream.cpp)
+
+if(NBT_USE_ZLIB)
+ find_package(ZLIB REQUIRED)
+ list(APPEND NBT_SOURCES ${NBT_SOURCES_Z})
+ add_definitions("-DNBT_HAVE_ZLIB")
+endif()
+
add_library(nbt++ ${NBT_SOURCES})
target_include_directories(nbt++ PUBLIC include ${CMAKE_CURRENT_BINARY_DIR})
-target_link_libraries(nbt++ z)
+if(NBT_USE_ZLIB)
+ target_link_libraries(nbt++ z)
+endif()
target_compile_options(nbt++ PUBLIC -std=c++11)
generate_export_header(nbt++ BASE_NAME nbt)
set_target_properties(nbt++ PROPERTIES
CXX_VISIBILITY_PRESET hidden
VISIBILITY_INLINES_HIDDEN 1)
-option(BUILD_SHARED_LIBS "Build shared libraries" OFF)
-option(NBT_BUILD_TESTS "Build the unit tests. Requires CxxTest." ON)
-
if(NBT_BUILD_TESTS)
enable_testing()
add_subdirectory(test)