dev-lang/gdl: add 1.1.3

Signed-off-by: Alfredo Tupone <tupone@gentoo.org>
This commit is contained in:
Alfredo Tupone
2026-04-09 22:07:11 +02:00
parent f4a5078f58
commit d1ba0caf19
4 changed files with 294 additions and 0 deletions

View File

@@ -1,2 +1,3 @@
DIST gdl-1.0.4.tar.gz 33219638 BLAKE2B db0e843cf2e3f07d6f53d3a8b46cb95303cd0ae199c98099f45bbdfe5d206f325a8f9814935e876a3dfee3a46da0144766b18fa54b38a653567a429a88f06250 SHA512 3206bdd88b0478493221c0552e62620f1c9acbfec6f1900d73d932caae12401bf825e8893c81f844965f79e332bedb6ea99e6ea6f2b21427022efa60d1326eb0
DIST gdl-1.0.6.tar.gz 33302678 BLAKE2B 826769f70d91059686a32af811f3c3e7295c3be0f3d9f2cecae62a8906c45fa09d3ed9d39049ef4f5e858456d7687be482a5c536b0b54aaa27967e5ca62aa5cb SHA512 8a10e2d33d99aa2d29a085957a726b7d1af8e73fdb7c725508c929b5dbbff55e3fbb9265e9aa9c14e73bf72f6409aac24817032bd81007b694ebb689c02aa75a
DIST gdl-1.1.3.tar.gz 33933705 BLAKE2B 4592d1d0a0d40b2d961adace8dbb930d6edb1a78c36726996cc6c1504ce3dc04d732c659206289611f57caa9b4d6f4b1ebbf4ad8adaa3c6c0fee8f5ade8fe0b4 SHA512 4f4af5c5176a97d366d098fe27223895b90d6eed99a37cb144d334fd7751da8f27b06c4f09b7ac6628389387e8ad1108dbb6197a549d9c2b9ffce1da7ba418ac

View File

@@ -0,0 +1,110 @@
diff --git a/CMakeLists.txt b/CMakeLists.txt
index f7b8801d..8281aee1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -505,36 +505,16 @@
# -DMAGICK=ON|OFF
# -DMAGICKDIR=DIR
if(MAGICK)
- set(CMAKE_PREFIX_PATH ${MAGICKDIR})
- find_package(ImageMagick QUIET COMPONENTS Magick++ MagickWand MagickCore)
- mark_as_advanced(ImageMagick_EXECUTABLE_DIR ImageMagick_Magick++_INCLUDE_DIR ImageMagick_Magick++_LIBRARY
- ImageMagick_MagickCore_INCLUDE_DIR ImageMagick_MagickCore_LIBRARY ImageMagick_MagickWand_INCLUDE_DIR ImageMagick_MagickWand_LIBRARY)
- set(USE_MAGICK ${ImageMagick_FOUND})
- set(HAS_IMAGEMAGICK ${ImageMagick_FOUND})
- if(ImageMagick_FOUND)
- find_program(MAGICKXXCONFIG Magick++-config)
- if(MAGICKXXCONFIG)
- execute_process(COMMAND ${MAGICKXXCONFIG} "--libs" OUTPUT_VARIABLE MAGICKXXCONFIGLIBS OUTPUT_STRIP_TRAILING_WHITESPACE)
- set(LIBRARIES ${LIBRARIES} ${MAGICKXXCONFIGLIBS})
- execute_process(COMMAND ${MAGICKXXCONFIG} "--cxxflags" OUTPUT_VARIABLE MAGICKXXCONFIGCXXFLAGS OUTPUT_STRIP_TRAILING_WHITESPACE)
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${MAGICKXXCONFIGCXXFLAGS}")
- else(MAGICKXXCONFIG)
- message(FATAL_ERROR "ImageMagick is required but was not found (Magick++-config).\n"
- "Use -DMAGICKDIR=DIR to specify the ImageMagick directory.\n"
- "Use -DMAGICK=OFF to not use it.\n"
- "(suitable Debian/Ubuntu package: libmagick++-dev)\n"
- "(suitable Fedora/CentOS package: ImageMagick-c++-devel)")
- endif(MAGICKXXCONFIG)
- set(LIBRARIES ${LIBRARIES} ${ImageMagick_LIBRARIES})
- include_directories(${ImageMagick_INCLUDE_DIRS} ${ImageMagick_MagickCore_INCLUDE_DIRS})
- set(MAGICK_LIBRARIES ${ImageMagick_LIBRARIES})
- else(ImageMagick_FOUND)
- message(FATAL_ERROR "ImageMagick is required but was not found.\n"
- "Use -DMAGICKDIR=DIR to specify the ImageMagick directory.\n"
- "Use -DMAGICK=OFF to not use it.\n"
- "(suitable Debian/Ubuntu package: libmagick++-dev)\n"
- "(suitable Fedora/CentOS package: ImageMagick-c++-devel)")
- endif(ImageMagick_FOUND)
+ find_package(PkgConfig REQUIRED)
+ pkg_check_modules(Magick++ REQUIRED Magick++)
+ pkg_check_modules(MagickWand REQUIRED MagickWand)
+ pkg_check_modules(MagickCore REQUIRED MagickCore)
+
+ set(MAGICK_LIBRARIES ${Magick++_LIBRARIES} ${MagickWand_LIBRARIES} ${MagickCore_LIBRARIES})
+ set(LIBRARIES ${LIBRARIES} ${MAGICK_LIBRARIES})
+ include_directories(${Magick++_INCLUDE_DIRS})
+ include_directories(${MagickWand_INCLUDE_DIRS})
+ include_directories(${MagickCore_INCLUDE_DIRS})
endif(MAGICK)
# libtiff
@@ -895,20 +877,8 @@ endif(GLPK)
# -DSHAPELIB=ON|OFF
# -DSHAPELIBDIR=DIR
if(SHAPELIB)
- set(CMAKE_PREFIX_PATH ${SHAPELIBDIR})
- find_package(SHAPELIB QUIET)
- set(USE_SHAPELIB ${SHAPELIB_FOUND})
- if(SHAPELIB_FOUND)
- set(LIBRARIES ${LIBRARIES} ${SHAPELIB_LIBRARIES})
- include_directories(${SHAPELIB_INCLUDE_DIR})
- else(SHAPELIB_FOUND)
- message(FATAL_ERROR "SHAPELIB (http://shapelib.maptools.org/) is required but was not found.\n"
- "Use -DSHAPELIBDIR=DIR to specify the SHAPELIB-devel directory tree.\n"
- "Use -DSHAPELIB=OFF to not use it.\n"
- "shapelib is often in package libshp-devel.\n"
- "(suitable Debian/Ubuntu package: libshp-dev)\n"
- "(suitable Fedora/CentOS package: shapelib-devel)\n")
- endif(SHAPELIB_FOUND)
+ find_package(PkgConfig REQUIRED)
+ pkg_check_modules(shapelib REQUIRED shapelib)
endif(SHAPELIB)
# EXPAT for IDLffXMLSAX and IDLffXMLDOM
# -DEXPAT=ON|OFF
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 968ead9d..b0623de4 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -221,11 +221,11 @@
set_source_files_properties(libinit_cl.cpp PROPERTIES COMPILE_FLAGS -Wno-deprecated-declarations)
#whereami
add_library(whereami STATIC ${CMAKE_SOURCE_DIR}/src/whereami/src/whereami.c)
-add_subdirectory(antlr)
+find_library(ANTLR_LIBRARY NAMES antlr)
add_subdirectory(plplot)
add_subdirectory(dlm)
-include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_SOURCE_DIR}/src/antlr ${CMAKE_BINARY_DIR}/src ${CMAKE_SOURCE_DIR}/src/whereami/src ${CMAKE_BINARY_DIR})
+include_directories(${CMAKE_SOURCE_DIR} ${CMAKE_SOURCE_DIR}/src ${CMAKE_BINARY_DIR}/src ${CMAKE_SOURCE_DIR}/src/whereami/src ${CMAKE_BINARY_DIR})
link_directories(${LINK_DIRECTORIES})
if(PYTHON_MODULE) #GDL.so
@@ -249,8 +249,7 @@
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
endif(USE_OPENMP)
-add_dependencies(gdl plplot antlr whereami) # be sure that antlr is built before gdl
-target_link_libraries(gdl plplot antlr whereami) # link antlr against gdl. added librt for mmap (unix only, not osx, apparently)
+target_link_libraries(gdl plplot ${ANTLR_LIBRARY} whereami) # link antlr against gdl. added librt for mmap (unix only, not osx, apparently)
if(TARGET Eigen3::Eigen)
target_link_libraries(gdl Eigen3::Eigen)
endif()
--- a/src/dlm/CMakeLists.txt 2026-04-09 22:04:52.899683498 +0200
+++ b/src/dlm/CMakeLists.txt 2026-04-09 22:05:08.327507279 +0200
@@ -1,4 +1,4 @@
-cmake_minimum_required(VERSION 3.5)
+cmake_minimum_required(VERSION 3.10)
## if (NOT MINGW )
## project(MyLittleProject VERSION 1.0.0 DESCRIPTION "loadable shared library providing command MYCOMMAND")
## set(CMAKE_SHARED_LIBRARY_PREFIX "") # prevent to prepend 'lib' to all .so names

View File

@@ -0,0 +1,24 @@
--- a/testsuite/test_rounding.pro 2026-04-09 20:47:09.851979075 +0200
+++ b/testsuite/test_rounding.pro 2026-04-09 21:01:46.643929351 +0200
@@ -51,12 +51,17 @@
expected=[123, -123]
;
for ii=0, N_ELEMENTS(list_numeric_types)-1 do begin
+ ;; Cannot assign negative values to unsigned. Dropping the negative seed
+ ;; for those unsigned types
+ is_unsigned = (types[ii] EQ 1) OR (types[ii] EQ 12) OR (types[ii] EQ 13) OR (types[ii] EQ 15)
+ tseed = is_unsigned ? seed[0] : seed
+ texpected = is_unsigned ? expected[0] : expected
;;
- if KEYWORD_SET(round) then res_int=ROUND(FIX(seed, type=types[ii]))
- if KEYWORD_SET(ceil) then res_int=CEIL(FIX(seed, type=types[ii]))
- if KEYWORD_SET(floor) then res_int=FLOOR(FIX(seed, type=types[ii]))
+ if KEYWORD_SET(round) then res_int=ROUND(FIX(tseed, type=types[ii]))
+ if KEYWORD_SET(ceil) then res_int=CEIL(FIX(tseed, type=types[ii]))
+ if KEYWORD_SET(floor) then res_int=FLOOR(FIX(tseed, type=types[ii]))
;;
- expected_int=FIX(expected, type=list_numeric_types[ii])
+ expected_int=FIX(texpected, type=list_numeric_types[ii])
;;
if KEYWORD_SET(verbose) then begin
HELP, res_int

View File

@@ -0,0 +1,159 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
WX_GTK_VER="3.2-gtk3"
PYTHON_COMPAT=( python3_{11..14} )
inherit cmake flag-o-matic python-single-r1 toolchain-funcs virtualx wxwidgets
DESCRIPTION="GNU Data Language"
HOMEPAGE="https://github.com/gnudatalanguage/gdl"
SRC_URI="https://github.com/gnudatalanguage/${PN}/releases/download/v${PV}/${PN}-v${PV}.tar.gz -> ${P}.tar.gz"
S="${WORKDIR}/${PN}-v${PV}"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="
+eigen fftw glpk graphicsmagick gshhs hdf hdf5 +imagemagick netcdf
openmp png proj postscript python shapelib tiff udunits wxwidgets
"
REQUIRED_USE="python? ( ${PYTHON_REQUIRED_USE} )"
RDEPEND="
dev-cpp/antlr-cpp:2=
dev-libs/expat
net-libs/libtirpc:=
sci-libs/gsl:=
sys-libs/ncurses:=
sys-libs/readline:=
virtual/zlib:=
x11-libs/libX11
fftw? ( sci-libs/fftw:3.0= )
glpk? ( sci-mathematics/glpk:= )
gshhs? (
sci-geosciences/gshhs-data
sci-geosciences/gshhs:=
)
hdf? ( sci-libs/hdf:= )
hdf5? ( sci-libs/hdf5:= )
imagemagick? (
!graphicsmagick? ( media-gfx/imagemagick:=[cxx] )
graphicsmagick? ( media-gfx/graphicsmagick:=[cxx] )
)
netcdf? ( sci-libs/netcdf:= )
png? ( media-libs/libpng:= )
proj? ( sci-libs/proj:= )
postscript? ( dev-libs/pslib )
python? (
${PYTHON_DEPS}
$(python_gen_cond_dep '
dev-python/numpy[${PYTHON_USEDEP}]
')
)
shapelib? ( sci-libs/shapelib:= )
tiff? (
media-libs/tiff:=
sci-libs/libgeotiff:=
)
udunits? ( sci-libs/udunits )
wxwidgets? ( x11-libs/wxGTK:${WX_GTK_VER}=[X] )
"
DEPEND="${RDEPEND}
eigen? ( dev-cpp/eigen:3 )
"
BDEPEND="
virtual/pkgconfig
"
PATCHES=(
"${FILESDIR}"/${PN}-1.0.4-r3-musl.patch
"${FILESDIR}"/${PN}-1.1.3-cmake.patch
"${FILESDIR}"/${PN}-1.1.3-test_rounding.patch
)
DOCS=( AUTHORS HACKING NEWS PYTHON.txt README README.md )
pkg_pretend() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
}
pkg_setup() {
[[ ${MERGE_TYPE} != binary ]] && use openmp && tc-check-openmp
use python && python-single-r1_pkg_setup
}
src_prepare() {
use hdf5 && has_version sci-libs/hdf5[mpi] && export CXX=mpicxx
# remove bundled antlr
rm -r src/antlr || die
# gentoo: avoid install files in datadir directory
# and manually install them in src_install
sed -e '/AUTHORS/d' -i CMakeLists.txt || die
cmake_src_prepare
}
src_configure() {
use wxwidgets && setup-wxwidgets unicode
# -Werror=strict-aliasing
# https://bugs.gentoo.org/930966
# https://github.com/gnudatalanguage/gdl/issues/1852
#
# Do not trust with LTO either.
append-flags -fno-strict-aliasing
filter-lto
# MPI is still very buggy
# x11=off does not compile
local mycmakeargs=(
-DMPI=OFF
-DREADLINE=ON
-DX11=ON
-DEXPAT=ON
-DEIGEN3=$(usex eigen)
-DFFTW=$(usex fftw)
-DGRIB=OFF
-DGLPK=$(usex glpk)
-DHDF=$(usex hdf)
-DHDF5=$(usex hdf5)
-DLIBPROJ=$(usex proj)
-DNETCDF=$(usex netcdf)
-DOPENMP=$(usex openmp)
-DPNGLIB=$(usex png)
-DUDUNITS2=$(usex udunits)
-DWXWIDGETS=$(usex wxwidgets)
-DGRAPHICSMAGICK=$(usex imagemagick $(usex graphicsmagick))
-DMAGICK=$(usex imagemagick $(usex !graphicsmagick))
-DTIFF=$(usex tiff)
-DGEOTIFF=$(usex tiff)
-DPYTHON_MODULE=$(usex python)
-DPYTHON=$(usex python)
-DSHAPELIB=$(usex shapelib)
-DQHULL=OFF
)
if use python; then
# automatically selection ignores EPYTHON
mycmakeargs+=(
-DPYTHONVERSION="${EPYTHON#python}"
)
fi
cmake_src_configure
}
src_test() {
PLPLOT_DRV_DIR=src/plplotdriver virtx cmake_src_test
}
src_install() {
cmake_src_install
newenvd - 50gdl <<-_EOF_
GDL_PATH="+${EPREFIX}/usr/share/gnudatalanguage"
_EOF_
}