diff --git a/CMakeLists.txt b/CMakeLists.txt index 6859f4d..2ea7773 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,8 @@ cmake_minimum_required(VERSION 3.14) -project(libXISF VERSION 0.2.1 LANGUAGES CXX C) +project(libXISF VERSION 0.2.3 LANGUAGES CXX C) + +include(CMakeDependentOption) set(CMAKE_INCLUDE_CURRENT_DIR ON) set(CMAKE_CXX_STANDARD 17) @@ -9,39 +11,53 @@ set(CMAKE_C_VISIBILITY_PRESET hidden) set(CMAKE_CXX_VISIBILITY_PRESET hidden) option(BUILD_SHARED_LIBS "Build using shared libraries" ON) -option(USE_BUNDLED_LIBS "Use bundled LZ4 PugiXML and Zlib" ON) +option(USE_BUNDLED_LIBS "Use bundled LZ4 PugiXML and Zlib. You can still exclude some" ON) +cmake_dependent_option(USE_BUNDLED_LZ4 "Use bundled LZ4" ON "USE_BUNDLED_LIBS" OFF) +cmake_dependent_option(USE_BUNDLED_PUGIXML "Use bundled PugiXML" ON "USE_BUNDLED_LIBS" OFF) +cmake_dependent_option(USE_BUNDLED_ZLIB "Use bundled Zlib" ON "USE_BUNDLED_LIBS" OFF) -if(USE_BUNDLED_LIBS) -set(THIRD_PARTY_SRC - lz4/lz4.c - lz4/lz4.h - lz4/lz4hc.c - lz4/lz4hc.h - pugixml/pugixml.cpp - zlib/adler32.c - zlib/compress.c - zlib/crc32.c - zlib/deflate.c - zlib/gzclose.c - zlib/gzlib.c - zlib/gzread.c - zlib/gzwrite.c - zlib/inflate.c - zlib/infback.c - zlib/inftrees.c - zlib/inffast.c - zlib/trees.c - zlib/uncompr.c - zlib/zutil.c) +find_package(PkgConfig REQUIRED) + +if(USE_BUNDLED_LZ4) + list(APPEND THIRD_PARTY_SRC + lz4/lz4.c + lz4/lz4.h + lz4/lz4hc.c + lz4/lz4hc.h) + list(APPEND THIRD_PARTY_INCLUDE lz4) +else(USE_BUNDLED_LZ4) + pkg_check_modules(LZ4 liblz4 IMPORTED_TARGET REQUIRED) +endif(USE_BUNDLED_LZ4) +if(USE_BUNDLED_PUGIXML) + list(APPEND THIRD_PARTY_SRC pugixml/pugixml.cpp) + list(APPEND THIRD_PARTY_INCLUDE pugixml) +else(USE_BUNDLED_PUGIXML) + pkg_check_modules(PUGIXML pugixml IMPORTED_TARGET REQUIRED) +endif(USE_BUNDLED_PUGIXML) +if(USE_BUNDLED_ZLIB) + list(APPEND THIRD_PARTY_SRC + zlib/adler32.c + zlib/compress.c + zlib/crc32.c + zlib/deflate.c + zlib/gzclose.c + zlib/gzlib.c + zlib/gzread.c + zlib/gzwrite.c + zlib/inflate.c + zlib/infback.c + zlib/inftrees.c + zlib/inffast.c + zlib/trees.c + zlib/uncompr.c + zlib/zutil.c) set(ZLIB_PC ${CMAKE_CURRENT_BINARY_DIR}/zlib.pc) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/zlib/zlib.pc.cmakein ${ZLIB_PC} @ONLY) configure_file(${CMAKE_CURRENT_SOURCE_DIR}/zlib/zconf.h.cmakein ${CMAKE_CURRENT_BINARY_DIR}/zconf.h @ONLY) -else(USE_BUNDLED_LIBS) - find_package(PkgConfig REQUIRED) - pkg_check_modules(LZ4 liblz4 IMPORTED_TARGET REQUIRED) - pkg_check_modules(PUGIXML pugixml IMPORTED_TARGET REQUIRED) + list(APPEND THIRD_PARTY_INCLUDE zlib) +else(USE_BUNDLED_ZLIB) pkg_check_modules(ZLIB zlib IMPORTED_TARGET REQUIRED) -endif(USE_BUNDLED_LIBS) +endif(USE_BUNDLED_ZLIB) add_library(XISF bytearray.cpp @@ -54,7 +70,16 @@ add_library(XISF ) if(USE_BUNDLED_LIBS) - target_include_directories(XISF PRIVATE lz4 pugixml zlib) + target_include_directories(XISF PRIVATE ${THIRD_PARTY_INCLUDE}) + if(NOT USE_BUNDLED_LZ4) + target_link_libraries(XISF PUBLIC PkgConfig::LZ4) + endif(NOT USE_BUNDLED_LZ4) + if(NOT USE_BUNDLED_PUGIXML) + target_link_libraries(XISF PUBLIC PkgConfig::PUGIXML) + endif(NOT USE_BUNDLED_PUGIXML) + if(NOT USE_BUNDLED_ZLIB) + target_link_libraries(XISF PUBLIC PkgConfig::ZLIB) + endif(NOT USE_BUNDLED_ZLIB) else(USE_BUNDLED_LIBS) target_link_libraries(XISF PUBLIC PkgConfig::LZ4 PkgConfig::PUGIXML PkgConfig::ZLIB) endif(USE_BUNDLED_LIBS) diff --git a/debian/changelog b/debian/changelog index f8e82fc..142cb7f 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,10 @@ -libxisf (0.2.0-ubuntu2) UNRELEASED; urgency=medium +libxisf (0.2.3-ubuntu1) focal; urgency=medium + + * Fix Color filter array + + -- DuĊĦan Poizl Tue, 11 Apr 2023 12:39:41 +0200 + +libxisf (0.2.0-ubuntu2) focal; urgency=medium * Fix lintian errors diff --git a/debian/rules b/debian/rules old mode 100755 new mode 100644 diff --git a/debian/source/format b/debian/source/format deleted file mode 100644 index 163aaf8..0000000 --- a/debian/source/format +++ /dev/null @@ -1 +0,0 @@ -3.0 (quilt) diff --git a/libxisf.cpp b/libxisf.cpp index 8d45289..6eed958 100644 --- a/libxisf.cpp +++ b/libxisf.cpp @@ -912,7 +912,7 @@ void XISFWriterPrivate::writeImageElement(pugi::xml_node &node, const Image &ima if(image._cfa.width && image._cfa.height) { - pugi::xml_node cfa_node = node.append_child("ColorFilterArray"); + pugi::xml_node cfa_node = image_node.append_child("ColorFilterArray"); cfa_node.append_attribute("pattern").set_value(image._cfa.pattern.c_str()); cfa_node.append_attribute("width").set_value(image._cfa.width); cfa_node.append_attribute("height").set_value(image._cfa.height);