diff --git a/.gitignore b/.gitignore
index 0281d8d..c19dbbc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1 +1,5 @@
/XEphem-b7bfc6eb31464287b5d65cb3f1e36d7dbf3dd381.tar.gz
+/XEphem-0a1b50503bdf202fb6fa7ca62124b0242a004e69.tar.gz
+/XEphem-a2da14bfc6727b1255df6f31ac4ce89d4bd881c8.tar.gz
+/XEphem-4.2.0.tar.gz
+/XEphem-4.3.0.tar.gz
diff --git a/io.github.xephem.desktop b/io.github.xephem.desktop
index ead1716..d959653 100644
--- a/io.github.xephem.desktop
+++ b/io.github.xephem.desktop
@@ -4,6 +4,6 @@ Type=Application
Name=XEphem
GenericName=Astronomical ephemeris calculator
Exec=xephem
-Icon=XEphem
+Icon=xephem
Terminal=false
Categories=Science;Astronomy
diff --git a/io.github.xephem.metainfo.xml b/io.github.xephem.metainfo.xml
new file mode 100644
index 0000000..c92ede4
--- /dev/null
+++ b/io.github.xephem.metainfo.xml
@@ -0,0 +1,53 @@
+
+
+
+ io.github.xephem.desktop
+ XEphem
+ XEphem
+ Interactive astronomical ephemeris software
+ Software interactivo de efemérides astronómicas
+ MIT
+ MIT
+
+
+
+ - XEphem is an interactive astronomy program for all UNIX platforms, written and maintained by _Elwood Downey_ over more than thirty years 1990–2021 and now generously released under the MIT License.
+ - XEphem can compute information on demand or time can be set to increment automatically. In this way a series of computations and movies can be generated.
+
+
+
+
+ - XEphem es un programa de astronomía interactivo para todas las plataformas UNIX, escrito y mantenido por _Elwood Downey_ durante más de treinta años entre 1990 y 2021 y ahora publicado generosamente bajo la licencia MIT.
+ - XEphem puede calcular información bajo demanda o se puede configurar automáticamente en el tiempo. De esta forma se pueden generar una serie de cálculos y animaciones.
+
+
+
+ xephem.desktop
+ https://xephem.github.io/XEphem/Site/xephem.html
+ https://xephem.github.io/XEphem/Site/help/xephem.html
+ xephem@ClearSkyInstitute.com
+ Elwood Charles Downey
+
+
+
+
+ xephem
+
+
+
+ https://raw.githubusercontent.com/XEphem/XEphem/main/GUI/xephem/help/png/sky-view.png
+ Highly configurable interactive Sky View.
+ Vista del cielo interactivo altamente configurable.
+
+
+ https://raw.githubusercontent.com/XEphem/XEphem/main/GUI/xephem/help/png/solsys.png
+ 3D projection and true stereo views of the solar system, perfect for visualizing comet paths.
+ Proyecciones 3D y vistas estereográficas reales del sistema solar, perfectas para visualizar trayectorias de cometas.
+
+
+ https://raw.githubusercontent.com/XEphem/XEphem/main/GUI/xephem/help/png/sun-view.png
+ Near real-time Solar images from the SOHO spacecraft.
+ Imágenes solares en tiempo real desed la nave espacial SOHO.
+
+
+
diff --git a/sources b/sources
index 637ad5c..f2e5be6 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (XEphem-b7bfc6eb31464287b5d65cb3f1e36d7dbf3dd381.tar.gz) = ca1793215c9f8e6070d69b73dabe932de19eeffaa266cf8bd4b1b4dd291cc1114b0093fb9620c5c872f4b59c172b8cfed830f5a8ac395134e643a1a43fee4473
+SHA512 (XEphem-4.3.0.tar.gz) = c93a946ca457946dba356ac2ef6cada5203b67a29f6788af3cb7b02670ca5fd876c61f4c5daa556036abf129ac50895599fd1e794adb91d07b1b0ca422bc8bb6
diff --git a/xephem.spec b/xephem.spec
index 9ade55a..f806baf 100644
--- a/xephem.spec
+++ b/xephem.spec
@@ -1,13 +1,13 @@
-#%%global gittag 4.1.0
-%global commit b7bfc6eb31464287b5d65cb3f1e36d7dbf3dd381
-%global shortcommit %(c=%{commit}; echo ${c:0:7})
-%global date 20221006
+%global gittag 4.3.0
+#%%global commit a2da14bfc6727b1255df6f31ac4ce89d4bd881c8
+#%%global shortcommit %%(c=%%{commit}; echo ${c:0:7})
+#%%global date 20240205
Name: xephem
%if "%{?gittag}"
-Version: 4.1.0
+Version: %{gittag}
%else
-Version: 4.1.0^%{date}%{shortcommit}
+Version: 4.1.0^%{date}.git%{shortcommit}
%endif
Release: %autorelease
Summary: Scientific-grade interactive astronomical ephemeris software
@@ -19,25 +19,37 @@ Source0: https://github.com/XEphem/XEphem/archive/%{gittag}/XEphem-%{vers
%else
Source0: https://github.com/XEphem/XEphem/archive/%{commit}/XEphem-%{commit}.tar.gz
%endif
-# Desktop file is not provided by upstream
+# Desktop and appstream metadata files are not provided in upstream sources
Source1: io.github.xephem.desktop
+Source2: io.github.xephem.metainfo.xml
# Patch to use system libraries and not override CFLAGS
+# Proposed upstream: https://github.com/XEphem/XEphem/pull/58
Patch: xephem_makefile.patch
+# Patch to use cmake to build and install
+# Proposed upstream: https://github.com/XEphem/XEphem/pull/60
+Patch: xephem_with_cmake.patch
+
ExcludeArch: %{ix86}
BuildRequires: desktop-file-utils
+BuildRequires: cmake
BuildRequires: gcc
BuildRequires: groff-base
+BuildRequires: libappstream-glib
BuildRequires: make
BuildRequires: motif-devel
+BuildRequires: ImageMagick
BuildRequires: pkgconfig(libjpeg)
BuildRequires: pkgconfig(libpng)
BuildRequires: pkgconfig(libssl)
+BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(zlib)
Requires: %{name}-data = %{version}-%{release}
+Requires: curl
+Requires: gzip
%description
XEphem is a scientific-grade interactive astronomical ephemeris software.
@@ -73,49 +85,77 @@ rm -rf libXm/
# Rename liblilxml license files
cp liblilxml/LICENSE LICENSE.liblilxml
+# Change hardcoded resources directory for flatpak
+%if 0%{?flatpak}
+sed -i -e 's|/etc/XEphem|/app/etc/XEphem|g' GUI/xephem/{splash.c,xephem.c}
+%endif
+
%build
-pushd GUI/xephem
-%make_build
-popd
+%if 0%{?epel}
+%set_build_flags
+%endif
+
+%cmake
+%cmake_build
+
+# Create standard size icons
+for d in 32 48 64 128 ; do
+ convert GUI/xephem/XEphem.png -geometry ${d}x${d} -depth 8 -background none xephem-${d}.png
+done
+
+# Old manual build method
+#pushd GUI/xephem
+#%%make_build
+#popd
%install
-# There's no automated install
-mkdir -p %{buildroot}%{_bindir}
-mkdir -p %{buildroot}%{_sysconfdir}
-mkdir -p %{buildroot}%{_mandir}/man1/
-mkdir -p %{buildroot}%{_datadir}/%{name}
+%cmake_install
-pushd GUI/xephem
-install -p -m0755 %{name} %{buildroot}/%{_bindir}
-install -p -m0644 %{name}.1 %{buildroot}/%{_mandir}/man1/
-cp -pR auxil %{buildroot}%{_datadir}/%{name}
-cp -pR catalogs %{buildroot}%{_datadir}/%{name}
-cp -pR fifos %{buildroot}%{_datadir}/%{name}
-cp -pR fits %{buildroot}%{_datadir}/%{name}
-cp -pR gallery %{buildroot}%{_datadir}/%{name}
-cp -pR help %{buildroot}%{_datadir}/%{name}
-cp -pR lo %{buildroot}%{_datadir}/%{name}
+# Old manual install method
+# There's no automated install
+#mkdir -p %%{buildroot}%%{_bindir}
+#mkdir -p %%{buildroot}%%{_mandir}/man1/
+#mkdir -p %%{buildroot}%%{_datadir}/%%{name}
+#pushd GUI/xephem
+#install -p -m0755 %%{name} %%{buildroot}/%%{_bindir}
+#install -p -m0644 %%{name}.1 %%{buildroot}/%%{_mandir}/man1/
+#cp -pR auxil %%{buildroot}%%{_datadir}/%%{name}
+#cp -pR catalogs %%{buildroot}%%{_datadir}/%%{name}
+#cp -pR fifos %%{buildroot}%%{_datadir}/%%{name}
+#cp -pR fits %%{buildroot}%%{_datadir}/%%{name}
+#cp -pR gallery %%{buildroot}%%{_datadir}/%%{name}
+#cp -pR help %%{buildroot}%%{_datadir}/%%{name}
+#cp -pR lo %%{buildroot}%%{_datadir}/%%{name}
+#popd
# Create file to tell xephem where to find resources
+mkdir -p %{buildroot}%{_sysconfdir}
cat >%{buildroot}%{_sysconfdir}/XEphem <
+Date: Thu, 1 Sep 2022 10:22:20 +0200
+Subject: [PATCH] Make build parallel safe
+
+---
+ GUI/xephem/Makefile | 20 +++++++++++---------
+ 1 file changed, 11 insertions(+), 9 deletions(-)
+
+diff --git a/GUI/xephem/Makefile b/GUI/xephem/Makefile
+index ddfbef9..da10016 100644
+--- a/GUI/xephem/Makefile
++++ b/GUI/xephem/Makefile
+@@ -185,21 +185,23 @@ OBJS = \
xephem.o \
xmisc.o
-all: libs xephem xephem.1
-+LIBRARIES := libip liblilxml
++LIBRARIES := libip liblilxml libjpegd libpng libz
-xephem: $(INCS) $(OBJS)
+all: $(LIBRARIES) xephem xephem.1
@@ -48,6 +34,8 @@ diff -udHrN -- a/GUI/xephem/Makefile b/GUI/xephem/Makefile
- cd ../../liblilxml; make
- cd ../../libpng; make
- cd ../../libz; make
++libs: $(LIBRARIES)
++
+$(LIBRARIES): libastro
+ $(MAKE) --directory=../../$@
+
@@ -56,39 +44,3 @@ diff -udHrN -- a/GUI/xephem/Makefile b/GUI/xephem/Makefile
clean:
rm -fr *.o ../../lib*/*.[ao]
-diff -udHrN -- a/libastro/Makefile b/libastro/Makefile
---- a/libastro/Makefile 2022-01-27 20:27:21.000000000 +0100
-+++ b/libastro/Makefile 2022-09-01 09:44:11.958463960 +0200
-@@ -5,7 +5,7 @@
-
- # gcc
- CC = gcc
--CFLAGS= -O2 -Wall
-+#CFLAGS= -O2 -Wall
-
- # macosx universal binary
- # CFLAGS= -O2 -Wall -arch i386 -arch ppc
-diff -udHrN -- a/libip/Makefile b/libip/Makefile
---- a/libip/Makefile 2022-01-27 20:27:21.000000000 +0100
-+++ b/libip/Makefile 2022-09-01 09:44:11.958463960 +0200
-@@ -3,7 +3,7 @@
-
- # gcc
- CC = gcc
--CFLAGS= -I../libastro -O2 -Wall
-+CFLAGS += -I../libastro
-
- # macosx universal binary
- # CFLAGS= -I../libastro -O2 -Wall -arch i386 -arch ppc
-diff -udHrN -- a/liblilxml/Makefile b/liblilxml/Makefile
---- a/liblilxml/Makefile 2022-01-27 20:27:21.000000000 +0100
-+++ b/liblilxml/Makefile 2022-09-01 09:44:11.959463950 +0200
-@@ -5,7 +5,7 @@
-
- # gcc
- CC = gcc
--CFLAGS= -O2 -Wall
-+#CFLAGS= -O2 -Wall
-
- # macosx universal binary
- # CFLAGS= -O2 -Wall -arch i386 -arch ppc
diff --git a/xephem_with_cmake.patch b/xephem_with_cmake.patch
new file mode 100644
index 0000000..e545e15
--- /dev/null
+++ b/xephem_with_cmake.patch
@@ -0,0 +1,410 @@
+diff -U 3 -dHrN a/CMakeLists.txt b/CMakeLists.txt
+--- a/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100
++++ b/CMakeLists.txt 2026-03-14 11:05:34.680886726 +0100
+@@ -0,0 +1,76 @@
++cmake_minimum_required(VERSION 3.10)
++
++project(xephem VERSION 4.1.0 LANGUAGES C)
++set(DISPLAY_NAME "XEphem")
++set(CMAKE_C_STANDARD 17)
++
++set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
++set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
++set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
++
++# Required packages
++find_package(Motif REQUIRED)
++find_package(OpenSSL REQUIRED)
++find_package(X11 REQUIRED)
++
++# Optional packages
++find_package(JPEG)
++find_package(PNG)
++find_package(ZLIB)
++
++# Define installation directories
++if((NOT WIN32) AND (NOT NATIVE_OSX_APP))
++ include(GNUInstallDirs)
++endif()
++if(NATIVE_OSX_APP)
++ set(CMAKE_INSTALL_PREFIX "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.app/Contents")
++ set(CMAKE_INSTALL_FULL_LOCALEDIR "${CMAKE_INSTALL_PREFIX}/Resources/locale")
++ set(CMAKE_INSTALL_BINDIR "MacOS")
++ set(XEPHEM_DATADIR "${CMAKE_INSTALL_PREFIX}/Resources")
++elseif(WIN32)
++ set(CMAKE_INSTALL_BINDIR ".")
++ set(CMAKE_INSTALL_DATAROOTDIR ".")
++ set(CMAKE_INSTALL_DATADIR ".")
++ set(CMAKE_INSTALL_FULL_LOCALEDIR "locale")
++ set(CMAKE_INSTALL_LOCALEDIR "${CMAKE_INSTALL_FULL_LOCALEDIR}")
++ set(XEPHEM_DATADIR "${CMAKE_INSTALL_DATADIR}")
++else()
++ set(XEPHEM_DATADIR "${CMAKE_INSTALL_DATADIR}/${PROJECT_NAME}")
++endif()
++
++# Build libraries
++add_subdirectory(libastro)
++add_subdirectory(libip)
++if(NOT JPEG_FOUND)
++ add_subdirectory(libjpegd)
++endif()
++add_subdirectory(liblilxml)
++if(NOT PNG_FOUND)
++ add_subdirectory(libpng)
++endif()
++if(NOT ZLIB_FOUND)
++ add_subdirectory(libz)
++endif()
++
++# Build main program
++add_subdirectory(GUI/xephem)
++
++# Install
++install(TARGETS xephem
++ RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR})
++install(FILES ${CMAKE_BINARY_DIR}/xephem.1
++ DESTINATION ${CMAKE_INSTALL_MANDIR}/man1)
++install(DIRECTORY GUI/xephem/auxil
++ DESTINATION ${XEPHEM_DATADIR})
++install(DIRECTORY GUI/xephem/catalogs
++ DESTINATION ${XEPHEM_DATADIR})
++install(DIRECTORY GUI/xephem/fifos
++ DESTINATION ${XEPHEM_DATADIR})
++install(DIRECTORY GUI/xephem/fits
++ DESTINATION ${XEPHEM_DATADIR})
++install(DIRECTORY GUI/xephem/gallery
++ DESTINATION ${XEPHEM_DATADIR})
++install(DIRECTORY GUI/xephem/help
++ DESTINATION ${XEPHEM_DATADIR})
++install(DIRECTORY GUI/xephem/lo
++ DESTINATION ${XEPHEM_DATADIR})
+diff -U 3 -dHrN a/GUI/xephem/CMakeLists.txt b/GUI/xephem/CMakeLists.txt
+--- a/GUI/xephem/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100
++++ b/GUI/xephem/CMakeLists.txt 2026-03-14 11:05:34.681033815 +0100
+@@ -0,0 +1,95 @@
++cmake_minimum_required(VERSION 3.10)
++
++set(SRC_FILES
++ aavso.c
++ annotmenu.c
++ broadcast.c
++ calmenu.c
++ closemenu.c
++ compiler.c
++ coordsmenu.c
++ datamenu.c
++ db.c
++ dbmenu.c
++ earthmap.c
++ earthmenu.c
++ fallbacks.c
++ favmenu.c
++ formats.c
++ fsmenu.c
++ gallerymenu.c
++ glance.c
++ gsc.c
++ gscnet.c
++ helpmenu.c
++ homeio.c
++ hznmenu.c
++ imregmenu.c
++ indimenu.c
++ jpeg2pm.c
++ jupmenu.c
++ listmenu.c
++ mainmenu.c
++ marsmenu.c
++ marsmmenu.c
++ moonmenu.c
++ moviemenu.c
++ msgmenu.c
++ netmenu.c
++ objmenu.c
++ obslog.c
++ patchlevel.c
++ plot_aux.c
++ plotmenu.c
++ preferences.c
++ progress.c
++ ps.c
++ query.c
++ rotated.c
++ satmenu.c
++ saveres.c
++ scope.c
++ sites.c
++ skybinary.c
++ skyeyep.c
++ skyfifos.c
++ skyfiltmenu.c
++ skyfits.c
++ skyhist.c
++ skyip.c
++ skylist.c
++ skytoolbar.c
++ skyviewmenu.c
++ solsysmenu.c
++ splash.c
++ srchmenu.c
++ sunmenu.c
++ time.c
++ tips.c
++ trailmenu.c
++ ucac.c
++ uranusmenu.c
++ usno.c
++ versionmenu.c
++ webdbmenu.c
++ xe2.c
++ xe3.c
++ xephem.c
++ xmisc.c)
++
++set(TARGET_LIB astro ip lilxml m png ssl Xm Xt Xext Xmu X11 z)
++if(NOT JPEG_FOUND)
++ set(TARGET_LIB ${TARGET_LIB} jpegd)
++else()
++ set(TARGET_LIB ${TARGET_LIB} jpeg)
++endif()
++
++add_executable(xephem ${SRC_FILES})
++target_link_libraries(xephem ${TARGET_LIB})
++
++add_custom_command(TARGET xephem
++ POST_BUILD
++ COMMAND nroff -man ${CMAKE_CURRENT_SOURCE_DIR}/xephem.man > xephem.1
++ WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
++ COMMENT "Building manpage"
++ VERBATIM)
+diff -U 3 -dHrN a/libastro/CMakeLists.txt b/libastro/CMakeLists.txt
+--- a/libastro/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100
++++ b/libastro/CMakeLists.txt 2026-03-14 11:06:44.260765464 +0100
+@@ -0,0 +1,70 @@
++cmake_minimum_required(VERSION 3.10)
++
++project(libastro C)
++
++set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
++set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
++set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
++
++set(SRC_FILES
++ aa_hadec.c
++ aberration.c
++ actan.c
++ airmass.c
++ anomaly.c
++ ap_as.c
++ atlas.c
++ auxil.c
++ bdl.c
++ chap95.c
++ chap95_data.c
++ circum.c
++ comet.c
++ constel.c
++ dbfmt.c
++ deep.c
++ deltat.c
++ eclipses.c
++ earthsat.c
++ eq_ecl.c
++ eq_gal.c
++ formats.c
++ helio.c
++ jupmoon.c
++ libration.c
++ magdecl.c
++ marsmoon.c
++ misc.c
++ mjd.c
++ moon.c
++ mooncolong.c
++ moonnf.c
++ nutation.c
++ obliq.c
++ parallactic.c
++ parallax.c
++ plans.c
++ plmoon.c
++ plshadow.c
++ precess.c
++ reduce.c
++ refract.c
++ rings.c
++ riset.c
++ riset_cir.c
++ satmoon.c
++ sdp4.c
++ sgp4.c
++ sphcart.c
++ sun.c
++ thetag.c
++ twobody.c
++ umoon.c
++ utc_gst.c
++ vsop87.c
++ vsop87_data.c)
++
++add_library(astro STATIC ${SRC_FILES})
++target_include_directories(astro PUBLIC
++ "${CMAKE_CURRENT_BINARY_DIR}"
++ "${CMAKE_CURRENT_SOURCE_DIR}")
+diff -U 3 -dHrN a/libip/CMakeLists.txt b/libip/CMakeLists.txt
+--- a/libip/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100
++++ b/libip/CMakeLists.txt 2026-03-14 11:05:34.681189843 +0100
+@@ -0,0 +1,26 @@
++cmake_minimum_required(VERSION 3.10)
++
++project(libip C)
++
++set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
++set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
++set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
++
++set(SRC_FILES
++ explodegif.c
++ fits.c
++ fsmatch.c
++ gaussfit.c
++ lstsqr.c
++ median.c
++ sqr.c
++ stars.c
++ stats.c
++ walk.c
++ wcs.c)
++
++add_library(ip STATIC ${SRC_FILES})
++target_link_libraries(ip astro)
++target_include_directories(ip PUBLIC
++ "${CMAKE_CURRENT_BINARY_DIR}"
++ "${CMAKE_CURRENT_SOURCE_DIR}")
+diff -U 3 -dHrN a/libjpegd/CMakeLists.txt b/libjpegd/CMakeLists.txt
+--- a/libjpegd/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100
++++ b/libjpegd/CMakeLists.txt 2026-03-14 11:05:34.681320833 +0100
+@@ -0,0 +1,40 @@
++cmake_minimum_required(VERSION 3.10)
++
++project(libjpegd C)
++
++set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
++set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
++set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
++
++set(SRC_FILES
++ jcomapi.c
++ jdapimin.c
++ jdapistd.c
++ jdatasrc.c
++ jdcoefct.c
++ jdcolor.c
++ jddctmgr.c
++ jdhuff.c
++ jdinput.c
++ jdmainct.c
++ jdmarker.c
++ jdmaster.c
++ jdmerge.c
++ jdphuff.c
++ jdpostct.c
++ jdsample.c
++ jerror.c
++ jidctflt.c
++ jidctfst.c
++ jidctint.c
++ jidctred.c
++ jmemmgr.c
++ jmemnobs.c
++ jquant1.c
++ jquant2.c
++ jutils.c)
++
++add_library(jpegd STATIC ${SRC_FILES})
++target_include_directories(jpegd PUBLIC
++ "${CMAKE_CURRENT_BINARY_DIR}"
++ "${CMAKE_CURRENT_SOURCE_DIR}")
+diff -U 3 -dHrN a/liblilxml/CMakeLists.txt b/liblilxml/CMakeLists.txt
+--- a/liblilxml/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100
++++ b/liblilxml/CMakeLists.txt 2026-03-14 11:05:34.681428772 +0100
+@@ -0,0 +1,16 @@
++cmake_minimum_required(VERSION 3.10)
++
++project(liblilxml C)
++
++set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
++set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
++set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
++
++set(SRC_FILES
++ base64.c
++ lilxml.c)
++
++add_library(lilxml STATIC ${SRC_FILES})
++target_include_directories(lilxml PUBLIC
++ "${CMAKE_CURRENT_BINARY_DIR}"
++ "${CMAKE_CURRENT_SOURCE_DIR}")
+diff -U 3 -dHrN a/libpng/CMakeLists.txt b/libpng/CMakeLists.txt
+--- a/libpng/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100
++++ b/libpng/CMakeLists.txt 2026-03-14 11:05:34.681501601 +0100
+@@ -0,0 +1,30 @@
++cmake_minimum_required(VERSION 3.10)
++
++project(libpng C)
++
++set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
++set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
++set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
++
++set(SRC_FILES
++ png.c
++ pngerror.c
++ pngget.c
++ pngmem.c
++ pngpread.c
++ pngread.c
++ pngrio.c
++ pngrtran.c
++ pngrutil.c
++ pngset.c
++ pngtrans.c
++ pngwio.c
++ pngwrite.c
++ pngwtran.c
++ pngwutil.c)
++
++add_library(png STATIC ${SRC_FILES})
++target_link_libraries(png z)
++target_include_directories(png PUBLIC
++ "${CMAKE_CURRENT_BINARY_DIR}"
++ "${CMAKE_CURRENT_SOURCE_DIR}")
+diff -U 3 -dHrN a/libz/CMakeLists.txt b/libz/CMakeLists.txt
+--- a/libz/CMakeLists.txt 1970-01-01 01:00:00.000000000 +0100
++++ b/libz/CMakeLists.txt 2026-03-14 11:05:34.681573741 +0100
+@@ -0,0 +1,25 @@
++cmake_minimum_required(VERSION 3.10)
++
++project(libz C)
++
++set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
++set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
++set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/lib)
++
++set(SRC_FILES
++ adler32.c
++ compress.c
++ crc32.c
++ deflate.c
++ inffast.c
++ inflate.c
++ inftrees.c
++ testzlib.c
++ trees.c
++ uncompr.c
++ zutil.c)
++
++add_library(z STATIC ${SRC_FILES})
++target_include_directories(z PUBLIC
++ "${CMAKE_CURRENT_BINARY_DIR}"
++ "${CMAKE_CURRENT_SOURCE_DIR}")