diff options
Diffstat (limited to 'CMakeLists.txt')
| -rw-r--r-- | CMakeLists.txt | 29 |
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) |
