Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ae46f09edf | |||
| ad50c5e323 | |||
| 164183f348 | |||
| c74a67184c | |||
| 77b83e4832 | |||
| e2d3c878c4 | |||
| 3b3d472149 | |||
| 8f8cc94ddb | |||
| bf20f8eb9c | |||
| dd66850fdf | |||
| 83f12a434c | |||
| 43533aa363 |
+59
-32
@@ -1,6 +1,8 @@
|
||||
cmake_minimum_required(VERSION 3.14)
|
||||
|
||||
project(libXISF VERSION 0.2.0 LANGUAGES CXX C)
|
||||
project(libXISF VERSION 0.2.2 LANGUAGES CXX C)
|
||||
|
||||
include(CMakeDependentOption)
|
||||
|
||||
set(CMAKE_INCLUDE_CURRENT_DIR ON)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
@@ -9,38 +11,54 @@ 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)
|
||||
|
||||
find_package(PkgConfig REQUIRED)
|
||||
|
||||
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)
|
||||
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)
|
||||
pkg_check_modules(ZLIB zlib IMPORTED_TARGET 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)
|
||||
list(APPEND THIRD_PARTY_INCLUDE zlib)
|
||||
else(USE_BUNDLED_ZLIB)
|
||||
pkg_check_modules(ZLIB zlib IMPORTED_TARGET REQUIRED)
|
||||
endif(USE_BUNDLED_ZLIB)
|
||||
endif(USE_BUNDLED_LIBS)
|
||||
|
||||
add_library(XISF
|
||||
@@ -54,7 +72,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)
|
||||
|
||||
@@ -3,4 +3,15 @@ LibXISF
|
||||
|
||||
LibXISF is C++ library that can read and write XISF files produced by [PixInsight](https://pixinsight.com/).
|
||||
It implement [XISF 1.0 specification](https://pixinsight.com/doc/docs/XISF-1.0-spec/XISF-1.0-spec.html).
|
||||
It is licensed under GPLv3. To compile you will need C++17 compiler.
|
||||
It is licensed under GPLv3 or later. To compile you will need C++17 compiler.
|
||||
|
||||
To compile simply run these commands
|
||||
```
|
||||
cmake -B build -S .
|
||||
cmake --build build --parallel
|
||||
cmake --install .
|
||||
```
|
||||
|
||||
By default it use bundled libraries. If you wish to use external libraries you will may add
|
||||
`-DUSE_BUNDLED_LIBS=Off` to first command. Then you will need *lz4 pkg-config pugixml zlib* installed.
|
||||
You may also specify `-DBUILD_SHARED_LIBS=Off` if you want build static lib.
|
||||
|
||||
@@ -1,3 +1,21 @@
|
||||
/************************************************************************
|
||||
* LibXISF - library to load and save XISF files *
|
||||
* Copyright (C) 2023 Dušan Poizl *
|
||||
* *
|
||||
* This program is free software: you can redistribute it and/or modify *
|
||||
* it under the terms of the GNU General Public License as published by *
|
||||
* the Free Software Foundation, either version 3 of the License, or *
|
||||
* (at your option) any later version. *
|
||||
* *
|
||||
* This program is distributed in the hope that it will be useful, *
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
||||
* GNU General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU General Public License *
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.*
|
||||
************************************************************************/
|
||||
|
||||
#include "libxisf.h"
|
||||
|
||||
namespace LibXISF
|
||||
|
||||
Vendored
-29
@@ -1,29 +0,0 @@
|
||||
libxisf (0.2.0-ubuntu1) focal; urgency=medium
|
||||
|
||||
* Rewrite to remove Qt as dependency
|
||||
|
||||
-- Dušan Poizl <nou@nouspiro.space> Fri, 10 Mar 2023 22:10:01 +0100
|
||||
|
||||
libxisf (0.1.3-ubuntu1) focal; urgency=medium
|
||||
|
||||
* Write missing pixelStorage attribute
|
||||
|
||||
-- Dušan Poizl <nou@nouspiro.space> Fri, 17 Feb 2023 16:57:30 +0100
|
||||
|
||||
libxisf (0.1.2-ubuntu1) focal; urgency=medium
|
||||
|
||||
* Add qtbase5-dev as dependency to libxisf-dev
|
||||
|
||||
-- Dušan Poizl <nou@nouspiro.space> Thu, 09 Feb 2023 21:28:45 +0100
|
||||
|
||||
libxisf (0.1.1-ubuntu1) focal; urgency=medium
|
||||
|
||||
* Fixed packaging
|
||||
|
||||
-- Dušan Poizl <nou@nouspiro.space> Wed, 08 Feb 2023 18:57:50 +0100
|
||||
|
||||
libxisf (0.1.0-ubuntu1) focal; urgency=low
|
||||
|
||||
* Initial release.
|
||||
|
||||
-- Dušan Poizl <nou@nouspiro.space> Tue, 07 Feb 2023 10:47:08 +0100
|
||||
Vendored
-1
@@ -1 +0,0 @@
|
||||
10
|
||||
Vendored
-25
@@ -1,25 +0,0 @@
|
||||
Source: libxisf
|
||||
Priority: optional
|
||||
Maintainer: Dušan Poizl <nou@nouspiro.space>
|
||||
Build-Depends: debhelper (>= 9),
|
||||
cdbs,
|
||||
cmake,
|
||||
Standards-Version: 4.5.0
|
||||
Section: libs
|
||||
Homepage: https://gitea.nouspiro.space/nou/libXISF
|
||||
Vcs-Git: https://gitea.nouspiro.space/nou/libXISF.git
|
||||
|
||||
Package: libxisf-dev
|
||||
Section: libdevel
|
||||
Architecture: any
|
||||
Multi-Arch: same
|
||||
Depends: libxisf (= ${binary:Version}), ${misc:Depends}, qtbase5-dev
|
||||
Description: Library to load and save XISF images
|
||||
Native format of PixInsight astroprocessing suite
|
||||
|
||||
Package: libxisf
|
||||
Architecture: any
|
||||
Multi-Arch: same
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Description: Library to load and save XISF images
|
||||
Native format of PixInsight astroprocessing suite
|
||||
Vendored
-52
@@ -1,52 +0,0 @@
|
||||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: libxisf
|
||||
Source: https://gitea.nouspiro.space/nou/libXISF
|
||||
|
||||
Files: * debian/*
|
||||
Copyright: (c) 2023 <Dušan Poizl nou@nouspiro.space>
|
||||
License: GPL-3+
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
.
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
.
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
.
|
||||
On Debian systems, the complete texts of the GNU General Public Licenses
|
||||
version 2 and 3 can be found in '/usr/share/common-licenses/GPL-2' and
|
||||
'/usr/share/common-licenses/GPL-3'.
|
||||
|
||||
Files: lz4/*
|
||||
Copyright: (c) 2011-2020, Yann Collet
|
||||
License: BSD-2-clause
|
||||
LZ4 Library
|
||||
Copyright (c) 2011-2020, Yann Collet
|
||||
All rights reserved.
|
||||
.
|
||||
Redistribution and use in source and binary forms, with or without modification,
|
||||
are permitted provided that the following conditions are met:
|
||||
.
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
.
|
||||
* Redistributions in binary form must reproduce the above copyright notice, this
|
||||
list of conditions and the following disclaimer in the documentation and/or
|
||||
other materials provided with the distribution.
|
||||
.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR
|
||||
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Vendored
-2
@@ -1,2 +0,0 @@
|
||||
usr/include
|
||||
usr/lib/*/*.so
|
||||
Vendored
-1
@@ -1 +0,0 @@
|
||||
usr/lib/*/*.so.*
|
||||
Vendored
-10
@@ -1,10 +0,0 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
#!/usr/bin/make -f
|
||||
|
||||
include /usr/share/cdbs/1/rules/debhelper.mk
|
||||
include /usr/share/cdbs/1/class/cmake.mk
|
||||
|
||||
export CFLAGS := $(shell dpkg-buildflags --get CFLAGS)
|
||||
export CXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS)
|
||||
export LDFLAGS := $(shell dpkg-buildflags --get LDFLAGS)
|
||||
Vendored
-1
@@ -1 +0,0 @@
|
||||
3.0 (quilt)
|
||||
@@ -0,0 +1,24 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2006-2022 Arseny Kapoulkine
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
||||
+9
-2
@@ -54,7 +54,7 @@ int main(int argc, char **argv)
|
||||
m(0, 2) = 2;
|
||||
m(1, 0) = 10;
|
||||
image.addProperty(Property("UI16Matrix", m));
|
||||
std::tm tm = {12, 22, 23, 1, 2, 2023, 0, 0, 0, 0, 0};
|
||||
std::tm tm = {12, 22, 23, 1, 2, 2023, 0, 0, 0};
|
||||
image.addProperty(Property("TimeObs", tm));
|
||||
image.addFITSKeyword({"RA", "226.9751163116387", "Right ascension of the center of the image (deg)"});
|
||||
image.addFITSKeyword({"DEC", "62.02302376908295", "Declination of the center of the image (deg)"});
|
||||
@@ -94,7 +94,14 @@ int main(int argc, char **argv)
|
||||
TEST(image.height() != 10, "Invalid height");
|
||||
TEST(image.colorSpace() != LibXISF::Image::Gray, "Invalid color space");
|
||||
TEST(image.pixelStorage() != LibXISF::Image::Planar, "Invalid pixel storage");
|
||||
TEST(image.compression() != LibXISF::DataBlock::None, "Invalid compression codec");
|
||||
if(std::strstr(argv[1], "lz4"))
|
||||
{
|
||||
TEST(image.compression() != LibXISF::DataBlock::LZ4, "Invalid compression codec");
|
||||
}
|
||||
else
|
||||
{
|
||||
TEST(image.compression() != LibXISF::DataBlock::None, "Invalid compression codec");
|
||||
}
|
||||
//TEST(!image.dataBlock.embedded, "Not embedded");
|
||||
TEST(image.imageDataSize() != 80*2, "Invalid data size");
|
||||
}
|
||||
|
||||
+2
-1
@@ -21,8 +21,9 @@
|
||||
#include <map>
|
||||
#include <regex>
|
||||
#include <iomanip>
|
||||
#include <sstream>
|
||||
#include "libxisf.h"
|
||||
#include "pugixml/pugixml.hpp"
|
||||
#include <pugixml.hpp>
|
||||
|
||||
namespace LibXISF
|
||||
{
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user