*/*: sync with upstream

Taken from: FreeBSD
This commit is contained in:
Franco Fichtner 2024-09-09 08:51:57 +02:00
parent 9f33f40f60
commit 5faa030283
2801 changed files with 35809 additions and 17863 deletions

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1716929091
SHA256 (KDE/Qt/5.15.14/kde-qtspeech-5.15.14p1.tar.xz) = f1d0d42560290497b3fc962661b74d3fcef11b8683755fa6314be81a4fc93905
SIZE (KDE/Qt/5.15.14/kde-qtspeech-5.15.14p1.tar.xz) = 80220
TIMESTAMP = 1725433090
SHA256 (KDE/Qt/5.15.15/kde-qtspeech-5.15.15p1.tar.xz) = 1d3f02b23af06d5a40e1c3b6b114ca11b25adf2bbfacf2c151b81a34e4080464
SIZE (KDE/Qt/5.15.15/kde-qtspeech-5.15.15p1.tar.xz) = 80376

View file

@ -1,5 +1,5 @@
PORTNAME= Archive-Tar-Wrapper
PORTVERSION= 0.41
PORTVERSION= 0.42
CATEGORIES= archivers perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1718580046
SHA256 (Archive-Tar-Wrapper-0.41.tar.gz) = 58f347fba0a5fef619b1bdb3018e4eb97a4acae81b9c3557fcbc08744591495d
SIZE (Archive-Tar-Wrapper-0.41.tar.gz) = 37960
TIMESTAMP = 1725559609
SHA256 (Archive-Tar-Wrapper-0.42.tar.gz) = 6ac75138566a63e3dad904c602fbf9addb627157a5b97efb9a4e109b446386fd
SIZE (Archive-Tar-Wrapper-0.42.tar.gz) = 49178

View file

@ -1,5 +1,5 @@
PORTNAME= Compress-Raw-Bzip2
PORTVERSION= 2.212
PORTVERSION= 2.213
CATEGORIES= archivers perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1715842586
SHA256 (Compress-Raw-Bzip2-2.212.tar.gz) = 6caeee843c428f45fa9646ea98dc675470db63dbac0ee3e2d8e9ee4eb58a856d
SIZE (Compress-Raw-Bzip2-2.212.tar.gz) = 218037
TIMESTAMP = 1725559611
SHA256 (Compress-Raw-Bzip2-2.213.tar.gz) = 8d75d3d366c9101ca18061b00d438d3da39478c06159147dea3c666770577c7b
SIZE (Compress-Raw-Bzip2-2.213.tar.gz) = 218757

View file

@ -1,5 +1,5 @@
PORTNAME= Compress-Raw-Lzma
PORTVERSION= 2.212
PORTVERSION= 2.213
CATEGORIES= archivers perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1715842588
SHA256 (Compress-Raw-Lzma-2.212.tar.gz) = 4ba7ab803bdba2d7be7d55d4a2668369d794eb8d8d6bb0db6b74fd9b4ce18cac
SIZE (Compress-Raw-Lzma-2.212.tar.gz) = 197888
TIMESTAMP = 1725559613
SHA256 (Compress-Raw-Lzma-2.213.tar.gz) = 6b979a8347701ced3ac26123d428c1f202b7999850444da19c4aedbb7c862cb7
SIZE (Compress-Raw-Lzma-2.213.tar.gz) = 197924

View file

@ -1,5 +1,5 @@
PORTNAME= Compress-Raw-Zlib
PORTVERSION= 2.212
PORTVERSION= 2.213
CATEGORIES= archivers perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1715842590
SHA256 (Compress-Raw-Zlib-2.212.tar.gz) = 6d9de0c11921fd520dfd99a3f6b0ca9f1fd9850274f8bec10bbaa4f6803cc049
SIZE (Compress-Raw-Zlib-2.212.tar.gz) = 551286
TIMESTAMP = 1725559615
SHA256 (Compress-Raw-Zlib-2.213.tar.gz) = 56b21c99cb3a3a7f7876a74dd05daa3f41fc9143ddd4dc98f8e46710a106af45
SIZE (Compress-Raw-Zlib-2.213.tar.gz) = 551722

View file

@ -1,5 +1,5 @@
PORTNAME= IO-Compress-Lzf
PORTVERSION= 2.212
PORTVERSION= 2.213
CATEGORIES= archivers perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1715842594
SHA256 (IO-Compress-Lzf-2.212.tar.gz) = 120a38796f0bec8618ab307fbe36674051422cef381e8fb96e1c5194469f469a
SIZE (IO-Compress-Lzf-2.212.tar.gz) = 79631
TIMESTAMP = 1725559619
SHA256 (IO-Compress-Lzf-2.213.tar.gz) = ce5146cd14e7e537eccf6c8833f31f1a879319952b71996ea89ea7026a282549
SIZE (IO-Compress-Lzf-2.213.tar.gz) = 79636

View file

@ -1,5 +1,5 @@
PORTNAME= IO-Compress-Lzma
PORTVERSION= 2.212
PORTVERSION= 2.213
CATEGORIES= archivers perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1715842596
SHA256 (IO-Compress-Lzma-2.212.tar.gz) = 51ef81f931cfd2c13fb2340c665204a9587843087dec1a57e9e9f4666d6dad40
SIZE (IO-Compress-Lzma-2.212.tar.gz) = 106350
TIMESTAMP = 1725559621
SHA256 (IO-Compress-Lzma-2.213.tar.gz) = daa63c3fa1f7708aa55b97a4d189820f5e849f8e4583dc24b5cceebd06a493eb
SIZE (IO-Compress-Lzma-2.213.tar.gz) = 106356

View file

@ -1,5 +1,5 @@
PORTNAME= IO-Compress-Lzop
PORTVERSION= 2.212
PORTVERSION= 2.213
CATEGORIES= archivers perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1715842598
SHA256 (IO-Compress-Lzop-2.212.tar.gz) = c0c58730cded611d4f1b4474d6fcc25064574918ab2ec6230b1972b294446777
SIZE (IO-Compress-Lzop-2.212.tar.gz) = 82156
TIMESTAMP = 1725559623
SHA256 (IO-Compress-Lzop-2.213.tar.gz) = 29e61bbca9bb2f8946aa578fef2344ca5e9334a97f966943de0863848e1ea549
SIZE (IO-Compress-Lzop-2.213.tar.gz) = 82152

View file

@ -1,5 +1,5 @@
PORTNAME= IO-Compress
PORTVERSION= 2.212
PORTVERSION= 2.213
CATEGORIES= archivers perl5
MASTER_SITES= CPAN
PKGNAMEPREFIX= p5-

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1715842592
SHA256 (IO-Compress-2.212.tar.gz) = 687490dbf9c4be42c22a945c4601812be5f4d38a9836018148915ba9e0ea65b1
SIZE (IO-Compress-2.212.tar.gz) = 328311
TIMESTAMP = 1725559617
SHA256 (IO-Compress-2.213.tar.gz) = ae4d01ae574e4568c5f2fb0573e74631e2720b71ad3bc5a3ffe9480f1cb9a851
SIZE (IO-Compress-2.213.tar.gz) = 328473

View file

@ -1,5 +1,6 @@
%%SITE_PERL%%/Compress/Zlib.pm
%%SITE_PERL%%/File/GlobMapper.pm
%%SITE_PERL%%/IO/Compress.pm
%%SITE_PERL%%/IO/Compress/Adapter/Bzip2.pm
%%SITE_PERL%%/IO/Compress/Adapter/Deflate.pm
%%SITE_PERL%%/IO/Compress/Adapter/Identity.pm
@ -28,6 +29,7 @@
%%SITE_PERL%%/IO/Uncompress/Unzip.pm
%%PERL5_MAN3%%/Compress::Zlib.3.gz
%%PERL5_MAN3%%/File::GlobMapper.3.gz
%%PERL5_MAN3%%/IO::Compress.3.gz
%%PERL5_MAN3%%/IO::Compress::Base.3.gz
%%PERL5_MAN3%%/IO::Compress::Bzip2.3.gz
%%PERL5_MAN3%%/IO::Compress::Deflate.3.gz

View file

@ -11,18 +11,8 @@ WWW= https://github.com/brianmario/bzip2-ruby
LICENSE= BSD2CLAUSE RUBY
LICENSE_COMB= dual
DEPRECATED= Does not work with ruby32
# Sync with the removal of ruby31
EXPIRATION_DATE= 2025-03-31
USES= gem
BROKEN_RUBY32= yes
.include <bsd.port.options.mk>
.if ${OPSYS} == FreeBSD && ( ${OSVERSION} >= 1400091 || ( ${OSVERSION} >= 1302507 && ${OSVERSION} < 1400000 ))
CONFIGURE_ARGS+= --with-cflags="-Wno-error=incompatible-function-pointer-types"
.endif
CONFIGURE_ARGS= --with-cflags=-Wno-incompatible-function-pointer-types
.include <bsd.port.mk>

View file

@ -1,6 +1,6 @@
--- ext/bzip2.c.orig 2016-07-26 12:25:25 UTC
--- ext/bzip2.c.orig 2024-09-07 15:54:07 UTC
+++ ext/bzip2.c
@@ -247,9 +247,6 @@ static VALUE bz_writer_close(VALUE obj)
@@ -247,9 +247,6 @@ static VALUE bz_writer_close(VALUE obj) {
Get_BZ2(obj, bzf);
res = bz_writer_internal_close(bzf);
@ -10,3 +10,39 @@
return res;
}
@@ -495,7 +492,7 @@ static VALUE bz_writer_init(int argc, VALUE *argv, VAL
}
bziv->bz2 = obj;
} else {
- iv = Data_Make_Struct(rb_cData, struct bz_iv, 0, free, bziv);
+ iv = Data_Make_Struct(rb_cObject, struct bz_iv, 0, free, bziv);
bziv->io = a;
bziv->bz2 = obj;
rb_ary_push(bz_internal_ary, iv);
@@ -1733,7 +1730,7 @@ void Init_bzip2_ext() {
/*
Writer
*/
- bz_cWriter = rb_define_class_under(bz_mBzip2, "Writer", rb_cData);
+ bz_cWriter = rb_define_class_under(bz_mBzip2, "Writer", rb_cObject);
#if HAVE_RB_DEFINE_ALLOC_FUNC
rb_define_alloc_func(bz_cWriter, bz_writer_s_alloc);
#else
@@ -1757,7 +1754,7 @@ void Init_bzip2_ext() {
/*
Reader
*/
- bz_cReader = rb_define_class_under(bz_mBzip2, "Reader", rb_cData);
+ bz_cReader = rb_define_class_under(bz_mBzip2, "Reader", rb_cObject);
rb_include_module(bz_cReader, rb_mEnumerable);
#if HAVE_RB_DEFINE_ALLOC_FUNC
rb_define_alloc_func(bz_cReader, bz_reader_s_alloc);
@@ -1798,7 +1795,7 @@ void Init_bzip2_ext() {
/*
Internal
*/
- bz_cInternal = rb_define_class_under(bz_mBzip2, "InternalStr", rb_cData);
+ bz_cInternal = rb_define_class_under(bz_mBzip2, "InternalStr", rb_cObject);
#if HAVE_RB_DEFINE_ALLOC_FUNC
rb_undef_alloc_func(bz_cInternal);
#else

View file

@ -1,5 +1,5 @@
PORTNAME= minitar-cli
PORTVERSION= 0.9
PORTVERSION= 0.12
CATEGORIES= archivers rubygems
MASTER_SITES= RG
@ -12,7 +12,7 @@ LICENSE_COMB= dual
LICENSE_FILE_BSD2CLAUSE=${WRKSRC}/docs/bsdl.txt
LICENSE_FILE_RUBY= ${WRKSRC}/docs/ruby.txt
RUN_DEPENDS= rubygem-minitar>=0.9.0<0.10:archivers/rubygem-minitar \
RUN_DEPENDS= rubygem-minitar>=0.12.0<0.13:archivers/rubygem-minitar \
rubygem-powerbar>=1.0<2:devel/rubygem-powerbar
USES= gem

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1720355120
SHA256 (rubygem/minitar-cli-0.9.gem) = 157803ba1cd35c38c1105a7818589f82a7b776fe073d10d90f70900a031fcf78
SIZE (rubygem/minitar-cli-0.9.gem) = 17408
TIMESTAMP = 1724084672
SHA256 (rubygem/minitar-cli-0.12.gem) = 667e17bff71baf3d0c4c4998d4e51c21fcdccf6c8a4c945efade6fede2559bb5
SIZE (rubygem/minitar-cli-0.12.gem) = 17408

View file

@ -1,5 +1,5 @@
PORTNAME= minitar
PORTVERSION= 0.9
PORTVERSION= 0.12
CATEGORIES= archivers rubygems
MASTER_SITES= RG

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1567688371
SHA256 (rubygem/minitar-0.9.gem) = 23c0bebead35dbfe9e24088dc436c8a233d03f51d365a686b9a11dd30dc2d588
SIZE (rubygem/minitar-0.9.gem) = 32768
TIMESTAMP = 1724084670
SHA256 (rubygem/minitar-0.12.gem) = 626a6c91373d3800be6ee18a6e2d422a9b5a66bdf1ee08aa60f32ac1d0cde239
SIZE (rubygem/minitar-0.12.gem) = 34304

View file

@ -1,5 +1,6 @@
PORTNAME= zchunk
DISTVERSION= 1.5.1
PORTREVISION= 1
CATEGORIES= archivers
MAINTAINER= yuri@FreeBSD.org

View file

@ -88,6 +88,7 @@
SUBDIR += py-astropy-helpers
SUBDIR += py-ephem
SUBDIR += py-extension-helpers
SUBDIR += py-fitsio
SUBDIR += py-horoscopegenerator
SUBDIR += py-indiweb
SUBDIR += py-jplephem

View file

@ -1,5 +1,6 @@
PORTNAME= astrometry
PORTVERSION= 0.95
PORTREVISION= 1
CATEGORIES= astro
MASTER_SITES= https://github.com/dstndstn/${PORTNAME}.net/releases/download/${DISTVERSION}/
DISTNAME= ${PORTNAME}.net-${PORTVERSION}
@ -50,6 +51,9 @@ SUB_FILES= pkg-message
OPTIONS_DEFINE= DOCS EXAMPLES
OPTIONS_DEFAULT= EXAMPLES
# These files are taken from cfitsio and installed by cfitsio 4.5.0+.
# fitscopy was slightly modified by astrometry team.
CFITSIO_FILES= fitscopy fitsverify imcopy
FILES= an-fitstopnm an-pnmtofits astrometry-engine augment-xylist \
build-astrometry-index downsample-fits fit-wcs \
fits-column-merge fits-flip-endian fits-guess-scale \
@ -64,6 +68,9 @@ FILES= an-fitstopnm an-pnmtofits astrometry-engine augment-xylist \
post-install:
.for file in ${FILES}
${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/${file}
.endfor
.for file in ${CFITSIO_FILES}
${MV} ${STAGEDIR}${PREFIX}/bin/${file} ${STAGEDIR}${PREFIX}/bin/astrometry-${file}
.endfor
${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libastrometry.so
${STRIP_CMD} ${STAGEDIR}${PYTHON_LIBDIR}/astrometry/solver/_solver${PYTHON_EXT_SUFFIX}.so

View file

@ -1,6 +1,9 @@
bin/an-fitstopnm
bin/an-pnmtofits
bin/astrometry-engine
bin/astrometry-fitscopy
bin/astrometry-fitsverify
bin/astrometry-imcopy
bin/augment-xylist
bin/build-astrometry-index
bin/degtohms
@ -9,9 +12,7 @@ bin/fit-wcs
bin/fits-column-merge
bin/fits-flip-endian
bin/fits-guess-scale
bin/fitscopy
bin/fitsgetext
bin/fitsverify
bin/get-healpix
bin/get-wcs
bin/hmstodeg
@ -19,7 +20,6 @@ bin/hpsplit
bin/image2pnm
bin/image2xy
bin/imarith
bin/imcopy
bin/imstat
bin/listhead
bin/liststruc

View file

@ -1,29 +1,27 @@
PORTNAME= cfitsio
PORTVERSION= 4.4.1
PORTVERSION= 4.5.0
CATEGORIES= astro
MASTER_SITES= https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/ \
https://heasarc.gsfc.nasa.gov/FTP/software/fitsio/c/oldvers/ \
ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/ \
ftp://heasarc.gsfc.nasa.gov/software/fitsio/c/oldvers/ \
LOCAL/sunpoet
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= Library for reading and writing files in FITS data format
WWW= https://heasarc.gsfc.nasa.gov/docs/software/fitsio/
WWW= https://heasarc.gsfc.nasa.gov/fitsio/ \
https://github.com/HEASARC/cfitsio
LICENSE= CFITSIO
LICENSE_NAME= CFITSIO License
LICENSE_FILE= ${WRKSRC}/licenses/License.txt
LICENSE_PERMS= auto-accept dist-mirror dist-sell pkg-mirror pkg-sell
LIB_DEPENDS= libcurl.so:ftp/curl \
libf2c.so:lang/f2c
LIB_DEPENDS= libcurl.so:ftp/curl
USES= cpe localbase pkgconfig
USES= cpe libtool localbase pathfix pkgconfig
ALL_TARGET= libcfitsio.a shared
CONFIGURE_ARGS= ac_cv_prog_FC=f2c --enable-reentrant --with-bzip2=/usr
CONFIGURE_ARGS= --enable-reentrant --with-bzip2=/usr
GNU_CONFIGURE= yes
INSTALL_TARGET= install-strip
USE_LDCONFIG= yes
PLIST_SUB= PORTVERSION=${PORTVERSION}
@ -32,16 +30,8 @@ CPE_VENDOR= nasa
OPTIONS_DEFINE= DOCS
do-install:
cd ${WRKSRC}/ && ${INSTALL_DATA} drvrsmem.h fitsio.h fitsio2.h longnam.h ${STAGEDIR}${PREFIX}/include/
${INSTALL_DATA} ${WRKSRC}/libcfitsio.a ${STAGEDIR}${PREFIX}/lib/
${INSTALL_LIB} ${WRKSRC}/libcfitsio.so.10.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib/
${INSTALL_DATA} ${WRKSRC}/cfitsio.pc ${STAGEDIR}${PREFIX}/libdata/pkgconfig/
${LN} -fs libcfitsio.so.10.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib/libcfitsio.so.10
${LN} -fs libcfitsio.so.10.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib/libcfitsio.so
do-install-DOCS-on:
${MKDIR} ${STAGEDIR}${DOCSDIR}/
${INSTALL_DATA} ${WRKSRC}/docs/changes.txt ${WRKSRC}/docs/*.pdf ${STAGEDIR}${DOCSDIR}/
${INSTALL_DATA} ${WRKSRC}/docs/*.pdf ${STAGEDIR}${DOCSDIR}/
.include <bsd.port.mk>

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1718784539
SHA256 (cfitsio-4.4.1.tar.gz) = 66a1dc3f21800f9eeabd9eac577b91fcdd9aabba678fbba3b8527319110d1d25
SIZE (cfitsio-4.4.1.tar.gz) = 4308170
TIMESTAMP = 1725559549
SHA256 (cfitsio-4.5.0.tar.gz) = e4854fc3365c1462e493aa586bfaa2f3d0bb8c20b75a524955db64c27427ce09
SIZE (cfitsio-4.5.0.tar.gz) = 4648097

View file

@ -1,14 +1,25 @@
bin/cookbook
bin/fitscopy
bin/fitsverify
bin/fpack
bin/funpack
bin/imcopy
bin/smem
bin/speed
include/cfortran.h
include/drvrsmem.h
include/f77_wrap.h
include/fitsio.h
include/fitsio2.h
include/longnam.h
include/region.h
lib/libcfitsio.a
lib/libcfitsio.so
lib/libcfitsio.so.10
lib/libcfitsio.so.10.0.0
lib/libcfitsio.so.10.%%PORTVERSION%%
libdata/pkgconfig/cfitsio.pc
%%PORTDOCS%%%%DOCSDIR%%/cfitsio.pdf
%%PORTDOCS%%%%DOCSDIR%%/changes.txt
%%PORTDOCS%%%%DOCSDIR%%/fitsio.pdf
%%PORTDOCS%%%%DOCSDIR%%/fpackguide.pdf
%%PORTDOCS%%%%DOCSDIR%%/quick.pdf

35
astro/py-fitsio/Makefile Normal file
View file

@ -0,0 +1,35 @@
PORTNAME= fitsio
PORTVERSION= 1.2.4
CATEGORIES= astro python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= Full featured python library to read from and write to FITS files
WWW= https://github.com/esheldon/fitsio
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=0,1:math/py-numpy@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}setuptools>=0:devel/py-setuptools@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}wheel>=0:devel/py-wheel@${PY_FLAVOR}
LIB_DEPENDS= libcfitsio.so:astro/cfitsio
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}numpy>=0,1:math/py-numpy@${PY_FLAVOR}
USES= python
USE_PYTHON= autoplist concurrent pep517
MAKE_ENV= FITSIO_USE_SYSTEM_FITSIO=yes \
FITSIO_SYSTEM_FITSIO_INCLUDEDIR=${LOCALBASE}/include \
FITSIO_SYSTEM_FITSIO_LIBDIR=${LOCALBASE}/lib
# Clean up bundled libraries
post-patch:
@${RM} -r ${WRKSRC}/cfitsio-*/
@${RM} -r ${WRKSRC}/zlib/
post-install:
${FIND} ${STAGEDIR}${PYTHON_SITELIBDIR} -name '*.so' -exec ${STRIP_CMD} {} +
.include <bsd.port.mk>

3
astro/py-fitsio/distinfo Normal file
View file

@ -0,0 +1,3 @@
TIMESTAMP = 1725559527
SHA256 (fitsio-1.2.4.tar.gz) = d57fe347c7657dc1f78c7969a55ecb4fddb717ae1c66d9d22046c171203ff678
SIZE (fitsio-1.2.4.tar.gz) = 4533680

27
astro/py-fitsio/pkg-descr Normal file
View file

@ -0,0 +1,27 @@
fitsio is a python extension written in c and python. Data are read into
numerical python arrays.
Some Features:
- Read from and write to image, binary, and ascii table extensions.
- Read arbitrary subsets of table columns and rows without loading all the data
to memory.
- Read image subsets without reading the whole image. Write subsets to existing
images.
- Write and read variable length table columns.
- Read images and tables using slice notation similar to numpy arrays. This is
like a more powerful memmap, since it is column-aware for tables.
- Append rows to an existing table. Delete row sets and row ranges. Resize
tables, or insert rows.
- Query the columns and rows in a table.
- Read and write header keywords.
- Read and write images in tile-compressed format (RICE,GZIP,PLIO,HCOMPRESS).
- Read/write gzip files directly. Read unix compress (.Z,.zip) and bzip2 (.bz2)
files.
- TDIM information is used to return array columns in the correct shape.
- Write and read string table columns, including array columns of arbitrary
shape.
- Read and write complex, bool (logical), unsigned integer, signed bytes types.
- Write checksums into the header and verify them.
- Insert new columns into tables in-place.
- Iterate over rows in a table. Data are buffered for efficiency.
- python 3 support, including python 3 strings

View file

@ -694,7 +694,6 @@
SUBDIR += raul
SUBDIR += rawrec
SUBDIR += re
SUBDIR += resid
SUBDIR += rexima
SUBDIR += rezound
SUBDIR += rhvoice

View file

@ -1,6 +1,6 @@
PORTNAME= audacity
DISTVERSIONPREFIX= Audacity-
DISTVERSION= 3.6.1
DISTVERSION= 3.6.2
CATEGORIES= audio
MASTER_SITES+= https://github.com/${PORTNAME}/${PORTNAME}-manual/releases/download/v${DISTVERSION}/:manual
DISTFILES+= ${PORTNAME}-manual-${DISTVERSION}.tar.gz:manual

View file

@ -1,5 +1,5 @@
TIMESTAMP = 1721674577
SHA256 (audacity-manual-3.6.1.tar.gz) = a099f22885a0260f0b4a1ed8f0049583da6d26c1f5d6d7aaeeb1fe50d3a0fa08
SIZE (audacity-manual-3.6.1.tar.gz) = 26053438
SHA256 (audacity-audacity-Audacity-3.6.1_GH0.tar.gz) = d3af8c8068cdc3072fb583d5062aa75f4b25846da342bd30df40bfb5ede83cc5
SIZE (audacity-audacity-Audacity-3.6.1_GH0.tar.gz) = 61369168
TIMESTAMP = 1725429385
SHA256 (audacity-manual-3.6.2.tar.gz) = 9d79c1fdd40e53d89584223f6216243240b7dd746eb96532ae5041b9cd956351
SIZE (audacity-manual-3.6.2.tar.gz) = 26237177
SHA256 (audacity-audacity-Audacity-3.6.2_GH0.tar.gz) = 85d185a5193d967ed6f76242ef7bb2fd718d42800c29f7409337451c786b141e
SIZE (audacity-audacity-Audacity-3.6.2_GH0.tar.gz) = 61319167

View file

@ -97,6 +97,7 @@ share/applications/audacity.desktop
%%MANUAL%%%%DATADIR%%/help/manual/m/images/0/04/selectionpointer.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/0/04/spectral_delete_deletion_with_toolbar.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/0/04/windows_control_panel_h_s_sound75percent.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/0/05/legacy_limiter_3_6_2.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/0/05/project_recovered_dialog.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/0/05/repeat_3_5_0.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/0/05/spectrogramview_09.png
@ -232,6 +233,7 @@ share/applications/audacity.desktop
%%MANUAL%%%%DATADIR%%/help/manual/m/images/2/24/removing_labels_together_with_their_associated_audio_after.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/2/24/spectraleditparametric2000hz_20.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/2/24/vocal_reduction_and_isolation_3_5_0.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/2/25/compressor_before.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/2/25/envelope6.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/2/25/export_other_uncompressed_files_header_3_4_0.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/2/25/select_audio_clips_menu_3_2_3.png
@ -297,6 +299,7 @@ share/applications/audacity.desktop
%%MANUAL%%%%DATADIR%%/help/manual/m/images/3/34/spectrogramview_02b.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/3/34/spectrum_with_whistle_w10.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/3/35/audio_before_zero.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/3/35/legacy_compressor_3_6_2.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/3/35/spectrogramview_01.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/3/35/view_show_clipping.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/3/36/compressor_parameters_smoothing_waveform_%%CMAKE_BUILD_TYPE%%_25_lookahead_1.png
@ -325,7 +328,6 @@ share/applications/audacity.desktop
%%MANUAL%%%%DATADIR%%/help/manual/m/images/3/3c/audio_track_dropdown_menu_3_6_0_mult_view_selection.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/3/3c/punch_in_tracks002.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/3/3c/silence_finder.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/3/3d/effect_menu_3_6_0.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/3/3d/erremptyproject.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/3/3d/invert.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/3/3d/risset_drum_3_5_0.png
@ -425,6 +427,7 @@ share/applications/audacity.desktop
%%MANUAL%%%%DATADIR%%/help/manual/m/images/5/53/label_context_menu.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/5/53/note_track_with_velocity_slider.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/5/53/time_track_example.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/5/54/compressor_after.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/5/54/malformed_mp3_error_message.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/5/54/scrubbing_using_the_menu_command_and_no_scrub_ruler.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/5/54/suregtrack.png
@ -529,7 +532,6 @@ share/applications/audacity.desktop
%%MANUAL%%%%DATADIR%%/help/manual/m/images/6/6f/sltg_edits_7.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/6/6f/spectral_02a.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/6/6f/spectraleditshelves200hz10000hz_20.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/6/6f/time_track_range_dialog_lower_limit_w10.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/6/6f/tools_menu_3_5_0.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/7/70/get_info.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/7/70/rollup.png
@ -695,13 +697,13 @@ share/applications/audacity.desktop
%%MANUAL%%%%DATADIR%%/help/manual/m/images/a/a0/compressor_parameters_smoothing_spectrum_attack_1ms.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/a/a0/labeltrack8.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/a/a0/spectrogramview_12.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/a/a0/time_track_range_dialog_upper_limit_w10.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/a/a1/clicky_example_spectrogram_view.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/a/a1/crossfade_clips_w10.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/a/a1/export_other_uncompressed_files_3_4_0.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/a/a1/move_cursor_to_track_start_post.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/a/a1/preferences_warnings.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/a/a1/splitting_and_joining_stereo_tracks_01.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/a/a1/time_track_speed_limit_range_dialog.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/a/a1/unsuitable_fat_drive_for_save.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/a/a2/regionmovebefore_w10.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/a/a2/shurex2u.png
@ -993,6 +995,7 @@ share/applications/audacity.desktop
%%MANUAL%%%%DATADIR%%/help/manual/m/images/e/ef/appended_recording_in_beats_and_bars_mode.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/e/ef/clicky_example_waveform_view_click_labelled_and_zoomed_red_arrows.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/e/ef/connect_dots_stem_plot_examples.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/e/ef/effect_menu_3_6_2.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/e/ef/error_for_locked_configuration_files.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/e/ef/spectrogramview_05a.png
%%MANUAL%%%%DATADIR%%/help/manual/m/images/e/ef/spectrogramview_07.png
@ -1247,6 +1250,8 @@ share/applications/audacity.desktop
%%MANUAL%%%%DATADIR%%/help/manual/man/label_tracks.html
%%MANUAL%%%%DATADIR%%/help/manual/man/labels_editor.html
%%MANUAL%%%%DATADIR%%/help/manual/man/languages.html
%%MANUAL%%%%DATADIR%%/help/manual/man/legacy_compressor.html
%%MANUAL%%%%DATADIR%%/help/manual/man/legacy_limiter.html
%%MANUAL%%%%DATADIR%%/help/manual/man/libraries_preferences.html
%%MANUAL%%%%DATADIR%%/help/manual/man/license.html
%%MANUAL%%%%DATADIR%%/help/manual/man/limiter.html
@ -1523,7 +1528,7 @@ share/applications/audacity.desktop
%%DATADIR%%/plug-ins/equalabel.ny
%%DATADIR%%/plug-ins/highpass.ny
%%DATADIR%%/plug-ins/label-sounds.ny
%%DATADIR%%/plug-ins/limiter.ny
%%DATADIR%%/plug-ins/legacy-limiter.ny
%%DATADIR%%/plug-ins/lowpass.ny
%%DATADIR%%/plug-ins/noisegate.ny
%%DATADIR%%/plug-ins/notch.ny

View file

@ -1,5 +1,5 @@
PORTNAME= FAudio
DISTVERSION= 21.01
DISTVERSION= 24.08
CATEGORIES= audio
MAINTAINER= multimedia@FreeBSD.org
@ -10,27 +10,19 @@ LICENSE= ZLIB
LICENSE_FILE= ${WRKSRC}/LICENSE
USES= cmake compiler:c11 sdl
USE_SDL= sdl2
USE_LDCONFIG= yes
USE_GITHUB= yes
GH_ACCOUNT= FNA-XNA
USE_LDCONFIG= yes
USE_SDL= sdl2
PLIST_SUB= SOVERSION=${DISTVERSION:S,., ,g:[1..2]:ts.}
OPTIONS_DEFINE= GSTREAMER
OPTIONS_DEFAULT= GSTREAMER
GSTREAMER_DESC= WMA/XMA support via GStreamer
GSTREAMER_USES= gettext-runtime gnome gstreamer pkgconfig
GSTREAMER_USE= GNOME=glib20
GSTREAMER_CMAKE_BOOL= GSTREAMER
do-test:
@cd ${BUILD_WRKSRC} && \
${SETENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} \
${SETENVI} ${WRK_ENV} ${CONFIGURE_ENV} ${CMAKE_BIN} ${CMAKE_ARGS} \
-DBUILD_TESTS=ON -DBUILD_UTILS=ON ${CMAKE_SOURCE_PATH} && \
${DO_MAKE_BUILD} ${ALL_TARGET}
@${SETENV} SDL_AUDIODRIVER=dummy ${BUILD_WRKSRC}/faudio_tests
@${SETENVI} SDL_AUDIODRIVER=dummy ${BUILD_WRKSRC}/faudio_tests
.include <bsd.port.mk>

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1609598982
SHA256 (FNA-XNA-FAudio-21.01_GH0.tar.gz) = bebe6aa66a64c7d936b44120d59b2bd4aaf6d7999777aa3c6cdb6ccde51ce59d
SIZE (FNA-XNA-FAudio-21.01_GH0.tar.gz) = 1134752
TIMESTAMP = 1725172429
SHA256 (FNA-XNA-FAudio-24.08_GH0.tar.gz) = 7c116d79d24abbca192e63de2d7ee42a679e1994f0a2e79200731b9878fdacca
SIZE (FNA-XNA-FAudio-24.08_GH0.tar.gz) = 1125131

View file

@ -0,0 +1,11 @@
--- CMakeLists.txt.orig 2024-09-01 06:45:46 UTC
+++ CMakeLists.txt
@@ -353,7 +353,7 @@ install(
)
install(
FILES ${CMAKE_CURRENT_BINARY_DIR}/generated/${PROJECT_NAME}.pc
- DESTINATION ${FAudio_INSTALL_LIBDIR}/pkgconfig
+ DESTINATION ${FAudio_INSTALL_LIBDIR}data/pkgconfig
)
# Generate cmake-config file, install CMake files

View file

@ -1,23 +0,0 @@
https://github.com/FNA-XNA/FAudio/issues/183
--- src/FAudio_platform_sdl2.c.orig 2020-04-01 14:55:30 UTC
+++ src/FAudio_platform_sdl2.c
@@ -100,6 +100,18 @@ void FAudio_PlatformInit(
want.samples = want.freq / 100;
}
+ /* SDL audio with arts/dsp backends expect ^2, so round up.
+ * For 48KHz this should be 512.
+ * https://graphics.stanford.edu/~seander/bithacks.html#RoundUpPowerOf2
+ */
+ want.samples--;
+ want.samples |= want.samples >> 1;
+ want.samples |= want.samples >> 2;
+ want.samples |= want.samples >> 4;
+ want.samples |= want.samples >> 8;
+ want.samples |= want.samples >> 16;
+ want.samples++;
+
/* Open the device (or at least try to) */
iosretry:
device = SDL_OpenAudioDevice(

View file

@ -6,9 +6,9 @@ include/FAPOBase.h
include/FAPOFX.h
include/FAudio.h
include/FAudioFX.h
lib/cmake/FAudio/FAudio-config.cmake
lib/cmake/FAudio/FAudio-targets-%%CMAKE_BUILD_TYPE%%.cmake
lib/cmake/FAudio/FAudio-targets.cmake
lib/cmake/FAudio/FAudioConfig.cmake
lib/libFAudio.so
lib/libFAudio.so.0
lib/libFAudio.so.0.%%SOVERSION%%

View file

@ -1,8 +1,13 @@
PORTNAME= fooyin
DISTVERSIONPREFIX= v
DISTVERSION= 0.6.2
PORTREVISION= 1
CATEGORIES= audio multimedia
PATCH_SITES= https://github.com/fooyin/fooyin/commit/
PATCHFILES= a7388331090465ae9c22600bee4769d4c00bbc53.patch:-p1 \
318f2e00952f37e1d237789d7b2605f05639c687.patch:-p1
MAINTAINER= diizzy@FreeBSD.org
COMMENT= foobar2000 inspired audio player
WWW= https://github.com/fooyin/fooyin
@ -10,6 +15,9 @@ WWW= https://github.com/fooyin/fooyin
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/COPYING
NOT_FOR_ARCHS= armv7 i386 powerpc
NOT_FOR_ARCHS_REASON= Fails to build on 32-bit platforms with various errors
LIB_DEPENDS= libavformat.so:multimedia/ffmpeg \
libgme.so:audio/libgme \
libicui18n.so:devel/icu \

View file

@ -1,3 +1,7 @@
TIMESTAMP = 1725140610
TIMESTAMP = 1725468089
SHA256 (fooyin-fooyin-v0.6.2_GH0.tar.gz) = ea1e128820becb70c9c2b1c648cd6c9c8816818709284cfebbdf99cce232af4f
SIZE (fooyin-fooyin-v0.6.2_GH0.tar.gz) = 4598582
SHA256 (a7388331090465ae9c22600bee4769d4c00bbc53.patch) = f9b47961914b69d3b4ede077712f868aa7801ff6da5476b1ab7a7e2f3bacf848
SIZE (a7388331090465ae9c22600bee4769d4c00bbc53.patch) = 715
SHA256 (318f2e00952f37e1d237789d7b2605f05639c687.patch) = 1e79bb05c43ce9234d4104695ce7a95eb76061ca13c1f8a07b1a06bb8011ecc3
SIZE (318f2e00952f37e1d237789d7b2605f05639c687.patch) = 602

View file

@ -1,13 +0,0 @@
--- src/plugins/gme/CMakeLists.txt.orig 2024-08-27 22:28:57 UTC
+++ src/plugins/gme/CMakeLists.txt
@@ -22,6 +22,10 @@ target_include_directories(
gmeinput
PRIVATE ${LIBGME_INCLUDE_DIRS}
)
+target_link_directories(
+ gmeinput
+ PRIVATE ${LIBGME_LIBRARY_DIRS}
+)
fooyin_append_mimes(
audio/x-ay

View file

@ -1,4 +1,4 @@
PORTREVISION= 0
PORTREVISION= 1
CATEGORIES= audio
COMMENT= GStreamer emulate gaming console sound processors plugin

View file

@ -14,6 +14,10 @@ WWW= https://guitarix.org/
LICENSE= GPLv2+
LICENSE_FILE= ${WRKSRC}/COPYING
BROKEN= fails to find faust version, see https://github.com/brummer10/guitarix/issues/135
DEPRECATED= Broken for almost a year
EXPIRATION_DATE=2024-09-30
BUILD_DEPENDS= lv2>0:audio/lv2 \
faust:audio/faust \
${LOCALBASE}/include/fftw3.h:math/fftw3 \
@ -66,8 +70,6 @@ NLS_CONFIGURE_ENABLE= nls
NLS_USES= gettext
NLS_USE= GNOME=intltool
BROKEN= fails to find faust version, see https://github.com/brummer10/guitarix/issues/135
post-install:
# strip, see https://sourceforge.net/p/guitarix/bugs/60/
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/bin/guitarix

View file

@ -1,20 +1,19 @@
PORTNAME= libgme
DISTVERSION= 0.6.3
PORTREVISION= 1
DISTVERSION= 0.6.3-183
DISTVERSIONSUFFIX= -g05a2aa2
CATEGORIES= audio
MASTER_SITES= https://bitbucket.org/mpyne/game-music-emu/downloads/ \
LOCAL/ehaupt
DISTNAME= game-music-emu-${DISTVERSION}
MAINTAINER= ehaupt@FreeBSD.org
COMMENT= Collection of video game music emulators
WWW= https://bitbucket.org/mpyne/game-music-emu
WWW= https://github.com/libgme/game-music-emu
LICENSE= LGPL21+
LICENSE_FILE= ${WRKSRC}/license.txt
USES= cmake compiler:c++11-lang dos2unix tar:xz
USES= cmake compiler:c++11-lang dos2unix pathfix
DOS2UNIX_FILES= ${PORTDOCS}
USE_GITHUB= yes
GH_PROJECT= game-music-emu
USE_LDCONFIG= yes
CMAKE_OFF= ENABLE_UBSAN
@ -23,10 +22,6 @@ PORTDOCS= changes.txt design.txt gme.txt readme.txt
OPTIONS_DEFINE= DOCS
post-patch:
@${REINPLACE_CMD} -e '/pkgconfig/s/lib[[:>:]]/libdata/' \
${WRKSRC}/gme/CMakeLists.txt
post-install-DOCS-on:
@${MKDIR} ${STAGEDIR}${DOCSDIR}
${INSTALL_DATA} ${PORTDOCS:S,^,${WRKSRC}/,} ${STAGEDIR}${DOCSDIR}

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1681316189
SHA256 (game-music-emu-0.6.3.tar.xz) = aba34e53ef0ec6a34b58b84e28bf8cfbccee6585cebca25333604c35db3e051d
SIZE (game-music-emu-0.6.3.tar.xz) = 234412
TIMESTAMP = 1724490683
SHA256 (libgme-game-music-emu-0.6.3-183-g05a2aa2_GH0.tar.gz) = 3dd621457e6ae9100ff85dda76b7bed5ef9eb0c960fc8d0203ef54aac109434c
SIZE (libgme-game-music-emu-0.6.3-183-g05a2aa2_GH0.tar.gz) = 343648

View file

@ -1,13 +0,0 @@
--- gme/blargg_endian.h.orig 2021-02-10 16:11:06 UTC
+++ gme/blargg_endian.h
@@ -33,9 +33,7 @@
#if defined (LSB_FIRST) || defined (__LITTLE_ENDIAN__) || BLARGG_CPU_X86 || \
(defined (LITTLE_ENDIAN) && LITTLE_ENDIAN+0 != 1234)
#define BLARGG_LITTLE_ENDIAN 1
-#endif
-
-#if defined (MSB_FIRST) || defined (__BIG_ENDIAN__) || defined (WORDS_BIGENDIAN) || \
+#elif defined (MSB_FIRST) || defined (__BIG_ENDIAN__) || defined (WORDS_BIGENDIAN) || \
defined (__sparc__) || BLARGG_CPU_POWERPC || \
(defined (BIG_ENDIAN) && BIG_ENDIAN+0 != 4321)
#define BLARGG_BIG_ENDIAN 1

View file

@ -1,6 +1,5 @@
include/gme/blargg_source.h
include/gme/gme.h
lib/libgme.so
lib/libgme.so.0
lib/libgme.so.0.6.3
lib/libgme.so.0.6.4
libdata/pkgconfig/libgme.pc

View file

@ -1,8 +1,8 @@
PORTNAME= libltc
DISTVERSIONPREFIX= v
DISTVERSION= 1.3.2
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= audio
MASTER_SITES= https://github.com/x42/${PORTNAME}/releases/download/v${DISTVERSION}/
MAINTAINER= yuri@FreeBSD.org
COMMENT= Linear/Logitudinal Time Code (LTC) Library
@ -11,15 +11,15 @@ WWW= https://github.com/x42/libltc
LICENSE= LGPL3
LICENSE_FILE= ${WRKSRC}/COPYING
USES= autoreconf gmake libtool
USES= gmake libtool pathfix
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
GNU_CONFIGURE_MANPREFIX= ${PREFIX}/share
USE_GITHUB= yes
GH_ACCOUNT= x42
INSTALL_TARGET= install-strip
TEST_TARGET= check
CONFIGURE_ENV= ac_cv_path_DOXYGEN=no
CONFIGURE_ARGS= --disable-static
.include <bsd.port.mk>

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1662408522
SHA256 (x42-libltc-v1.3.2_GH0.tar.gz) = 78ba31f784792b60be8ff407286f609f0c139b4fe885c714a9c4b580226fe0c8
SIZE (x42-libltc-v1.3.2_GH0.tar.gz) = 110912
TIMESTAMP = 1725809924
SHA256 (libltc-1.3.2.tar.gz) = 0a6d42cd6c21e925a27fa560dc45ac80057d275f23342102825909c02d3b1249
SIZE (libltc-1.3.2.tar.gz) = 449921

View file

@ -1,5 +1,4 @@
include/ltc.h
lib/libltc.a
lib/libltc.so
lib/libltc.so.11
lib/libltc.so.11.2.0

View file

@ -1,6 +1,6 @@
PORTNAME= mpd
PORTVERSION= 0.1
PORTREVISION= 1
PORTREVISION= 2
DISTVERSIONPREFIX= v
CATEGORIES= audio
PKGNAMEPREFIX= ${LUA_PKGNAMEPREFIX}
@ -9,7 +9,7 @@ MAINTAINER= demelier.david@gmail.com
COMMENT= Lua library for musicpd
WWW= https://github.com/silentbicycle/lua-mpd
RUN_DEPENDS= ${LUA_REFMODLIBDIR}/socket/core.so:net/luasocket@${LUA_FLAVOR}
RUN_DEPENDS= ${LUA_REFMODLIBDIR}/socket/core.so:net/lua-luasocket@${LUA_FLAVOR}
OPTIONS_DEFINE= DOCS
DOCSDIR= ${LUA_DOCSDIR}
@ -19,6 +19,8 @@ GH_PROJECT= lua-mpd
USES= lua:51,module
USE_GITHUB= yes
NO_ARCH= yes
NO_BUILD= yes
do-install:

View file

@ -1,6 +1,6 @@
PORTNAME= ocp
PORTVERSION= 0.2.109
PORTREVISION= 1
PORTREVISION= 2
PORTEPOCH= 1
CATEGORIES= audio
MASTER_SITES= https://stian.cubic.org/ocp/

View file

@ -1,6 +1,6 @@
PORTNAME= openspc
PORTVERSION= 0.3.1
PORTREVISION= 10
PORTREVISION= 11
CATEGORIES= audio
MASTER_SITES= http://membres.lycos.fr/pixels/ \
LOCAL/ehaupt
@ -10,16 +10,24 @@ MAINTAINER= ehaupt@FreeBSD.org
COMMENT= Command-line player for .spc and .zst files
WWW= http://membres.lycos.fr/pixels/OpenSPC.html
ONLY_FOR_ARCHS= i386 # contains x86 asm code
GNU_CONFIGURE= yes
INSTALL_TARGET= install-strip
DEPRECATED= Unmaintained upstream. Use audio/libgme or audio/ocp instead.
EXPIRATION_DATE= 2024-12-05
ONLY_FOR_ARCHS= i386 # contains x86 asm code
USES= autoreconf libtool
USE_GCC= yes
USE_LDCONFIG= yes
GNU_CONFIGURE= yes
INSTALL_TARGET= install-strip
PLIST_FILES= bin/OpenSPClite \
include/OpenSPC.h \
lib/libOpenSPC.a \
lib/libOpenSPC.so \
lib/libOpenSPC.so.0 \
lib/libOpenSPC.so.0.3.1
PORTDOCS= README
PLIST_FILES= bin/OpenSPClite include/OpenSPC.h lib/libOpenSPC.a \
lib/libOpenSPC.so lib/libOpenSPC.so.0 lib/libOpenSPC.so.0.3.1
OPTIONS_DEFINE= DOCS

View file

@ -1,5 +1,5 @@
PORTNAME= picard
PORTVERSION= 2.12.2
PORTVERSION= 2.12.3
CATEGORIES= audio python
MASTER_SITES= http://ftp.musicbrainz.org/pub/musicbrainz/picard/ \
ftp://ftp.musicbrainz.org/pub/musicbrainz/picard/ \

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1725247669
SHA256 (picard-2.12.2.tar.gz) = e51fb654a1d54b7020213965c7fc5c98a9d0e44d1dee28c40b2ef85f40204404
SIZE (picard-2.12.2.tar.gz) = 5863787
TIMESTAMP = 1725562679
SHA256 (picard-2.12.3.tar.gz) = a47ff4d60d9b4fd45d8fe3c13348fada1dda9cddd2b602a923af4643d6661a66
SIZE (picard-2.12.3.tar.gz) = 5878683

View file

@ -1,23 +0,0 @@
PORTNAME= resid
PORTVERSION= 0.16
PORTREVISION= 4
CATEGORIES= audio emulators
MASTER_SITES= LOCAL/ehaupt
MAINTAINER= ehaupt@FreeBSD.org
COMMENT= Cycle-based SID emulator engine
LICENSE= GPLv2
DEPRECATED= Upstream recommends using emulators/vice instead
EXPIRATION_DATE=2024-09-03
USES= libtool
GNU_CONFIGURE= yes
USE_LDCONFIG= yes
CONFIGURE_ARGS= --enable-shared
INSTALL_TARGET= install-strip
.include <bsd.port.mk>

View file

@ -1,2 +0,0 @@
SHA256 (resid-0.16.tar.gz) = 830fe4c048053338c8f4c38decdedd93d8c101583958d62536d669f3ac7a66f3
SIZE (resid-0.16.tar.gz) = 266045

View file

@ -1,6 +0,0 @@
Since June 1998, a cycle-based SID emulator engine is available and is
distributed under the GNU General Public License (GPL). It's called reSID, is
programmed in C++, and so far has been developed by Dag Lem.
Requirement for processor power is huge (don't expect a complex SID emulator
like this to run on a machine with less than 233-300 MHz).

View file

@ -1,13 +0,0 @@
include/resid/envelope.h
include/resid/extfilt.h
include/resid/filter.h
include/resid/pot.h
include/resid/sid.h
include/resid/siddefs.h
include/resid/spline.h
include/resid/voice.h
include/resid/wave.h
lib/libresid.a
lib/libresid.so
lib/libresid.so.5
lib/libresid.so.5.0.0

View file

@ -1,5 +1,6 @@
PORTNAME= yoshimi
DISTVERSION= 2.3.2
PORTREVISION= 1
CATEGORIES= audio
MASTER_SITES= SF/${PORTNAME}/${DISTVERSION:R}

View file

@ -1,6 +1,6 @@
PORTNAME= zmusic
DISTVERSION= 1.1.12
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= audio
MAINTAINER= kevans@FreeBSD.org

View file

@ -19,7 +19,7 @@ PLIST_FILES= bin/${PORTNAME} share/man/man1/${PORTNAME}.1.gz
PORTEXAMPLES= *
OPTIONS_DEFINE= OPENMPI EXAMPLES
OPENMPI_DESC= Use Open MPI instead of MPICH2
OPENMPI_DESC= Use Open MPI instead of MPICH
OPENMPI_BUILD_DEPENDS= ${LOCALBASE}/mpi/openmpi/bin/mpicc:net/openmpi
OPENMPI_RUN_DEPENDS= ${LOCALBASE}/mpi/openmpi/bin/mpirun:net/openmpi

View file

@ -1,6 +1,5 @@
PORTNAME= derailed_benchmarks
PORTVERSION= 1.7.0
PORTREVISION= 1
PORTVERSION= 2.1.2
CATEGORIES= benchmarks rubygems
MASTER_SITES= RG
@ -10,16 +9,16 @@ WWW= https://github.com/schneems/derailed_benchmarks
LICENSE= MIT
RUN_DEPENDS= rubygem-benchmark-ips>=2.0.0:benchmarks/rubygem-benchmark-ips \
RUN_DEPENDS= rubygem-benchmark-ips>=2.0.0<3:benchmarks/rubygem-benchmark-ips \
rubygem-dead_end>=0:devel/rubygem-dead_end \
rubygem-get_process_mem0>=0<1:devel/rubygem-get_process_mem0 \
rubygem-heapy>=0:devel/rubygem-heapy \
rubygem-memory_profiler>=0:devel/rubygem-memory_profiler \
rubygem-mini_histogram>=0:devel/rubygem-mini_histogram\
rubygem-heapy>=0<1:devel/rubygem-heapy \
rubygem-memory_profiler>=0<2:devel/rubygem-memory_profiler \
rubygem-mini_histogram>=0.3.0:devel/rubygem-mini_histogram\
rubygem-rack>=1:www/rubygem-rack \
rubygem-rake>=10<14:devel/rubygem-rake \
rubygem-ruby-statistics>=2.1:devel/rubygem-ruby-statistics \
rubygem-thor>=0.19:devel/rubygem-thor \
rubygem-unicode_plot>=0.0.4<1.0.0:textproc/rubygem-unicode_plot
rubygem-thor>=0.19<2:devel/rubygem-thor
USES= gem

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1587531991
SHA256 (rubygem/derailed_benchmarks-1.7.0.gem) = f94a63c53287926ae4450532c52c35162e992cb687dbb16cf6dc78d9f6df990e
SIZE (rubygem/derailed_benchmarks-1.7.0.gem) = 112640
TIMESTAMP = 1725697838
SHA256 (rubygem/derailed_benchmarks-2.1.2.gem) = eaadc6206ceeb5538ff8f5e04a0023d54ebdd95d04f33e8960fb95a5f189a14f
SIZE (rubygem/derailed_benchmarks-2.1.2.gem) = 119296

View file

@ -5,6 +5,7 @@
SUBDIR += R-cran-BiocManager
SUBDIR += abyss
SUBDIR += ad2vcf
SUBDIR += andi
SUBDIR += artemis
SUBDIR += atac-seq
SUBDIR += augustus

View file

@ -1,5 +1,5 @@
PORTNAME= BiocManager
DISTVERSION= 1.30.24
DISTVERSION= 1.30.25
CATEGORIES= biology
DISTNAME= ${PORTNAME}_${PORTVERSION}

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1725005978
SHA256 (BiocManager_1.30.24.tar.gz) = 645c423bb144dbd476cb308678bd36e06c1a3494115f157166dd3f59955ec7d1
SIZE (BiocManager_1.30.24.tar.gz) = 593392
TIMESTAMP = 1725801036
SHA256 (BiocManager_1.30.25.tar.gz) = 83ef8b57dcc7350fe1e8c62590a60d3ad3e1f9c8660930c946b20340a4a81e15
SIZE (BiocManager_1.30.25.tar.gz) = 593414

32
biology/andi/Makefile Normal file
View file

@ -0,0 +1,32 @@
PORTNAME= andi
DISTVERSIONPREFIX= v
DISTVERSION= 0.14-3
DISTVERSIONSUFFIX= -g390af15
CATEGORIES= biology devel
MAINTAINER= yuri@FreeBSD.org
COMMENT= Efficient estimation of evolutionary distances
WWW= https://github.com/EvolBioInf/andi
LICENSE= GPLv3
LICENSE_FILE= ${WRKSRC}/COPYING
LIB_DEPENDS= libdivsufsort.so:math/libdivsufsort \
libgsl.so:math/gsl
USES= autoreconf gmake localbase pkgconfig
USE_LDCONFIG= yes
USE_GITHUB= yes
GH_ACCOUNT= EvolBioInf
GNU_CONFIGURE= yes
OPTIONS_DEFINE= DOCS
PORTDOCS= *
PLIST_FILES= bin/andi \
share/man/man1/andi.1.gz
.include <bsd.port.mk>

3
biology/andi/distinfo Normal file
View file

@ -0,0 +1,3 @@
TIMESTAMP = 1725743879
SHA256 (EvolBioInf-andi-v0.14-3-g390af15_GH0.tar.gz) = 7373445abd107bbc7fed2f3f01e3dbc34955089cf0690e26beb16bd4014b39ce
SIZE (EvolBioInf-andi-v0.14-3-g390af15_GH0.tar.gz) = 539569

4
biology/andi/pkg-descr Normal file
View file

@ -0,0 +1,4 @@
andi is a program for estimating the evolutionary distance between closely
related genomes. These distances can be used to rapidly infer phylogenies
for big sets of genomes. Because andi does not compute full alignments,
it is so efficient that it scales even up to thousands of bacterial genomes.

View file

@ -1,6 +1,6 @@
PORTNAME= iqtree
DISTVERSIONPREFIX= v
DISTVERSION = 2.3.5
DISTVERSION = 2.3.6
CATEGORIES= biology
MAINTAINER= jrm@FreeBSD.org
@ -17,6 +17,7 @@ BROKEN_i386= ld: error: unable to find library -latomic (see bug 230888)
BROKEN_powerpc64= fails to build: GCC version must be at least 4.8!
LIB_DEPENDS= libboost_filesystem.so:devel/boost-libs
USES= cmake eigen:3
USE_GITHUB= yes
GH_PROJECT= iqtree2

View file

@ -1,5 +1,5 @@
TIMESTAMP = 1719861931
SHA256 (iqtree-iqtree2-v2.3.5_GH0.tar.gz) = 8e323e0b7c46e97901d3500f11e810703e0e5d25848188047eca9602d03fa6b1
SIZE (iqtree-iqtree2-v2.3.5_GH0.tar.gz) = 6644556
TIMESTAMP = 1725465363
SHA256 (iqtree-iqtree2-v2.3.6_GH0.tar.gz) = 2d389ea74e19773496363cd68270b341ac7cc47c60e7f32859682403b34744cf
SIZE (iqtree-iqtree2-v2.3.6_GH0.tar.gz) = 6644218
SHA256 (tothuhien-lsd2-125720d9da1281642053713d9b094d5bff2ce9cf_GH0.tar.gz) = acab6984ceeb1e1c45f87bfb30cadd18c29b48088912e80521e8c875ce33a50b
SIZE (tothuhien-lsd2-125720d9da1281642053713d9b094d5bff2ce9cf_GH0.tar.gz) = 592579

View file

@ -1,11 +1,8 @@
PORTNAME= libsbml
PORTVERSION= 5.20.2
PORTVERSION= 5.20.4
DISTVERSIONPREFIX= v
CATEGORIES= biology devel
PATCH_SITES= https://github.com/sbmlteam/libsbml/commit/
PATCHFILES= a3e217851f18d3c5e8e2b0082fb98176738491e8.patch:-p1
MAINTAINER= sunpoet@FreeBSD.org
COMMENT= API Library for Working with SBML File
WWW= https://sbml.org/software/libsbml/ \
@ -18,6 +15,8 @@ LICENSE_FILE= ${WRKSRC}/COPYING.txt
USES= cmake:testing iconv:build pathfix
CMAKE_OFF= EXIT_ON_ERROR \
LIBSBML_SKIP_SHARED_LIBRARY \
LIBSBML_SKIP_STATIC_LIBRARY \
LIBSBML_USE_STRICT_INCLUDES \
PYTHON_USE_API2_WARNINGS \
WITH_ALL_PACKAGES \

View file

@ -1,5 +1,3 @@
TIMESTAMP = 1718430517
SHA256 (sbmlteam-libsbml-v5.20.2_GH0.tar.gz) = a196cab964b0b41164d4118ef20523696510bbfd264a029df00091305a1af540
SIZE (sbmlteam-libsbml-v5.20.2_GH0.tar.gz) = 28799745
SHA256 (a3e217851f18d3c5e8e2b0082fb98176738491e8.patch) = ba4a19fdce1fae693d75f815c3cae52eebfaa7b0d184105b0bac1b0c14782049
SIZE (a3e217851f18d3c5e8e2b0082fb98176738491e8.patch) = 1072
TIMESTAMP = 1725559551
SHA256 (sbmlteam-libsbml-v5.20.4_GH0.tar.gz) = 02c225d3513e1f5d6e3c0168456f568e67f006eddaab82f09b4bdf0d53d2050e
SIZE (sbmlteam-libsbml-v5.20.4_GH0.tar.gz) = 28796139

View file

@ -1,7 +1,6 @@
PORTNAME= ncbi-cxx-toolkit
DISTVERSIONPREFIX= release-
DISTVERSION= 28.0.7
PORTREVISION= 1
DISTVERSION= 28.0.8
CATEGORIES= biology science devel
MAINTAINER= yuri@FreeBSD.org

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1722998494
SHA256 (ncbi-ncbi-cxx-toolkit-public-release-28.0.7_GH0.tar.gz) = 92e926101809b1752357641a7f9b40d0dbee6e9d66f18fe76198020a58c8d172
SIZE (ncbi-ncbi-cxx-toolkit-public-release-28.0.7_GH0.tar.gz) = 57060412
TIMESTAMP = 1725762043
SHA256 (ncbi-ncbi-cxx-toolkit-public-release-28.0.8_GH0.tar.gz) = 4561886175839f991c66d1008e35a5928073b2a3858ca2ef9de7e2797005af6d
SIZE (ncbi-ncbi-cxx-toolkit-public-release-28.0.8_GH0.tar.gz) = 57059075

View file

@ -1,5 +1,5 @@
PORTNAME= pyrodigal
DISTVERSION= 3.5.1
DISTVERSION= 3.5.2
CATEGORIES= biology python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1721678207
SHA256 (pyrodigal-3.5.1.tar.gz) = 20af59a6d968c88910b99d5f647bb7dd22d49e440ead95fe715cdd2c49f36e9f
SIZE (pyrodigal-3.5.1.tar.gz) = 2578391
TIMESTAMP = 1725511908
SHA256 (pyrodigal-3.5.2.tar.gz) = 2a40eb6113e720ada51c326958b295944cdc33ecee9f25d5bad4e9a8e6e6f7f5
SIZE (pyrodigal-3.5.2.tar.gz) = 1857311

View file

@ -36,7 +36,8 @@ USE_LDCONFIG= ${ALLIANCE_TOP}/lib
MAKE_JOBS_UNSAFE= yes
INSTALL_TARGET= install-strip
CFLAGS+= -fcommon
CFLAGS+= -fcommon \
-fpermissive
CONFLICTS_INSTALL= ocp publib

View file

@ -0,0 +1,11 @@
--- scr/src/Makefile.am.orig 2024-09-05 09:01:44 UTC
+++ scr/src/Makefile.am
@@ -3,7 +3,7 @@ AM_YFLAGS = -d
AM_YFLAGS = -d
#CFLAGS = -g -pg -O2
-CFLAGS = -g -O2
+CFLAGS = -g -O2 -fpermissive
#CFLAGS = -O2
AM_CFLAGS = @ALLIANCE_CFLAGS@ \
-I$(top_srcdir)/mbk/src \

View file

@ -1,6 +1,5 @@
PORTNAME= CuraEngine
DISTVERSION= 4.13.1
PORTREVISION= 2
PORTVERSION= 5.7.0
PORTEPOCH= 1
CATEGORIES= cad
DIST_SUBDIR= Ultimaker
@ -11,28 +10,48 @@ WWW= http://wiki.ultimaker.com/Cura
LICENSE= AGPLv3
DEPRECATED= Depends on expired net/libarcus
EXPIRATION_DATE=2024-07-31
BUILD_DEPENDS= ${LOCALBASE}/include/boost/uuid/uuid.hpp:devel/boost-libs \
${LOCALBASE}/include/fmt/format.h:devel/libfmt \
${LOCALBASE}/include/range/v3/range.hpp:devel/range-v3 \
${LOCALBASE}/include/rapidjson/rapidjson.h:devel/rapidjson
LIB_DEPENDS= libArcus.so:net/libarcus \
libpolyclipping.so:graphics/polyclipping \
libprotobuf.so:devel/protobuf \
libspdlog.so:devel/spdlog
LIB_DEPENDS= libArcus.so:net/libarcus \
libprotobuf.so:devel/protobuf
USES= compiler:c++20-lang cmake pkgconfig
USES= compiler:c++11-lang cmake
STB_TAG= d5d052c
STB_TAG= beebb24
SCRIPTA_TAG= c378c83
GEOMETRYHPP_TAG=3b1a10e
WAGYU_TAG= 0.5.0
USE_GITHUB= yes
GH_ACCOUNT= Ultimaker
GH_PROJECT= CuraEngine
GH_TUPLE= nothings:stb:${STB_TAG}:stb/include/stb
GH_TUPLE= mapbox:geometry.hpp:${GEOMETRYHPP_TAG}:geometryhpp \
mapbox:wagyu:${WAGYU_TAG}:wagyu \
nothings:stb:${STB_TAG}:stb/include/stb \
Ultimaker:Scripta_public:${SCRIPTA_TAG}:Scripta_public
CMAKE_ARGS+= -DStb_FOUND:BOOL=ON \
-DStb_INCLUDE_DIRS=${WRKSRC}/include
# disable OpenMP as it does not work (at least) on CURRENT.
# OpenMP support is planned to be replaced with native thread.
# see files/patch-CMakeLists.txt
CMAKE_ARGS+= -DUSE_SYSTEM_LIBS:BOOL=ON \
-DStb_FOUND:BOOL=ON \
-DStb_INCLUDE_DIRS=${WRKSRC}/include/stb
LDFLAGS+= -L${LOCALBASE}/lib
WITH_DEBUGINFO= 1 # Will segfault if Release
PLIST_FILES= bin/CuraEngine
post-extract:
@${MKDIR} ${WRKSRC}/cmake
@for f in FindGMock.cmake FindPolyclipping.cmake FindStb.cmake; do \
${CP} ${FILESDIR}/$$f ${WRKSRC}/cmake; \
done
@for f in CMakeLists.txt CPackConfig.cmake; do \
${CP} ${FILESDIR}/$$f ${WRKSRC}; \
done
@${MV} ${WRKDIR}/Scripta_public-${SCRIPTA_TAG}/include/scripta ${WRKSRC}/include
@${MV} ${WRKDIR}/geometry.hpp-${GEOMETRYHPP_TAG}/include/mapbox ${WRKSRC}/include
@${MV} ${WRKDIR}/wagyu-${WAGYU_TAG}/include/mapbox/geometry/wagyu ${WRKSRC}/include/mapbox/geometry
.include <bsd.port.mk>

View file

@ -1,5 +1,11 @@
TIMESTAMP = 1645697559
SHA256 (Ultimaker/Ultimaker-CuraEngine-4.13.1_GH0.tar.gz) = 283f62326c6072cdcef9d9b84cb8141a6072747f08e1cae6534d08ad85b1c657
SIZE (Ultimaker/Ultimaker-CuraEngine-4.13.1_GH0.tar.gz) = 1727935
SHA256 (Ultimaker/nothings-stb-d5d052c_GH0.tar.gz) = ce1a6424b43287166a962827d83d98cedcd9d515e69052b17d8a7896f9fb7517
SIZE (Ultimaker/nothings-stb-d5d052c_GH0.tar.gz) = 1358441
TIMESTAMP = 1713896563
SHA256 (Ultimaker/Ultimaker-CuraEngine-5.7.0_GH0.tar.gz) = b0f3ccd1e1813354fdc1ced7bed322033cc846cd07454547328bdb4cb313b00b
SIZE (Ultimaker/Ultimaker-CuraEngine-5.7.0_GH0.tar.gz) = 1780860
SHA256 (Ultimaker/mapbox-geometry.hpp-3b1a10e_GH0.tar.gz) = 5af2b21a10c18a364f5a7e7a077655514f2708ea5537f592e1edfb3f25f508ee
SIZE (Ultimaker/mapbox-geometry.hpp-3b1a10e_GH0.tar.gz) = 19518
SHA256 (Ultimaker/mapbox-wagyu-0.5.0_GH0.tar.gz) = 88c41eaba03107ebe79052fdbd66e419e903d331a2616a51849018e13648ab83
SIZE (Ultimaker/mapbox-wagyu-0.5.0_GH0.tar.gz) = 822342
SHA256 (Ultimaker/nothings-stb-beebb24_GH0.tar.gz) = f617df64be72137bfc680675a3e0bb9532bc89dbb1facca551885efa6d5f449e
SIZE (Ultimaker/nothings-stb-beebb24_GH0.tar.gz) = 1506973
SHA256 (Ultimaker/Ultimaker-Scripta_public-c378c83_GH0.tar.gz) = 1c21e1fefd661dd93445d0cfcfb9eaac89c10bd855b7914830c6c8b1a9b17287
SIZE (Ultimaker/Ultimaker-Scripta_public-c378c83_GH0.tar.gz) = 16918

View file

@ -0,0 +1,419 @@
#Copyright (c) 2020 Ultimaker B.V.
#CuraEngine is released under the terms of the AGPLv3 or higher.
cmake_minimum_required(VERSION 3.8.0)
project(CuraEngine)
list(APPEND CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
option(ENABLE_ARCUS "Enable support for ARCUS" ON)
if (MSVC)
option(MSVC_STATIC_RUNTIME "Link the MSVC runtime statically" OFF)
endif()
if(ENABLE_ARCUS)
message(STATUS "Building with Arcus")
# We want to have access to protobuf_generate_cpp and other FindProtobuf features.
# However, if ProtobufConfig is used instead, there is a CMake option that controls
# this, which defaults to OFF. We need to force this option to ON instead.
set(protobuf_MODULE_COMPATIBLE ON CACHE INTERNAL "" FORCE)
find_package(Protobuf 3.0.0 REQUIRED)
find_package(Arcus REQUIRED)
add_definitions(-DARCUS)
find_program(PROTOC "protoc")
if(${PROTOC} STREQUAL "PROTOC-NOTFOUND")
message(FATAL_ERROR "Protobuf compiler missing")
endif()
endif()
#For reading image files.
find_package(Stb REQUIRED)
include_directories(${Stb_INCLUDE_DIRS})
option(USE_SYSTEM_LIBS "Use the system libraries if available" OFF)
if(USE_SYSTEM_LIBS)
find_package(RapidJSON CONFIG REQUIRED)
find_package(Polyclipping REQUIRED)
endif()
# convert build type to upper case letters
if(CMAKE_BUILD_TYPE)
string(TOUPPER ${CMAKE_BUILD_TYPE} CMAKE_BUILD_TYPE_UPPER)
endif()
if(CMAKE_BUILD_TYPE_UPPER MATCHES "DEBUG")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_DEBUG_INIT}")
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_RELEASE_INIT}")
endif()
set(CMAKE_CXX_STANDARD 20)
if(APPLE AND CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -stdlib=libc++")
endif()
OPTION(SET_RPATH ON)
if(SET_RPATH)
if(NOT DEFINED LIB_SUFFIX)
set(LIB_SUFFIX "")
endif()
set(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib${LIB_SUFFIX}")
endif()
set(CURA_ENGINE_VERSION "master" CACHE STRING "Version name of Cura")
option(BUILD_TESTS OFF)
# Add a compiler flag to check the output for insane values if we are in debug mode.
if(CMAKE_BUILD_TYPE_UPPER MATCHES "DEBUG" OR CMAKE_BUILD_TYPE_UPPER MATCHES "RELWITHDEBINFO")
message(STATUS "Building debug release of CuraEngine.")
if (NOT MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wextra -O0 -g -fno-omit-frame-pointer")
endif()
add_definitions(-DASSERT_INSANE_OUTPUT)
add_definitions(-DUSE_CPU_TIME)
add_definitions(-DDEBUG)
endif()
if (MSVC)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /permissive- /Zc:twoPhase- /EHsc /W3")
if (MSVC_STATIC_RUNTIME)
foreach(flag_var
CMAKE_CXX_FLAGS
CMAKE_CXX_FLAGS_DEBUG
CMAKE_CXX_FLAGS_RELEASE
CMAKE_CXX_FLAGS_MINSIZEREL
CMAKE_CXX_FLAGS_RELWITHDEBINFO
)
if(${flag_var} MATCHES "/MD")
string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}")
endif()
endforeach()
endif()
else()
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall") # Add warnings
endif()
option (ENABLE_MORE_COMPILER_OPTIMIZATION_FLAGS
"Enable more optimization flags" ON)
if (ENABLE_MORE_COMPILER_OPTIMIZATION_FLAGS AND NOT (CMAKE_BUILD_TYPE_UPPER MATCHES "DEBUG"))
message (STATUS "Compile with more optimization flags")
if (MSVC)
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} /fp:fast")
else()
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS} -Ofast -funroll-loops")
endif()
endif ()
#if(NOT APPLE AND NOT WIN32)
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -static-libstdc++")
#endif()
if (WIN32)
add_definitions(-DNOMINMAX)
endif()
add_definitions(-DSPDLOG_FMT_EXTERNAL)
option (ENABLE_OPENMP
"Use OpenMP for parallel code" ON)
if (ENABLE_OPENMP)
FIND_PACKAGE( OpenMP )
if( OPENMP_FOUND )
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}" )
endif()
endif()
if(USE_SYSTEM_LIBS)
include_directories(${Polyclipping_INCLUDE_DIRS} "${CMAKE_BINARY_DIR}" ${RAPIDJSON_INCLUDE_DIRS} include)
else()
include_directories("${CMAKE_CURRENT_BINARY_DIR}" libs libs/clipper include)
add_library(clipper STATIC libs/clipper/clipper.cpp)
endif()
set(engine_SRCS # Except main.cpp.
src/Application.cpp
src/ConicalOverhang.cpp
src/ExtruderPlan.cpp
src/ExtruderTrain.cpp
src/FffGcodeWriter.cpp
src/FffPolygonGenerator.cpp
src/FffProcessor.cpp
src/GCodePathConfig.cpp
src/InsetOrderOptimizer.cpp
src/InterlockingGenerator.cpp
src/LayerPlan.cpp
src/LayerPlanBuffer.cpp
src/MeshGroup.cpp
src/Mold.cpp
src/PathOrderPath.cpp
src/Preheat.cpp
src/PrimeTower.cpp
src/Scene.cpp
src/SkeletalTrapezoidation.cpp
src/SkeletalTrapezoidationGraph.cpp
src/SkirtBrim.cpp
src/Slice.cpp
src/SupportInfillPart.cpp
src/TopSurface.cpp
src/TreeModelVolumes.cpp
src/TreeSupport.cpp
src/TreeSupportTipGenerator.cpp
src/WallToolPaths.cpp
src/WallsComputation.cpp
src/bridge.cpp
src/gcodeExport.cpp
src/infill.cpp
src/layerPart.cpp
src/main.cpp
src/mesh.cpp
src/multiVolumes.cpp
src/raft.cpp
src/skin.cpp
src/sliceDataStorage.cpp
src/slicer.cpp
src/support.cpp
src/timeEstimate.cpp
src/BeadingStrategy/BeadingStrategy.cpp
src/BeadingStrategy/BeadingStrategyFactory.cpp
src/BeadingStrategy/DistributedBeadingStrategy.cpp
src/BeadingStrategy/LimitedBeadingStrategy.cpp
src/BeadingStrategy/OuterWallInsetBeadingStrategy.cpp
src/BeadingStrategy/RedistributeBeadingStrategy.cpp
src/BeadingStrategy/WideningBeadingStrategy.cpp
src/communication/ArcusCommunication.cpp
src/communication/ArcusCommunicationPrivate.cpp
src/communication/CommandLine.cpp
src/communication/Listener.cpp
src/infill/GyroidInfill.cpp
src/infill/ImageBasedDensityProvider.cpp
src/infill/LightningDistanceField.cpp
src/infill/LightningGenerator.cpp
src/infill/LightningLayer.cpp
src/infill/LightningTreeNode.cpp
src/infill/NoZigZagConnectorProcessor.cpp
src/infill/SierpinskiFill.cpp
src/infill/SierpinskiFillProvider.cpp
src/infill/SubDivCube.cpp
src/infill/ZigzagConnectorProcessor.cpp
src/pathPlanning/Comb.cpp
src/pathPlanning/GCodePath.cpp
src/pathPlanning/LinePolygonsCrossings.cpp
src/pathPlanning/NozzleTempInsert.cpp
src/pathPlanning/SpeedDerivatives.cpp
src/progress/Progress.cpp
src/progress/ProgressStageEstimator.cpp
src/settings/AdaptiveLayerHeights.cpp
src/settings/FlowTempGraph.cpp
src/settings/MeshPathConfigs.cpp
src/settings/PathConfigStorage.cpp
src/settings/Settings.cpp
src/settings/ZSeamConfig.cpp
src/utils/AABB.cpp
src/utils/AABB3D.cpp
src/utils/Date.cpp
src/utils/ExtrusionJunction.cpp
src/utils/ExtrusionLine.cpp
src/utils/ExtrusionSegment.cpp
src/utils/LinearAlg2D.cpp
src/utils/ListPolyIt.cpp
src/utils/Matrix4x3D.cpp
src/utils/MinimumSpanningTree.cpp
src/utils/Point3LL.cpp
src/utils/PolygonConnector.cpp
src/utils/PolygonsPointIndex.cpp
src/utils/PolygonsSegmentIndex.cpp
src/utils/PolylineStitcher.cpp
src/utils/SVG.cpp
src/utils/Simplify.cpp
src/utils/SquareGrid.cpp
src/utils/ThreadPool.cpp
src/utils/ToolpathVisualizer.cpp
src/utils/VoronoiUtils.cpp
src/utils/VoxelUtils.cpp
src/utils/channel.cpp
src/utils/gettime.cpp
src/utils/polygon.cpp
src/utils/polygonUtils.cpp
)
# List of tests. For each test there must be a file tests/${NAME}.cpp.
set(engine_TEST
GCodeExportTest
InfillTest
LayerPlanTest
MergeInfillLinesTest
PathOrderMonotonicTest
TimeEstimateCalculatorTest
)
set(engine_TEST_INTEGRATION
SlicePhaseTest
)
set(engine_TEST_SETTINGS
SettingsTest
)
if (ENABLE_ARCUS)
set(engine_TEST_ARCUS
ArcusCommunicationTest
ArcusCommunicationPrivateTest
)
endif ()
set(engine_TEST_UTILS
AABBTest
AABB3DTest
IntPointTest
LinearAlg2DTest
MinimumSpanningTreeTest
PolygonConnectorTest
PolygonTest
PolygonUtilsTest
SparseGridTest
StringTest
UnionFindTest
)
# Helper classes for some tests.
set(engine_TEST_ARCUS_HELPERS
tests/arcus/MockSocket.cpp
)
set(engine_TEST_HELPERS
tests/ReadTestPolygons.cpp
)
# Generating ProtoBuf protocol
if (ENABLE_ARCUS)
protobuf_generate_cpp(engine_PB_SRCS engine_PB_HEADERS Cura.proto)
endif ()
# Compiling CuraEngine itself.
add_library(_CuraEngine STATIC ${engine_SRCS} ${engine_PB_SRCS}) #First compile all of CuraEngine as library, allowing this to be re-used for tests.
if (CuraEngine_Download_Stb)
add_dependencies(_CuraEngine stb)
endif()
if(USE_SYSTEM_LIBS)
target_link_libraries(_CuraEngine ${Polyclipping_LIBRARIES})
else()
target_link_libraries(_CuraEngine clipper)
endif()
if (ENABLE_ARCUS)
target_link_libraries(_CuraEngine Arcus)
endif ()
target_link_libraries(_CuraEngine fmt absl_log_internal_message absl_log_internal_check_op)
set_target_properties(_CuraEngine PROPERTIES COMPILE_DEFINITIONS "VERSION=\"${CURA_ENGINE_VERSION}\"")
if(WIN32)
message(STATUS "Using windres")
set(RES_FILES "CuraEngine.rc")
ENABLE_LANGUAGE(RC)
if(NOT MSVC)
SET(CMAKE_RC_COMPILER_INIT windres)
SET(CMAKE_RC_COMPILE_OBJECT
"<CMAKE_RC_COMPILER> <FLAGS> -O coff <DEFINES> -i <SOURCE> -o <OBJECT>"
)
endif()
endif(WIN32)
if (UNIX)
target_link_libraries(_CuraEngine pthread)
endif()
if (NOT WIN32)
add_executable(CuraEngine src/main.cpp) # Then compile main.cpp as separate executable, and link the library to it.
else()
add_executable(CuraEngine src/main.cpp ${RES_FILES}) # ..., but don't forget the glitter!
endif(NOT WIN32)
target_link_libraries(CuraEngine _CuraEngine)
set_target_properties(CuraEngine PROPERTIES COMPILE_DEFINITIONS "VERSION=\"${CURA_ENGINE_VERSION}\"")
# Compiling the test environment.
if (BUILD_TESTS)
include(CTest)
message(STATUS "Building tests...")
set(GTEST_USE_STATIC_LIBS true)
set(GMOCK_ROOT "${CMAKE_CURRENT_BINARY_DIR}/gmock")
set(GMOCK_VER "1.8.0")
find_package(GMock REQUIRED)
include_directories(${GTEST_INCLUDE_DIRS})
include_directories(${GMOCK_INCLUDE_DIRS})
add_dependencies(_CuraEngine GTest::GTest GTest::Main GMock::GMock GMock::Main)
add_definitions(-DBUILD_TESTS)
target_compile_definitions(_CuraEngine PUBLIC BUILD_TESTS=1)
#To make sure that the tests are built before running them, add the building of these tests as an additional test.
add_custom_target(build_all_tests)
add_test(BuildTests "${CMAKE_COMMAND}" --build "${CMAKE_CURRENT_BINARY_DIR}" --target build_all_tests)
foreach (test ${engine_TEST})
add_executable(${test} tests/main.cpp ${engine_TEST_HELPERS} tests/${test}.cpp)
target_link_libraries(${test} _CuraEngine ${GTEST_BOTH_LIBRARIES} ${GMOCK_BOTH_LIBRARIES})
add_test(NAME ${test} COMMAND "${test}" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/tests/")
add_dependencies(build_all_tests ${test}) #Make sure that this gets built as part of the build_all_tests target.
endforeach()
foreach (test ${engine_TEST_INFILL})
add_executable(${test} tests/main.cpp tests/infill/${test}.cpp)
target_link_libraries(${test} _CuraEngine ${GTEST_BOTH_LIBRARIES} ${GMOCK_BOTH_LIBRARIES})
add_test(NAME ${test} COMMAND "${test}" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/tests/")
add_dependencies(build_all_tests ${test}) #Make sure that this gets built as part of the build_all_tests target.
endforeach()
foreach (test ${engine_TEST_INTEGRATION})
add_executable(${test} tests/main.cpp tests/integration/${test}.cpp)
target_link_libraries(${test} _CuraEngine ${GTEST_BOTH_LIBRARIES} ${GMOCK_BOTH_LIBRARIES})
add_test(NAME ${test} COMMAND "${test}" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/tests/")
add_dependencies(build_all_tests ${test}) #Make sure that this gets built as part of the build_all_tests target.
endforeach()
foreach (test ${engine_TEST_SETTINGS})
add_executable(${test} tests/main.cpp tests/settings/${test}.cpp)
target_link_libraries(${test} _CuraEngine ${GTEST_BOTH_LIBRARIES} ${GMOCK_BOTH_LIBRARIES})
add_test(NAME ${test} COMMAND "${test}" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/tests/")
add_dependencies(build_all_tests ${test}) #Make sure that this gets built as part of the build_all_tests target.
endforeach()
if (ENABLE_ARCUS)
foreach (test ${engine_TEST_ARCUS})
add_executable(${test} tests/main.cpp ${engine_TEST_ARCUS_HELPERS} tests/arcus/${test}.cpp)
target_link_libraries(${test} _CuraEngine ${GTEST_BOTH_LIBRARIES} ${GMOCK_BOTH_LIBRARIES})
add_test(NAME ${test} COMMAND "${test}" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/tests/")
add_dependencies(build_all_tests ${test}) #Make sure that this gets built as part of the build_all_tests target.
endforeach()
endif ()
foreach (test ${engine_TEST_UTILS})
add_executable(${test} tests/main.cpp tests/utils/${test}.cpp)
target_link_libraries(${test} _CuraEngine ${GTEST_BOTH_LIBRARIES} ${GMOCK_BOTH_LIBRARIES})
add_test(NAME ${test} COMMAND "${test}" WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/tests/")
add_dependencies(build_all_tests ${test}) #Make sure that this gets built as part of the build_all_tests target.
endforeach()
endif()
# Installing CuraEngine.
include(GNUInstallDirs)
install(TARGETS CuraEngine DESTINATION "${CMAKE_INSTALL_BINDIR}")
# For MinGW64 cross compiling on Debian, we create a ZIP package instead of a DEB
# Because it's the Windows build system that should install the files.
if (CMAKE_CROSSCOMPILING AND CMAKE_SYSTEM_NAME MATCHES "Windows")
message(STATUS "Include MinGW64 posix DLLs for installation.")
install(FILES
/usr/lib/gcc/x86_64-w64-mingw32/8.3-posix/libgcc_s_seh-1.dll
/usr/lib/gcc/x86_64-w64-mingw32/8.3-posix/libgomp-1.dll
/usr/lib/gcc/x86_64-w64-mingw32/8.3-posix/libstdc++-6.dll
DESTINATION bin
COMPONENT runtime)
endif ()
include(CPackConfig.cmake)

View file

@ -0,0 +1,20 @@
set(CPACK_PACKAGE_VENDOR "Ultimaker")
set(CPACK_PACKAGE_CONTACT "Arjen Hiemstra <a.hiemstra@ultimaker.com>")
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY "Cura Engine")
set(CPACK_PACKAGE_VERSION "15.05.90")
set(CPACK_GENERATOR "DEB")
if(NOT DEFINED CPACK_DEBIAN_PACKAGE_ARCHITECTURE)
execute_process(COMMAND dpkg --print-architecture OUTPUT_VARIABLE CPACK_DEBIAN_PACKAGE_ARCHITECTURE OUTPUT_STRIP_TRAILING_WHITESPACE)
endif()
set(CPACK_PACKAGE_FILE_NAME "${CMAKE_PROJECT_NAME}-${CPACK_PACKAGE_VERSION}_${CPACK_DEBIAN_PACKAGE_ARCHITECTURE}")
set(DEB_DEPENDS
"arcus (>= 15.05.90)"
"protobuf (>= 3.0.0)"
"libstdc++6 (>= 4.9.0)"
"libgcc1 (>= 4.9.0)"
)
string(REPLACE ";" ", " DEB_DEPENDS "${DEB_DEPENDS}")
set(CPACK_DEBIAN_PACKAGE_DEPENDS ${DEB_DEPENDS})
include(CPack)

View file

@ -0,0 +1,515 @@
# Get the Google C++ Mocking Framework.
# (This file is almost an copy of the original FindGTest.cmake file,
# altered to download and compile GMock and GTest if not found
# in GMOCK_ROOT or GTEST_ROOT respectively,
# feel free to use it as it is or modify it for your own needs.)
#
# Defines the following variables:
#
# GMOCK_FOUND - Found or got the Google Mocking framework
# GTEST_FOUND - Found or got the Google Testing framework
# GMOCK_INCLUDE_DIRS - GMock include directory
# GTEST_INCLUDE_DIRS - GTest include direcotry
#
# Also defines the library variables below as normal variables
#
# GMOCK_BOTH_LIBRARIES - Both libgmock & libgmock_main
# GMOCK_LIBRARIES - libgmock
# GMOCK_MAIN_LIBRARIES - libgmock-main
#
# GTEST_BOTH_LIBRARIES - Both libgtest & libgtest_main
# GTEST_LIBRARIES - libgtest
# GTEST_MAIN_LIBRARIES - libgtest_main
#
# Accepts the following variables as input:
#
# GMOCK_ROOT - The root directory of the gmock install prefix
# GTEST_ROOT - The root directory of the gtest install prefix
# GMOCK_SRC_DIR -The directory of the gmock sources
# GMOCK_VER - The version of the gmock sources to be downloaded
#
#-----------------------
# Example Usage:
#
# set(GMOCK_ROOT "~/gmock")
# find_package(GMock REQUIRED)
# include_directories(${GMOCK_INCLUDE_DIRS})
#
# add_executable(foo foo.cc)
# target_link_libraries(foo ${GMOCK_BOTH_LIBRARIES})
#
#=============================================================================
# Copyright (c) 2016 Michel Estermann
# Copyright (c) 2016 Kamil Strzempowicz
# Copyright (c) 2011 Matej Svec
#
# CMake - Cross Platform Makefile Generator
# Copyright 2000-2016 Kitware, Inc.
# Copyright 2000-2011 Insight Software Consortium
# 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.
#
# * Neither the names of Kitware, Inc., the Insight Software Consortium,
# nor the names of their contributors may be used to endorse or promote
# products derived from this software without specific prior written
# permission.
#
# 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.
#
# ------------------------------------------------------------------------------
#
# The above copyright and license notice applies to distributions of
# CMake in source and binary form. Some source files contain additional
# notices of original copyright by their contributors; see each source
# for details. Third-party software packages supplied with CMake under
# compatible licenses provide their own copyright notices documented in
# corresponding subdirectories.
#
# ------------------------------------------------------------------------------
#
# CMake was initially developed by Kitware with the following sponsorship:
#
# * National Library of Medicine at the National Institutes of Health
# as part of the Insight Segmentation and Registration Toolkit (ITK).
#
# * US National Labs (Los Alamos, Livermore, Sandia) ASC Parallel
# Visualization Initiative.
#
# * National Alliance for Medical Image Computing (NAMIC) is funded by the
# National Institutes of Health through the NIH Roadmap for Medical Research,
# Grant U54 EB005149.
#
# * Kitware, Inc.
#=============================================================================
# Thanks to Daniel Blezek <blezek@gmail.com> for the GTEST_ADD_TESTS code
function(gtest_add_tests executable extra_args)
if(NOT ARGN)
message(FATAL_ERROR "Missing ARGN: Read the documentation for GTEST_ADD_TESTS")
endif()
if(ARGN STREQUAL "AUTO")
# obtain sources used for building that executable
get_property(ARGN TARGET ${executable} PROPERTY SOURCES)
endif()
set(gtest_case_name_regex ".*\\( *([A-Za-z_0-9]+) *, *([A-Za-z_0-9]+) *\\).*")
set(gtest_test_type_regex "(TYPED_TEST|TEST_?[FP]?)")
foreach(source ${ARGN})
file(READ "${source}" contents)
string(REGEX MATCHALL "${gtest_test_type_regex} *\\(([A-Za-z_0-9 ,]+)\\)" found_tests ${contents})
foreach(hit ${found_tests})
string(REGEX MATCH "${gtest_test_type_regex}" test_type ${hit})
# Parameterized tests have a different signature for the filter
if("x${test_type}" STREQUAL "xTEST_P")
string(REGEX REPLACE ${gtest_case_name_regex} "*/\\1.\\2/*" test_name ${hit})
elseif("x${test_type}" STREQUAL "xTEST_F" OR "x${test_type}" STREQUAL "xTEST")
string(REGEX REPLACE ${gtest_case_name_regex} "\\1.\\2" test_name ${hit})
elseif("x${test_type}" STREQUAL "xTYPED_TEST")
string(REGEX REPLACE ${gtest_case_name_regex} "\\1/*.\\2" test_name ${hit})
else()
message(WARNING "Could not parse GTest ${hit} for adding to CTest.")
continue()
endif()
add_test(NAME ${test_name} COMMAND ${executable} --gtest_filter=${test_name} ${extra_args})
endforeach()
endforeach()
endfunction()
function(_append_debugs _endvar _library)
if(${_library} AND ${_library}_DEBUG)
set(_output optimized ${${_library}} debug ${${_library}_DEBUG})
else()
set(_output ${${_library}})
endif()
set(${_endvar} ${_output} PARENT_SCOPE)
endfunction()
function(_gmock_find_library _name)
find_library(${_name}
NAMES ${ARGN}
HINTS
ENV GMOCK_ROOT
${GMOCK_ROOT}
PATH_SUFFIXES ${_gmock_libpath_suffixes}
)
mark_as_advanced(${_name})
endfunction()
function(_gtest_find_library _name)
find_library(${_name}
NAMES ${ARGN}
HINTS
ENV GTEST_ROOT
${GTEST_ROOT}
PATH_SUFFIXES ${_gtest_libpath_suffixes}
)
mark_as_advanced(${_name})
endfunction()
if(NOT DEFINED GMOCK_MSVC_SEARCH)
set(GMOCK_MSVC_SEARCH MD)
endif()
set(_gmock_libpath_suffixes lib)
set(_gtest_libpath_suffixes lib)
if(MSVC)
if(GMOCK_MSVC_SEARCH STREQUAL "MD")
list(APPEND _gmock_libpath_suffixes
msvc/gmock-md/Debug
msvc/gmock-md/Release)
list(APPEND _gtest_libpath_suffixes
msvc/gtest-md/Debug
msvc/gtest-md/Release)
elseif(GMOCK_MSVC_SEARCH STREQUAL "MT")
list(APPEND _gmock_libpath_suffixes
msvc/gmock/Debug
msvc/gmock/Release)
list(APPEND _gtest_libpath_suffixes
msvc/gtest/Debug
msvc/gtest/Release)
endif()
endif()
find_path(GMOCK_INCLUDE_DIR gmock/gmock.h
HINTS
$ENV{GMOCK_ROOT}/include
${GMOCK_ROOT}/include
)
mark_as_advanced(GMOCK_INCLUDE_DIR)
find_path(GTEST_INCLUDE_DIR gtest/gtest.h
HINTS
$ENV{GTEST_ROOT}/include
${GTEST_ROOT}/include
)
mark_as_advanced(GTEST_INCLUDE_DIR)
if(MSVC AND GMOCK_MSVC_SEARCH STREQUAL "MD")
# The provided /MD project files for Google Mock add -md suffixes to the
# library names.
_gmock_find_library(GMOCK_LIBRARY gmock-md gmock)
_gmock_find_library(GMOCK_LIBRARY_DEBUG gmock-mdd gmockd)
_gmock_find_library(GMOCK_MAIN_LIBRARY gmock_main-md gmock_main)
_gmock_find_library(GMOCK_MAIN_LIBRARY_DEBUG gmock_main-mdd gmock_maind)
_gtest_find_library(GTEST_LIBRARY gtest-md gtest)
_gtest_find_library(GTEST_LIBRARY_DEBUG gtest-mdd gtestd)
_gtest_find_library(GTEST_MAIN_LIBRARY gtest_main-md gtest_main)
_gtest_find_library(GTEST_MAIN_LIBRARY_DEBUG gtest_main-mdd gtest_maind)
else()
_gmock_find_library(GMOCK_LIBRARY gmock)
_gmock_find_library(GMOCK_LIBRARY_DEBUG gmockd)
_gmock_find_library(GMOCK_MAIN_LIBRARY gmock_main)
_gmock_find_library(GMOCK_MAIN_LIBRARY_DEBUG gmock_maind)
_gtest_find_library(GTEST_LIBRARY gtest)
_gtest_find_library(GTEST_LIBRARY_DEBUG gtestd)
_gtest_find_library(GTEST_MAIN_LIBRARY gtest_main)
_gtest_find_library(GTEST_MAIN_LIBRARY_DEBUG gtest_maind)
endif()
if(NOT TARGET GTest::GTest)
add_library(GTest::GTest UNKNOWN IMPORTED)
endif()
if(NOT TARGET GTest::Main)
add_library(GTest::Main UNKNOWN IMPORTED)
endif()
if(NOT TARGET GMock::GMock)
add_library(GMock::GMock UNKNOWN IMPORTED)
endif()
if(NOT TARGET GMock::Main)
add_library(GMock::Main UNKNOWN IMPORTED)
endif()
set(GMOCK_LIBRARY_EXISTS OFF)
set(GTEST_LIBRARY_EXISTS OFF)
if(EXISTS "${GMOCK_LIBRARY}" OR EXISTS "${GMOCK_LIBRARY_DEBUG}" AND GMOCK_INCLUDE_DIR)
set(GMOCK_LIBRARY_EXISTS ON)
endif()
if(EXISTS "${GTEST_LIBRARY}" OR EXISTS "${GTEST_LIBRARY_DEBUG}" AND GTEST_INCLUDE_DIR)
set(GTEST_LIBRARY_EXISTS ON)
endif()
if(NOT (${GMOCK_LIBRARY_EXISTS} AND ${GTEST_LIBRARY_EXISTS}))
include(ExternalProject)
if(GTEST_USE_STATIC_LIBS)
set(GTEST_CMAKE_ARGS -Dgtest_force_shared_crt:BOOL=ON -DBUILD_SHARED_LIBS=OFF)
if(BUILD_SHARED_LIBS)
list(APPEND GTEST_CMAKE_ARGS
-DCMAKE_POSITION_INDEPENDENT_CODE=ON
-Dgtest_hide_internal_symbols=ON
-DCMAKE_CXX_VISIBILITY_PRESET=hidden
-DCMAKE_VISIBILITY_INLINES_HIDDEN=ON
-DCMAKE_POLICY_DEFAULT_CMP0063=NEW
)
endif()
set(GTEST_LIBRARY_PREFIX ${CMAKE_STATIC_LIBRARY_PREFIX})
else()
set(GTEST_CMAKE_ARGS -DBUILD_SHARED_LIBS=ON)
set(GTEST_LIBRARY_PREFIX ${CMAKE_SHARED_LIBRARY_PREFIX})
endif()
if(WIN32)
list(APPEND GTEST_CMAKE_ARGS -Dgtest_disable_pthreads=ON)
endif()
if("${GMOCK_SRC_DIR}" STREQUAL "")
message(STATUS "Downloading GMock / GTest version ${GMOCK_VER} from git")
if("${GMOCK_VER}" STREQUAL "1.6.0" OR "${GMOCK_VER}" STREQUAL "1.7.0")
set(GTEST_BIN_DIR "${GMOCK_ROOT}/src/gtest-build")
set(GTEST_LIBRARY "${GTEST_BIN_DIR}/${CMAKE_CFG_INTDIR}/${GTEST_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}")
set(GTEST_MAIN_LIBRARY "${GTEST_BIN_DIR}/${CMAKE_CFG_INTDIR}/${GTEST_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX}")
mark_as_advanced(GTEST_LIBRARY)
mark_as_advanced(GTEST_MAIN_LIBRARY)
externalproject_add(
gtest
GIT_REPOSITORY "https://github.com/google/googletest.git"
GIT_TAG "release-${GMOCK_VER}"
PREFIX ${GMOCK_ROOT}
INSTALL_COMMAND ""
LOG_DOWNLOAD ON
LOG_CONFIGURE ON
LOG_BUILD ON
CMAKE_ARGS
${GTEST_CMAKE_ARGS}
BINARY_DIR ${GTEST_BIN_DIR}
BUILD_BYPRODUCTS
"${GTEST_LIBRARY}"
"${GTEST_MAIN_LIBRARY}"
)
set(GMOCK_BIN_DIR "${GMOCK_ROOT}/src/gmock-build")
set(GMOCK_LIBRARY "${GMOCK_BIN_DIR}/${CMAKE_CFG_INTDIR}/${GTEST_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX}")
set(GMOCK_MAIN_LIBRARY "${GMOCK_BIN_DIR}/${CMAKE_CFG_INTDIR}/${GTEST_LIBRARY_PREFIX}gmock_main${CMAKE_STATIC_LIBRARY_SUFFIX}")
mark_as_advanced(GMOCK_LIBRARY)
mark_as_advanced(GMOCK_MAIN_LIBRARY)
externalproject_add(
gmock
GIT_REPOSITORY "https://github.com/google/googlemock.git"
GIT_TAG "release-${GMOCK_VER}"
PREFIX ${GMOCK_ROOT}
INSTALL_COMMAND ""
LOG_DOWNLOAD ON
LOG_CONFIGURE ON
LOG_BUILD ON
CMAKE_ARGS
${GTEST_CMAKE_ARGS}
BINARY_DIR ${GMOCK_BIN_DIR}
BUILD_BYPRODUCTS
"${GMOCK_LIBRARY}"
"${GMOCK_MAIN_LIBRARY}"
)
add_dependencies(gmock gtest)
add_dependencies(GTest::GTest gtest)
add_dependencies(GTest::Main gtest)
add_dependencies(GMock::GMock gmock)
add_dependencies(GMock::Main gmock)
externalproject_get_property(gtest source_dir)
set(GTEST_INCLUDE_DIR "${source_dir}/include")
mark_as_advanced(GTEST_INCLUDE_DIR)
externalproject_get_property(gmock source_dir)
set(GMOCK_INCLUDE_DIR "${source_dir}/include")
mark_as_advanced(GMOCK_INCLUDE_DIR)
else() #1.8.0
set(GMOCK_BIN_DIR "${GMOCK_ROOT}/src/gmock-build")
set(GTEST_LIBRARY "${GMOCK_BIN_DIR}/googlemock/gtest/${CMAKE_CFG_INTDIR}/${GTEST_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}")
set(GTEST_MAIN_LIBRARY "${GMOCK_BIN_DIR}/googlemock/gtest/${CMAKE_CFG_INTDIR}/${GTEST_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX}")
set(GMOCK_LIBRARY "${GMOCK_BIN_DIR}/googlemock/${CMAKE_CFG_INTDIR}/${GTEST_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX}")
set(GMOCK_MAIN_LIBRARY "${GMOCK_BIN_DIR}/googlemock/${CMAKE_CFG_INTDIR}/${GTEST_LIBRARY_PREFIX}gmock_main${CMAKE_STATIC_LIBRARY_SUFFIX}")
mark_as_advanced(GTEST_LIBRARY)
mark_as_advanced(GTEST_MAIN_LIBRARY)
mark_as_advanced(GMOCK_LIBRARY)
mark_as_advanced(GMOCK_MAIN_LIBRARY)
externalproject_add(
gmock
GIT_REPOSITORY "https://github.com/google/googletest.git"
GIT_TAG "release-${GMOCK_VER}"
PREFIX ${GMOCK_ROOT}
INSTALL_COMMAND ""
LOG_DOWNLOAD ON
LOG_CONFIGURE ON
LOG_BUILD ON
CMAKE_ARGS
${GTEST_CMAKE_ARGS}
BINARY_DIR "${GMOCK_BIN_DIR}"
BUILD_BYPRODUCTS
"${GTEST_LIBRARY}"
"${GTEST_MAIN_LIBRARY}"
"${GMOCK_LIBRARY}"
"${GMOCK_MAIN_LIBRARY}"
)
add_dependencies(GTest::GTest gmock)
add_dependencies(GTest::Main gmock)
add_dependencies(GMock::GMock gmock)
add_dependencies(GMock::Main gmock)
externalproject_get_property(gmock source_dir)
set(GTEST_INCLUDE_DIR "${source_dir}/googletest/include")
set(GMOCK_INCLUDE_DIR "${source_dir}/googlemock/include")
mark_as_advanced(GMOCK_INCLUDE_DIR)
mark_as_advanced(GTEST_INCLUDE_DIR)
endif()
# Prevent CMake from complaining about these directories missing when the libgtest/libgmock targets get used as dependencies
file(MAKE_DIRECTORY ${GTEST_INCLUDE_DIR} ${GMOCK_INCLUDE_DIR})
else()
message(STATUS "Building Gmock / Gtest from dir ${GMOCK_SRC_DIR}")
set(GMOCK_BIN_DIR "${GMOCK_ROOT}/src/gmock-build")
set(GTEST_LIBRARY "${GMOCK_BIN_DIR}/gtest/${CMAKE_CFG_INTDIR}/${GTEST_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}")
set(GTEST_MAIN_LIBRARY "${GMOCK_BIN_DIR}/gtest/${CMAKE_CFG_INTDIR}/${GTEST_LIBRARY_PREFIX}gtest_main${CMAKE_STATIC_LIBRARY_SUFFIX}")
set(GMOCK_LIBRARY "${GMOCK_BIN_DIR}/${CMAKE_CFG_INTDIR}/${GTEST_LIBRARY_PREFIX}gmock${CMAKE_STATIC_LIBRARY_SUFFIX}")
set(GMOCK_MAIN_LIBRARY "${GMOCK_BIN_DIR}/${CMAKE_CFG_INTDIR}/${GTEST_LIBRARY_PREFIX}gmock_main${CMAKE_STATIC_LIBRARY_SUFFIX}")
mark_as_advanced(GTEST_LIBRARY)
mark_as_advanced(GTEST_MAIN_LIBRARY)
mark_as_advanced(GMOCK_LIBRARY)
mark_as_advanced(GMOCK_MAIN_LIBRARY)
if(EXISTS "${GMOCK_SRC_DIR}/gtest/include/gtest/gtest.h")
set(GTEST_INCLUDE_DIR "${GMOCK_SRC_DIR}/gtest/include")
mark_as_advanced(GTEST_INCLUDE_DIR)
endif()
if(EXISTS "${GMOCK_SRC_DIR}/include/gmock/gmock.h")
set(GMOCK_INCLUDE_DIR "${GMOCK_SRC_DIR}/include")
mark_as_advanced(GMOCK_INCLUDE_DIR)
elseif(EXISTS "${GMOCK_SRC_DIR}/../../include/gmock/gmock.h")
set(GMOCK_INCLUDE_DIR "${GMOCK_SRC_DIR}/../../include")
if(IS_ABSOLUTE "${GMOCK_INCLUDE_DIR}")
get_filename_component(GMOCK_INCLUDE_DIR "${GMOCK_INCLUDE_DIR}" ABSOLUTE)
endif()
mark_as_advanced(GMOCK_INCLUDE_DIR)
endif()
externalproject_add(
gmock
SOURCE_DIR ${GMOCK_SRC_DIR}
PREFIX ${GMOCK_ROOT}
INSTALL_COMMAND ""
LOG_DOWNLOAD ON
LOG_CONFIGURE ON
LOG_BUILD ON
CMAKE_ARGS
${GTEST_CMAKE_ARGS}
BINARY_DIR "${GMOCK_BIN_DIR}"
BUILD_BYPRODUCTS
"${GTEST_LIBRARY}"
"${GTEST_MAIN_LIBRARY}"
"${GMOCK_LIBRARY}"
"${GMOCK_MAIN_LIBRARY}"
)
add_dependencies(GTest::GTest gmock)
add_dependencies(GTest::Main gmock)
add_dependencies(GMock::GMock gmock)
add_dependencies(GMock::Main gmock)
endif()
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(GTest DEFAULT_MSG GTEST_LIBRARY GTEST_INCLUDE_DIR GTEST_MAIN_LIBRARY)
find_package_handle_standard_args(GMock DEFAULT_MSG GMOCK_LIBRARY GMOCK_INCLUDE_DIR GMOCK_MAIN_LIBRARY)
include(CMakeFindDependencyMacro)
find_dependency(Threads)
set_target_properties(GTest::GTest PROPERTIES
INTERFACE_LINK_LIBRARIES "Threads::Threads"
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
IMPORTED_LOCATION "${GTEST_LIBRARY}"
)
if(GTEST_INCLUDE_DIR)
set_target_properties(GTest::GTest PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${GTEST_INCLUDE_DIR}"
INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${GTEST_INCLUDE_DIR}"
)
endif()
set_target_properties(GTest::Main PROPERTIES
INTERFACE_LINK_LIBRARIES "GTest::GTest"
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
IMPORTED_LOCATION "${GTEST_MAIN_LIBRARY}")
set_target_properties(GMock::GMock PROPERTIES
INTERFACE_LINK_LIBRARIES "Threads::Threads"
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
IMPORTED_LOCATION "${GMOCK_LIBRARY}")
if(GMOCK_INCLUDE_DIR)
set_target_properties(GMock::GMock PROPERTIES
INTERFACE_INCLUDE_DIRECTORIES "${GMOCK_INCLUDE_DIR}"
INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${GMOCK_INCLUDE_DIR}"
)
if(GMOCK_VER VERSION_LESS "1.7")
# GMock 1.6 still has GTest as an external link-time dependency,
# so just specify it on the link interface.
set_property(TARGET GMock::GMock APPEND PROPERTY
INTERFACE_LINK_LIBRARIES GTest::GTest)
elseif(GTEST_INCLUDE_DIR)
# GMock 1.7 and beyond doesn't have it as a link-time dependency anymore,
# so merge it's compile-time interface (include dirs) with ours.
set_property(TARGET GMock::GMock APPEND PROPERTY
INTERFACE_INCLUDE_DIRECTORIES "${GTEST_INCLUDE_DIR}")
set_property(TARGET GMock::GMock APPEND PROPERTY
INTERFACE_SYSTEM_INCLUDE_DIRECTORIES "${GTEST_INCLUDE_DIR}")
endif()
endif()
set_target_properties(GMock::Main PROPERTIES
INTERFACE_LINK_LIBRARIES "GMock::GMock"
IMPORTED_LINK_INTERFACE_LANGUAGES "CXX"
IMPORTED_LOCATION "${GMOCK_MAIN_LIBRARY}")
if(GTEST_FOUND)
set(GTEST_INCLUDE_DIRS ${GTEST_INCLUDE_DIR})
set(GTEST_LIBRARIES GTest::GTest)
set(GTEST_MAIN_LIBRARIES GTest::Main)
set(GTEST_BOTH_LIBRARIES ${GTEST_LIBRARIES} ${GTEST_MAIN_LIBRARIES})
if(VERBOSE)
message(STATUS "GTest includes: ${GTEST_INCLUDE_DIRS}")
message(STATUS "GTest libs: ${GTEST_BOTH_LIBRARIES}")
endif()
endif()
if(GMOCK_FOUND)
set(GMOCK_INCLUDE_DIRS ${GMOCK_INCLUDE_DIR})
set(GMOCK_LIBRARIES GMock::GMock)
set(GMOCK_MAIN_LIBRARIES GMock::Main)
set(GMOCK_BOTH_LIBRARIES ${GMOCK_LIBRARIES} ${GMOCK_MAIN_LIBRARIES})
if(VERBOSE)
message(STATUS "GMock includes: ${GMOCK_INCLUDE_DIRS}")
message(STATUS "GMock libs: ${GMOCK_BOTH_LIBRARIES}")
endif()
endif()

View file

@ -0,0 +1,67 @@
#
# - Try to find the polyclipping library
# this will define
#
# Polyclipping_FOUND - polyclipping was found
# Polyclipping_INCLUDE_DIRS - the polyclipping include directory
# Polyclipping_LIBRARIES - The libraries needed to use polyclipping
# Polyclipping_VERSION - The polyclipping library version
#=============================================================================
# Copyright (c) 2017 Christophe Giboudeaux <christophe@krop.fr>
#
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# 1. Redistributions of source code must retain the copyright
# notice, this list of conditions and the following disclaimer.
# 2. Redistributions in binary form must reproduce the copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
# 3. The name of the author may not be used to endorse or promote products
# derived from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``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 AUTHOR 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.
#=============================================================================
find_package(PkgConfig QUIET)
pkg_check_modules(PC_Polyclipping QUIET polyclipping)
find_path(Polyclipping_INCLUDE_DIRS
NAMES clipper.hpp
HINTS ${PC_Polyclipping_INCLUDE_DIRS}
)
find_library(Polyclipping_LIBRARIES
NAMES polyclipping
HINTS ${PC_Polyclipping_LIBRARY_DIRS}
)
if(EXISTS ${Polyclipping_INCLUDE_DIRS}/clipper.hpp)
file(READ ${Polyclipping_INCLUDE_DIRS}/clipper.hpp CLIPPER_H_CONTENT)
string(REGEX MATCH "#define CLIPPER_VERSION[ ]+\"[0-9]+.[0-9]+.[0-9]+\"" CLIPPER_H_VERSION_MATCH ${CLIPPER_H_CONTENT})
string(REGEX REPLACE "^.*CLIPPER_VERSION[ ]+\"([0-9]+.[0-9]+.[0-9]+).*$" "\\1" Polyclipping_VERSION "${CLIPPER_H_VERSION_MATCH}")
endif()
include(FindPackageHandleStandardArgs)
find_package_handle_standard_args(Polyclipping
FOUND_VAR Polyclipping_FOUND
REQUIRED_VARS Polyclipping_LIBRARIES Polyclipping_INCLUDE_DIRS
VERSION_VAR Polyclipping_VERSION
)
mark_as_advanced(Polyclipping_LIBRARIES Polyclipping_INCLUDE_DIRS Polyclipping_VERSION)

View file

@ -0,0 +1,69 @@
## Finds the Stb utility library on your computer.
#
# If Stb is not found on your computer, this script also gives the option to
# download the library and build it from source.
#
# This script exports the following parameters for use if you find the Stb
# package:
# - Stb_FOUND: Whether Stb has been found on your computer (or built from
# source).
# - Stb_INCLUDE_DIRS: The directory where the header files of Stb are located.
#First try to find a PackageConfig for this library.
find_package(PkgConfig QUIET)
pkg_check_modules(PC_Stb QUIET Stb)
find_path(Stb_INCLUDE_DIRS stb/stb_image_resize.h #Search for something that is a little less prone to false positives than just stb.h.
HINTS ${PC_Stb_INCLUDEDIR} ${PC_Stb_INCLUDE_DIRS}
PATHS "$ENV{PROGRAMFILES}" "$ENV{PROGRAMW6432}" "/usr/include"
PATH_SUFFIXES include/stb stb include
)
include(FindPackageHandleStandardArgs)
set(_stb_find_required ${Stb_FIND_REQUIRED}) #Temporarily set to optional so that we don't get a message when it's not found but you want to build from source.
set(_stb_find_quietly ${Stb_FIND_QUIETLY})
set(Stb_FIND_REQUIRED FALSE)
set(Stb_FIND_QUIETLY TRUE)
find_package_handle_standard_args(Stb DEFAULT_MSG Stb_INCLUDE_DIRS)
set(Stb_FIND_REQUIRED ${_stb_find_required})
set(Stb_FIND_QUIETLY ${_stb_find_quietly})
set(CuraEngine_Download_Stb FALSE)
if(Stb_FOUND) #Found an existing installation.
if(NOT Stb_FIND_QUIETLY)
message(STATUS "Found Stb installation at: ${Stb_INCLUDE_DIRS}")
endif()
else()
#Then optionally clone Stb ourselves.
option(BUILD_Stb "Build Stb from source." ON) #This is a lie actually, since Stb is header-only and doesn't need any building. We don't build the docs or tests.
if(BUILD_Stb)
if(NOT Stb_FIND_QUIETLY)
message(STATUS "Building Stb from source.")
endif()
include(ExternalProject)
# Stb's commits in early February seems to cause the engine to fail compilation on Mac.
ExternalProject_Add(stb
GIT_REPOSITORY "https://github.com/nothings/stb.git"
GIT_TAG d5d052c806eee2ca1f858cb58b2f062d9fa25b90
UPDATE_DISCONNECTED TRUE
CONFIGURE_COMMAND "" #We don't want to actually go and build/test/generate it. Just need to download the headers.
BUILD_COMMAND ""
INSTALL_COMMAND "" #Assume that the user doesn't want to install all dependencies on his system. We just need to get them for building the application.
)
set(CuraEngine_Download_Stb TRUE)
set(Stb_INCLUDE_DIRS "${CMAKE_CURRENT_BINARY_DIR}/stb-prefix/src")
set(Stb_FOUND TRUE)
if(NOT Stb_FIND_QUIETLY)
message(STATUS "Created Stb installation at: ${Stb_INCLUDE_DIRS}")
endif()
elseif(NOT Stb_FIND_QUIETLY) #Don't have an installation but don't want us to build it either? Screw you, then.
if(Stb_FIND_REQUIRED)
message(FATAL_ERROR "Could NOT find Stb.")
else()
message(WARNING "Could NOT find Stb.")
endif()
endif()
endif()
mark_as_advanced(Stb_INCLUDE_DIRS)

View file

@ -1,19 +0,0 @@
--- CMakeLists.txt.orig 2022-04-29 23:17:19 UTC
+++ CMakeLists.txt
@@ -117,16 +117,6 @@ if (WIN32)
add_definitions(-DNOMINMAX)
endif()
-option (ENABLE_OPENMP
- "Use OpenMP for parallel code" ON)
-
-if (ENABLE_OPENMP)
- FIND_PACKAGE( OpenMP )
- if( OPENMP_FOUND )
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}" )
- endif()
-endif()
-
if(USE_SYSTEM_LIBS)
include_directories(${Polyclipping_INCLUDE_DIRS} "${CMAKE_BINARY_DIR}" ${RAPIDJSON_INCLUDE_DIRS})
else()

View file

@ -1,8 +0,0 @@
--- src/layerPart.cpp.orig 2020-03-17 23:31:49 UTC
+++ src/layerPart.cpp
@@ -1,3 +1,5 @@
+#undef __GNUC__
+#define __GNUC__ 9
//Copyright (c) 2018 Ultimaker B.V.
//CuraEngine is released under the terms of the AGPLv3 or higher.

View file

@ -1,8 +0,0 @@
--- src/support.cpp.orig 2022-01-24 15:11:50 UTC
+++ src/support.cpp
@@ -1,3 +1,5 @@
+#undef __GNUC__
+#define __GNUC__ 9
//Copyright (c) 2021 Ultimaker B.V.
//CuraEngine is released under the terms of the AGPLv3 or higher.

View file

@ -1,6 +1,5 @@
PORTNAME= Cura
DISTVERSION= 4.13.1
PORTREVISION= 4
DISTVERSION= 5.7.0
PORTEPOCH= 2
CATEGORIES= cad
DIST_SUBDIR= Ultimaker
@ -12,46 +11,50 @@ WWW= https://github.com/Ultimaker/Cura/wiki
LICENSE= AGPLv3
LICENSE_FILE= ${WRKSRC}/LICENSE
DEPRECATED= Depends on expired devel/libsavitar and devel/py-pynest2d
EXPIRATION_DATE=2024-07-31
BUILD_DEPENDS= Uranium>0,1:cad/uranium
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}zeroconf>0:net/py-zeroconf@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pyserial>0:comms/py-pyserial@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}shapely>0:devel/py-shapely@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}numpy-stl>0:math/py-numpy-stl@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}keyring>0:security/py-keyring@${PY_FLAVOR} \
qt5-graphicaleffects>0:graphics/qt5-graphicaleffects \
qt5-quickcontrols>0:x11-toolkits/qt5-quickcontrols \
qt5-quickcontrols2>0:x11-toolkits/qt5-quickcontrols2 \
Uranium>=${DISTVERSION}:cad/uranium \
libCharon>=4.13.0:net/libcharon \
libCharon>=5.0.0:net/libcharon \
CuraEngine>=${DISTVERSION}:cad/cura-engine \
fdm_materials>=4.13.0:cad/fdm_materials \
fdm_materials>=${DISTVERSION}:cad/fdm_materials \
${PYTHON_PKGNAMEPREFIX}trimesh>0:devel/py-trimesh@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pynest2d>=4.12.1:devel/py-pynest2d@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pynest2d>=5.3.0:devel/py-pynest2d@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}sentry-sdk>0:devel/py-sentry-sdk@${PY_FLAVOR} \
libArcus>=${DISTVERSION}:net/libarcus \
libSavitar>=${DISTVERSION}:devel/libsavitar
libArcus>=5.3.0:net/libarcus \
libSavitar>=5.3.0:devel/libsavitar
LIB_DEPENDS= libArcus.so:net/libarcus \
libSavitar.so:devel/libsavitar
USES= cmake gettext shebangfix python pyqt:5 \
USES= cmake gettext shebangfix python pyqt:6 \
desktop-file-utils shared-mime-info
USE_PYQT= pyqt5
CMAKE_ARGS+= -DURANIUM_SCRIPTS_DIR:STRING="${LOCALBASE}/share/uranium/scripts" \
-DCURA_VERSION=${DISTVERSION}
USE_PYQT= pyqt6
CMAKE_ARGS+= -DURANIUM_DIR:STRING="${LOCALBASE}/share/uranium" \
-DCURA_VERSION:STRING=${DISTVERSION}
USE_GITHUB= yes
GH_ACCOUNT= Ultimaker
NO_ARCH= yes
SHEBANG_FILES= cura_app.py
pre-configure:
${REINPLACE_CMD} -e 's|%%DISTVERSION%%|${DISTVERSION}|' \
${WRKSRC}/CMakeLists.txt
#pre-configure:
# ${REINPLACE_CMD} -e 's|%%DISTVERSION%%|${DISTVERSION}|' \
# ${WRKSRC}/CMakeLists.txt
#
#post-patch:
# ${REINPLACE_CMD} -e 's|%%PYTHON_CMD%%|${PYTHON_CMD}|' \
# ${WRKSRC}/cura_app.py
post-patch:
${REINPLACE_CMD} -e 's|%%PYTHON_CMD%%|${PYTHON_CMD}|' \
${WRKSRC}/cura_app.py
post-extract:
@${MKDIR} ${WRKSRC}/cmake
@for f in CuraPluginInstall.cmake CuraTests.cmake mod_bundled_packages_json.py; do \
${CP} ${FILESDIR}/$$f ${WRKSRC}/cmake; \
done
@for f in CMakeLists.txt com.ultimaker.cura.desktop.in com.ultimaker.cura.appdata.xml; do \
${CP} ${FILESDIR}/$$f ${WRKSRC}; \
done
@${CP} ${FILESDIR}/CuraVersion.py.in ${WRKSRC}/cura
.include <bsd.port.mk>

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1645697504
SHA256 (Ultimaker/Ultimaker-Cura-4.13.1_GH0.tar.gz) = bda67f620a6245d0ddfbf6df7c2dcfdec88be152dfb7290ae06d8dcb35c4459c
SIZE (Ultimaker/Ultimaker-Cura-4.13.1_GH0.tar.gz) = 42339030
TIMESTAMP = 1713952778
SHA256 (Ultimaker/Ultimaker-Cura-5.7.0_GH0.tar.gz) = 95c9abcb3688cae6349a83dadec3e31dead0698a22ec68d93430a0fd4c15d130
SIZE (Ultimaker/Ultimaker-Cura-5.7.0_GH0.tar.gz) = 53143171

View file

@ -0,0 +1,104 @@
project(cura)
cmake_minimum_required(VERSION 3.6)
include(GNUInstallDirs)
list(APPEND CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake)
set(URANIUM_DIR "${CMAKE_SOURCE_DIR}/../Uranium" CACHE PATH "The location of the Uranium repository")
set(URANIUM_SCRIPTS_DIR "${URANIUM_DIR}/scripts" CACHE PATH "The location of the scripts directory of the Uranium repository")
# Tests
include(CuraTests)
option(CURA_DEBUGMODE "Enable debug dialog and other debug features" OFF)
if(CURA_DEBUGMODE)
set(_cura_debugmode "ON")
endif()
option(GENERATE_TRANSLATIONS "Should the translations be generated?" ON)
set(CURA_APP_NAME "cura" CACHE STRING "Short name of Cura, used for configuration folder")
set(CURA_APP_DISPLAY_NAME "Ultimaker Cura" CACHE STRING "Display name of Cura")
set(CURA_VERSION "master" CACHE STRING "Version name of Cura")
set(CURA_BUILDTYPE "" CACHE STRING "Build type of Cura, eg. 'PPA'")
set(CURA_CLOUD_API_ROOT "" CACHE STRING "Alternative Cura cloud API root")
set(CURA_CLOUD_API_VERSION "" CACHE STRING "Alternative Cura cloud API version")
set(CURA_CLOUD_ACCOUNT_API_ROOT "" CACHE STRING "Alternative Cura cloud account API version")
set(CURA_MARKETPLACE_ROOT "" CACHE STRING "Alternative Marketplace location")
set(CURA_DIGITAL_FACTORY_URL "" CACHE STRING "Alternative Digital Factory location")
configure_file(${CMAKE_SOURCE_DIR}/com.ultimaker.cura.desktop.in ${CMAKE_BINARY_DIR}/com.ultimaker.cura.desktop @ONLY)
configure_file(cura/CuraVersion.py.in CuraVersion.py @ONLY)
# FIXME: The new FindPython3 finds the system's Python3.6 rather than the Python3.5 that we built for Cura's environment.
# So we're using the old method here, with FindPythonInterp for now.
#find_package(PythonInterp 3 REQUIRED)
#
#set(Python3_EXECUTABLE ${PYTHON_EXECUTABLE})
#
#set(Python3_VERSION ${PYTHON_VERSION_STRING})
#set(Python3_VERSION_MAJOR ${PYTHON_VERSION_MAJOR})
#set(Python3_VERSION_MINOR ${PYTHON_VERSION_MINOR})
#set(Python3_VERSION_PATCH ${PYTHON_VERSION_PATCH})
find_package(Python3 REQUIRED)
if(NOT ${URANIUM_DIR} STREQUAL "")
set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH};${URANIUM_DIR}/cmake")
endif()
if(NOT ${URANIUM_SCRIPTS_DIR} STREQUAL "")
list(APPEND CMAKE_MODULE_PATH ${URANIUM_DIR}/cmake)
include(UraniumTranslationTools)
# Extract Strings
add_custom_target(extract-messages ${URANIUM_SCRIPTS_DIR}/extract-messages ${CMAKE_SOURCE_DIR} cura)
# Build Translations
if(${GENERATE_TRANSLATIONS})
CREATE_TRANSLATION_TARGETS()
endif()
endif()
install(DIRECTORY resources
DESTINATION ${CMAKE_INSTALL_DATADIR}/cura)
include(CuraPluginInstall)
if(NOT APPLE AND NOT WIN32)
install(FILES cura_app.py
DESTINATION ${CMAKE_INSTALL_BINDIR}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE
RENAME cura)
if(EXISTS /etc/debian_version)
install(DIRECTORY cura
DESTINATION lib${LIB_SUFFIX}/python${Python3_VERSION_MAJOR}/dist-packages
FILES_MATCHING PATTERN *.py)
install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py
DESTINATION lib${LIB_SUFFIX}/python${Python3_VERSION_MAJOR}/dist-packages/cura)
else()
install(DIRECTORY cura
DESTINATION lib${LIB_SUFFIX}/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages
FILES_MATCHING PATTERN *.py)
install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py
DESTINATION lib${LIB_SUFFIX}/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages/cura)
endif()
install(FILES ${CMAKE_BINARY_DIR}/com.ultimaker.cura.desktop
DESTINATION ${CMAKE_INSTALL_DATADIR}/applications)
install(FILES ${CMAKE_SOURCE_DIR}/resources/images/cura-icon.png
DESTINATION ${CMAKE_INSTALL_DATADIR}/icons/hicolor/128x128/apps/)
install(FILES com.ultimaker.cura.appdata.xml
DESTINATION ${CMAKE_INSTALL_DATADIR}/metainfo)
install(FILES cura.sharedmimeinfo
DESTINATION ${CMAKE_INSTALL_DATADIR}/mime/packages/
RENAME cura.xml )
else()
install(FILES cura_app.py
DESTINATION ${CMAKE_INSTALL_BINDIR}
PERMISSIONS OWNER_READ OWNER_WRITE OWNER_EXECUTE GROUP_READ GROUP_EXECUTE WORLD_READ WORLD_EXECUTE)
install(DIRECTORY cura
DESTINATION lib${LIB_SUFFIX}/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages
FILES_MATCHING PATTERN *.py)
install(FILES ${CMAKE_BINARY_DIR}/CuraVersion.py
DESTINATION lib${LIB_SUFFIX}/python${Python3_VERSION_MAJOR}.${Python3_VERSION_MINOR}/site-packages/cura)
endif()

View file

@ -0,0 +1,105 @@
# Copyright (c) 2019 Ultimaker B.V.
# CuraPluginInstall.cmake is released under the terms of the LGPLv3 or higher.
#
# This module detects all plugins that need to be installed and adds them using the CMake install() command.
# It detects all plugin folder in the path "plugins/*" where there's a "plugin.json" in it.
#
# Plugins can be configured to NOT BE INSTALLED via the variable "CURA_NO_INSTALL_PLUGINS" as a list of string in the
# form of "a;b;c" or "a,b,c". By default all plugins will be installed.
#
option(PRINT_PLUGIN_LIST "Should the list of plugins that are installed be printed?" ON)
# FIXME: Remove the code for CMake <3.12 once we have switched over completely.
# FindPython3 is a new module since CMake 3.12. It deprecates FindPythonInterp and FindPythonLibs. The FindPython3
# module is copied from the CMake repository here so in CMake <3.12 we can still use it.
if(${CMAKE_VERSION} VERSION_LESS 3.12)
# Use FindPythonInterp and FindPythonLibs for CMake <3.12
find_package(PythonInterp 3 REQUIRED)
set(Python3_EXECUTABLE ${PYTHON_EXECUTABLE})
else()
# Use FindPython3 for CMake >=3.12
find_package(Python3 REQUIRED COMPONENTS Interpreter)
endif()
# Options or configuration variables
set(CURA_NO_INSTALL_PLUGINS "" CACHE STRING "A list of plugins that should not be installed, separated with ';' or ','.")
file(GLOB_RECURSE _plugin_json_list ${CMAKE_SOURCE_DIR}/plugins/*/plugin.json)
list(LENGTH _plugin_json_list _plugin_json_list_len)
# Sort the lists alphabetically so we can handle cases like this:
# - plugins/my_plugin/plugin.json
# - plugins/my_plugin/my_module/plugin.json
# In this case, only "plugins/my_plugin" should be added via install().
set(_no_install_plugin_list ${CURA_NO_INSTALL_PLUGINS})
# Sanitize the string so the comparison will be case-insensitive.
string(STRIP "${_no_install_plugin_list}" _no_install_plugin_list)
string(TOLOWER "${_no_install_plugin_list}" _no_install_plugin_list)
# WORKAROUND counterpart of what's in cura-build.
string(REPLACE "," ";" _no_install_plugin_list "${_no_install_plugin_list}")
list(LENGTH _no_install_plugin_list _no_install_plugin_list_len)
if(_no_install_plugin_list_len GREATER 0)
list(SORT _no_install_plugin_list)
endif()
if(_plugin_json_list_len GREATER 0)
list(SORT _plugin_json_list)
endif()
# Check all plugin directories and add them via install() if needed.
set(_install_plugin_list "")
foreach(_plugin_json_path ${_plugin_json_list})
get_filename_component(_plugin_dir ${_plugin_json_path} DIRECTORY)
file(RELATIVE_PATH _rel_plugin_dir ${CMAKE_CURRENT_SOURCE_DIR} ${_plugin_dir})
get_filename_component(_plugin_dir_name ${_plugin_dir} NAME)
# Make plugin name comparison case-insensitive
string(TOLOWER "${_plugin_dir_name}" _plugin_dir_name_lowercase)
# Check if this plugin needs to be skipped for installation
set(_add_plugin ON) # Indicates if this plugin should be added to the build or not.
set(_is_no_install_plugin OFF) # If this plugin will not be added, this indicates if it's because the plugin is
# specified in the NO_INSTALL_PLUGINS list.
if(_no_install_plugin_list)
if("${_plugin_dir_name_lowercase}" IN_LIST _no_install_plugin_list)
set(_add_plugin OFF)
set(_is_no_install_plugin ON)
endif()
endif()
# Make sure this is not a subdirectory in a plugin that's already in the install list
if(_add_plugin)
foreach(_known_install_plugin_dir ${_install_plugin_list})
if(_plugin_dir MATCHES "${_known_install_plugin_dir}.+")
set(_add_plugin OFF)
break()
endif()
endforeach()
endif()
if(_add_plugin)
if(${PRINT_PLUGIN_LIST})
message(STATUS "[+] PLUGIN TO INSTALL: ${_rel_plugin_dir}")
endif()
get_filename_component(_rel_plugin_parent_dir ${_rel_plugin_dir} DIRECTORY)
install(DIRECTORY ${_rel_plugin_dir}
DESTINATION lib${LIB_SUFFIX}/cura/${_rel_plugin_parent_dir}
PATTERN "__pycache__" EXCLUDE
PATTERN "*.qmlc" EXCLUDE
)
list(APPEND _install_plugin_list ${_plugin_dir})
elseif(_is_no_install_plugin)
if(${PRINT_PLUGIN_LIST})
message(STATUS "[-] PLUGIN TO REMOVE : ${_rel_plugin_dir}")
endif()
execute_process(COMMAND ${Python3_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/cmake/mod_bundled_packages_json.py
-d ${CMAKE_CURRENT_SOURCE_DIR}/resources/bundled_packages
${_plugin_dir_name}
RESULT_VARIABLE _mod_json_result)
endif()
endforeach()

View file

@ -0,0 +1,84 @@
# Copyright (c) 2018 Ultimaker B.V.
# Cura is released under the terms of the LGPLv3 or higher.
include(CTest)
include(CMakeParseArguments)
# FIXME: The new FindPython3 finds the system's Python3.6 rather than the Python3.5 that we built for Cura's environment.
# So we're using the old method here, with FindPythonInterp for now.
#find_package(PythonInterp 3 REQUIRED)
#
#set(Python3_EXECUTABLE ${PYTHON_EXECUTABLE})
find_package(Python3 REQUIRED)
add_custom_target(test-verbose COMMAND ${CMAKE_CTEST_COMMAND} --verbose)
function(cura_add_test)
set(_single_args NAME DIRECTORY PYTHONPATH)
cmake_parse_arguments("" "" "${_single_args}" "" ${ARGN})
if(NOT _NAME)
message(FATAL_ERROR "cura_add_test requires a test name argument")
endif()
if(NOT _DIRECTORY)
message(FATAL_ERROR "cura_add_test requires a directory to test")
endif()
if(NOT _PYTHONPATH)
set(_PYTHONPATH ${_DIRECTORY})
endif()
if(WIN32)
string(REPLACE "|" "\\;" _PYTHONPATH ${_PYTHONPATH})
set(_PYTHONPATH "${_PYTHONPATH}\\;$ENV{PYTHONPATH}")
else()
string(REPLACE "|" ":" _PYTHONPATH ${_PYTHONPATH})
set(_PYTHONPATH "${_PYTHONPATH}:$ENV{PYTHONPATH}")
endif()
get_test_property(${_NAME} ENVIRONMENT test_exists) #Find out if the test exists by getting a property from it that always exists (such as ENVIRONMENT because we set that ourselves).
if (NOT ${test_exists})
add_test(
NAME ${_NAME}
COMMAND ${Python3_EXECUTABLE} -m pytest --junitxml=${CMAKE_BINARY_DIR}/junit-${_NAME}.xml ${_DIRECTORY}
)
set_tests_properties(${_NAME} PROPERTIES ENVIRONMENT LANG=C)
set_tests_properties(${_NAME} PROPERTIES ENVIRONMENT "PYTHONPATH=${_PYTHONPATH}")
else()
message(WARNING "Duplicate test ${_NAME}!")
endif()
endfunction()
#Add code style test.
add_test(
NAME "code-style"
COMMAND ${Python3_EXECUTABLE} run_mypy.py
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
#Add test for import statements which are not compatible with all builds
add_test(
NAME "invalid-imports"
COMMAND ${Python3_EXECUTABLE} scripts/check_invalid_imports.py
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)
cura_add_test(NAME pytest-main DIRECTORY ${CMAKE_SOURCE_DIR}/tests PYTHONPATH "${CMAKE_SOURCE_DIR}|${URANIUM_DIR}")
file(GLOB_RECURSE _plugins plugins/*/__init__.py)
foreach(_plugin ${_plugins})
get_filename_component(_plugin_directory ${_plugin} DIRECTORY)
if(EXISTS ${_plugin_directory}/tests)
get_filename_component(_plugin_name ${_plugin_directory} NAME)
cura_add_test(NAME pytest-${_plugin_name} DIRECTORY ${_plugin_directory} PYTHONPATH "${_plugin_directory}|${CMAKE_SOURCE_DIR}|${URANIUM_DIR}")
endif()
endforeach()
#Add test for whether the shortcut alt-keys are unique in every translation.
add_test(
NAME "shortcut-keys"
COMMAND ${Python3_EXECUTABLE} scripts/check_shortcut_keys.py
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
)

Some files were not shown because too many files have changed in this diff Show more