Skip to content
Snippets Groups Projects
Commit 6084a7f5 authored by Dimitry Andric's avatar Dimitry Andric
Browse files

graphics/libfreehand: fix build with clang 16

Since clang 16 (and gcc 11) the default C++ standard is now gnu++17.
Because graphics/libfreehand's configure scripts and Makefiles do not
explicitly set the C++ standard, this leads to several errors:

  In file included from FreeHandDocument.cpp:14:
  In file included from ./FHParser.h:15:
  /usr/local/include/lcms2.h:1291:44: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  typedef cmsInt32Number (* cmsSAMPLER16)   (CMSREGISTER const cmsUInt16Number In[],
                                             ^~~~~~~~~~~~
  /usr/local/include/lcms2.h:158:23: note: expanded from macro 'CMSREGISTER'
  #  define CMSREGISTER register
                        ^
  /usr/local/include/lcms2.h:1292:44: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
                                             CMSREGISTER cmsUInt16Number Out[],
                                             ^~~~~~~~~~~~
  /usr/local/include/lcms2.h:158:23: note: expanded from macro 'CMSREGISTER'
  #  define CMSREGISTER register
                        ^
  /usr/local/include/lcms2.h:1293:44: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
                                             CMSREGISTER void * Cargo);
                                             ^~~~~~~~~~~~
  /usr/local/include/lcms2.h:158:23: note: expanded from macro 'CMSREGISTER'
  #  define CMSREGISTER register
                        ^
  /usr/local/include/lcms2.h:1295:44: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
  typedef cmsInt32Number (* cmsSAMPLERFLOAT)(CMSREGISTER const cmsFloat32Number In[],
                                             ^~~~~~~~~~~~
  /usr/local/include/lcms2.h:158:23: note: expanded from macro 'CMSREGISTER'
  #  define CMSREGISTER register
                        ^
  /usr/local/include/lcms2.h:1296:44: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
                                             CMSREGISTER cmsFloat32Number Out[],
                                             ^~~~~~~~~~~~
  /usr/local/include/lcms2.h:158:23: note: expanded from macro 'CMSREGISTER'
  #  define CMSREGISTER register
                        ^
  /usr/local/include/lcms2.h:1297:44: error: ISO C++17 does not allow 'register' storage class specifier [-Wregister]
                                             CMSREGISTER void * Cargo);
                                             ^~~~~~~~~~~~
  /usr/local/include/lcms2.h:158:23: note: expanded from macro 'CMSREGISTER'
  #  define CMSREGISTER register
                        ^

Add -D CMS_NO_REGISTER_KEYWORD to CPPFLAGS, to avoid lcms2.h using
register keywords in its declarations.

PR:		271421
Approved by:	sunpoet (maintainer)
MFH:		2023Q2
parent a62f1b57
No related branches found
No related tags found
No related merge requests found
PORTNAME= libfreehand
PORTVERSION= 0.1.2
PORTREVISION= 25
PORTREVISION= 26
CATEGORIES= graphics
MASTER_SITES= LODEV
......@@ -22,6 +22,7 @@ USES= compiler:c++11-lang gperf perl5 libtool pathfix pkgconfig tar:xz
USE_LDCONFIG= yes
USE_PERL5= build
CONFIGURE_ARGS= --disable-werror --without-docs
CPPFLAGS+= -D CMS_NO_REGISTER_KEYWORD
CPPFLAGS+= -I ${LOCALBASE}/include
INSTALL_TARGET= install-strip
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment