vectorgraphics / asymptote

2D & 3D TeX-Aware Vector Graphics Language
https://asymptote.sourceforge.io/
GNU General Public License v3.0
542 stars 90 forks source link

Multiple errors with Clang on MacOS: error: expected ';' at end of declaration list; error: unknown type name 'constexpr' #346

Closed barracuda156 closed 1 year ago

barracuda156 commented 1 year ago

I am trying to bring the latest version of asymptote to Macports. Unfortunately, it fails direly on newer systems with multiple errors.

error: expected ';' at end of declaration list
error: unknown type name 'constexpr'

Full log here: https://github.com/macports/macports-ports/actions/runs/3214873484/jobs/5255567833

On old systems using GCC it also fails, though differently, on pdf-docs generation: https://github.com/vectorgraphics/asymptote/issues/338

johncbowman commented 1 year ago

If you want to compile with C++11 (rather than C++-14 or C++-17) you need to configure --disable-lsp.

barracuda156 commented 1 year ago

If you want to compile with C++11 (rather than C++-14 or C++-17) you need to configure --disable-lsp.

@johncbowman Thank you, passing -std=c++14 worked for this. However PDF docs still fail, on newer MacOS as well:

! LaTeX Error: File `media9.sty' not found.

  Type X to quit or <RETURN> to proceed,
  or enter new name. (Default extension: sty)

  Enter file name: 
  ! Emergency stop.
  <read *> 

  l.9 ^^M

  !  ==> Fatal error occurred, no output PDF file produced!
  Transcript written on .log.
      g=tex ? _texpath(s,p) : textpath(s,p);
       ^
  ../base/plain_Label.asy: 664.6: texpath failed
  make[1]: *** [latexusage.pdf] Error 1
  make[1]: Leaving directory `/opt/local/var/macports/build/_Users_runner_work_macports-ports_macports-ports_ports_graphics_asymptote/asymptote/work/asymptote-2.83/doc'
  make: *** [man] Error 2
  make: Leaving directory `/opt/local/var/macports/build/_Users_runner_work_macports-ports_macports-ports_ports_graphics_asymptote/asymptote/work/asymptote-2.83'
  Command failed:  cd "/opt/local/var/macports/build/_Users_runner_work_macports-ports_macports-ports_ports_graphics_asymptote/asymptote/work/asymptote-2.83" && /usr/bin/make -j3 -w all 
  Exit code: 2
  Error: Failed to build asymptote: command execution failed
  DEBUG: Error code: CHILDSTATUS 16714 2

https://github.com/macports/macports-ports/actions/runs/3215748906/jobs/5257065506

johncbowman commented 1 year ago

c++11 is selected automatically by configure when you select --disable-lsp; otherwise c++14 is used by default.

You need to install media9.sty, which is part of TeXLive.