Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Can't build with MSVC 2019 and C++17 support? #240

Closed
agarny opened this issue Jul 10, 2022 · 7 comments · Fixed by #250
Closed

Can't build with MSVC 2019 and C++17 support? #240

agarny opened this issue Jul 10, 2022 · 7 comments · Fixed by #250

Comments

@agarny
Copy link

agarny commented Jul 10, 2022

Any chance of getting libSBML to build with MSVC 2019 and C++17 support? Here is the output I am getting if I try:

----------------------------------------------------------------------
libSBML version 5.19.0
----------------------------------------------------------------------

   More information and the latest version are available online at
   http://sbml.org/Software/libSBML

   Please report problems using the issue tracker at
   http://sbml.org/Software/libsbml/issue-tracker

   To contact the developers directly, email libsbml-team@googlegroups.com

   Configured on host 'VENUS-WINDOWS'
     host type                       = Windows
     host operating system           = Windows 10.0.19043
     host CPU architecture           = AMD64

   General build flags:
     CC                              = C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe
     CXX                             = C:/Program Files (x86)/Microsoft Visual Studio/2019/Community/VC/Tools/MSVC/14.29.30133/bin/Hostx64/x64/cl.exe
     CPPFLAGS                        =  -DWIN32 -DLIBSBML_EXPORTS -DLIBLAX_EXPORTS -D_CRT_SECURE_NO_WARNINGS
     CFLAGS                          = /DWIN32 /D_WINDOWS /W3
     CXXFLAGS                        = /std:c++17 /MP
     LDFLAGS                         = /machine:x64

   XML parser library configuration:
     XML library                     = libxml2
     CPPFLAGS for XML                = -IC:/Users/Alan/Desktop/libOpenCOR/prebuilt/release/libxml2/include/libxml2
     LIBS for XML                    = C:/Users/Alan/Desktop/libOpenCOR/prebuilt/release/libxml2/lib/libxml2s.lib

   Other libSBML configuration settings:
     Installation $prefix            = C:/Users/Alan/Desktop/libOpenCOR/prebuilt/release/libSBML
--      Using C++ namespace ('libsbml') = yes
--
--      Build examples                  = no
--
--
--    Support for SBML Level 3 Packages:
--      SBML 'l3v2extendedmath' package  = ON
--      SBML 'layout' package  = OFF
--

-- Other potentially important settings:
--
Warning: reading/writing compressed SBML in .zip or .gz format in
this copy of libSBML is not supported or has been disabled.
If this was not your intention, please check the WITH_ZLIB
option.
--
Warning: reading/writing compressed SBML in .bz2 format in
this copy of libSBML is not supported or has been disabled.
If this was not your intention, please check the WITH_BZIP2
option.
--
----------------------------------------------------------------------
-- Configuring done
-- Generating done
-- Build files have been written to: C:/Users/Alan/Desktop/libOpenCOR/build/src/3rdparty/libSBML/build/libSBML-prefix/src/libSBML-build
[6/8] Performing build step for 'libSBML'
FAILED: libSBML-prefix/src/libSBML-stamp/libSBML-build C:/Users/Alan/Desktop/libOpenCOR/build/src/3rdparty/libSBML/build/libSBML-prefix/src/libSBML-stamp/libSBML-build
cmd.exe /C "cd /D C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build && "C:\Program Files\CMake\bin\cmake.exe" --build . && "C:\Program Files\CMake\bin\cmake.exe" -E touch C:/Users/Alan/Desktop/libOpenCOR/build/src/3rdparty/libSBML/build/libSBML-prefix/src/libSBML-stamp/libSBML-build"
[1/213] Building C object src\CMakeFiles\libsbml-static.dir\sbml\util\memory.c.obj
[2/213] Building CXX object src\CMakeFiles\libsbml-static.dir\sbml\util\util.cpp.obj
[3/213] Building C object src\CMakeFiles\libsbml-static.dir\sbml\util\Stack.c.obj
[4/213] Building C object src\CMakeFiles\libsbml-static.dir\sbml\util\StringBuffer.c.obj
[5/213] Building CXX object src\CMakeFiles\libsbml-static.dir\sbml\packages\l3v2extendedmath\validator\L3v2extendedmathUnitConsistencyValidator.cpp.obj
FAILED: src/CMakeFiles/libsbml-static.dir/sbml/packages/l3v2extendedmath/validator/L3v2extendedmathUnitConsistencyValidator.cpp.obj
C:\buildcache\buildcache.exe C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\cl.exe  /nologo /TP -DLIBLAX_EXPORTS -DLIBLAX_STATIC=1 -DLIBSBML_EXPORTS -DLIBSBML_STATIC=1 -DLIBSBML_USE_CPP_NAMESPACE=1 -DUSE_L3V2EXTENDEDMATH -DUSE_LIBXML -DWIN32 -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src\src\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\common -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\extension -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\validator -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\validator\constraints -IC:\Users\Alan\Desktop\libOpenCOR\prebuilt\release\libxml2\include\libxml2 /std:c++17 /MP /MD /O2 /Ob2 /DNDEBUG   /bigobj /showIncludes /Fosrc\CMakeFiles\libsbml-static.dir\sbml\packages\l3v2extendedmath\validator\L3v2extendedmathUnitConsistencyValidator.cpp.obj /Fdsrc\CMakeFiles\libsbml-static.dir\libsbml-static.pdb /FS -c C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\validator\L3v2extendedmathUnitConsistencyValidator.cpp
C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml/ListOf.h(116): error C2143: syntax error: missing ',' before '<'
C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml/ListOf.h(123): note: see reference to class template instantiation 'libsbml::IdEq<CNAME>' being compiled
[6/213] Building CXX object src\CMakeFiles\libsbml-static.dir\sbml\packages\l3v2extendedmath\extension\L3v2extendedmathExtension.cpp.obj
FAILED: src/CMakeFiles/libsbml-static.dir/sbml/packages/l3v2extendedmath/extension/L3v2extendedmathExtension.cpp.obj
C:\buildcache\buildcache.exe C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\cl.exe  /nologo /TP -DLIBLAX_EXPORTS -DLIBLAX_STATIC=1 -DLIBSBML_EXPORTS -DLIBSBML_STATIC=1 -DLIBSBML_USE_CPP_NAMESPACE=1 -DUSE_L3V2EXTENDEDMATH -DUSE_LIBXML -DWIN32 -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src\src\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\common -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\extension -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\validator -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\validator\constraints -IC:\Users\Alan\Desktop\libOpenCOR\prebuilt\release\libxml2\include\libxml2 /std:c++17 /MP /MD /O2 /Ob2 /DNDEBUG   /bigobj /showIncludes /Fosrc\CMakeFiles\libsbml-static.dir\sbml\packages\l3v2extendedmath\extension\L3v2extendedmathExtension.cpp.obj /Fdsrc\CMakeFiles\libsbml-static.dir\libsbml-static.pdb /FS -c C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\extension\L3v2extendedmathExtension.cpp
C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml/ListOf.h(116): error C2143: syntax error: missing ',' before '<'
C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml/ListOf.h(123): note: see reference to class template instantiation 'libsbml::IdEq<CNAME>' being compiled
[7/213] Building CXX object src\CMakeFiles\libsbml-static.dir\sbml\packages\l3v2extendedmath\extension\L3v2extendedmathSBMLDocumentPlugin.cpp.obj
FAILED: src/CMakeFiles/libsbml-static.dir/sbml/packages/l3v2extendedmath/extension/L3v2extendedmathSBMLDocumentPlugin.cpp.obj
C:\buildcache\buildcache.exe C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\cl.exe  /nologo /TP -DLIBLAX_EXPORTS -DLIBLAX_STATIC=1 -DLIBSBML_EXPORTS -DLIBSBML_STATIC=1 -DLIBSBML_USE_CPP_NAMESPACE=1 -DUSE_L3V2EXTENDEDMATH -DUSE_LIBXML -DWIN32 -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src\src\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\common -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\extension -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\validator -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\validator\constraints -IC:\Users\Alan\Desktop\libOpenCOR\prebuilt\release\libxml2\include\libxml2 /std:c++17 /MP /MD /O2 /Ob2 /DNDEBUG   /bigobj /showIncludes /Fosrc\CMakeFiles\libsbml-static.dir\sbml\packages\l3v2extendedmath\extension\L3v2extendedmathSBMLDocumentPlugin.cpp.obj /Fdsrc\CMakeFiles\libsbml-static.dir\libsbml-static.pdb /FS -c C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\extension\L3v2extendedmathSBMLDocumentPlugin.cpp
C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml/ListOf.h(116): error C2143: syntax error: missing ',' before '<'
C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml/ListOf.h(123): note: see reference to class template instantiation 'libsbml::IdEq<CNAME>' being compiled
[8/213] Building CXX object src\CMakeFiles\libsbml-static.dir\sbml\packages\l3v2extendedmath\validator\L3v2extendedmathMathMLConsistencyValidator.cpp.obj
FAILED: src/CMakeFiles/libsbml-static.dir/sbml/packages/l3v2extendedmath/validator/L3v2extendedmathMathMLConsistencyValidator.cpp.obj
C:\buildcache\buildcache.exe C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\cl.exe  /nologo /TP -DLIBLAX_EXPORTS -DLIBLAX_STATIC=1 -DLIBSBML_EXPORTS -DLIBSBML_STATIC=1 -DLIBSBML_USE_CPP_NAMESPACE=1 -DUSE_L3V2EXTENDEDMATH -DUSE_LIBXML -DWIN32 -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src\src\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\common -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\extension -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\validator -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\validator\constraints -IC:\Users\Alan\Desktop\libOpenCOR\prebuilt\release\libxml2\include\libxml2 /std:c++17 /MP /MD /O2 /Ob2 /DNDEBUG   /bigobj /showIncludes /Fosrc\CMakeFiles\libsbml-static.dir\sbml\packages\l3v2extendedmath\validator\L3v2extendedmathMathMLConsistencyValidator.cpp.obj /Fdsrc\CMakeFiles\libsbml-static.dir\libsbml-static.pdb /FS -c C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\validator\L3v2extendedmathMathMLConsistencyValidator.cpp
C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml/ListOf.h(116): error C2143: syntax error: missing ',' before '<'
C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml/ListOf.h(123): note: see reference to class template instantiation 'libsbml::IdEq<CNAME>' being compiled
[9/213] Building CXX object src\CMakeFiles\libsbml-static.dir\sbml\packages\l3v2extendedmath\extension\L3v2extendedmathASTPlugin.cpp.obj
FAILED: src/CMakeFiles/libsbml-static.dir/sbml/packages/l3v2extendedmath/extension/L3v2extendedmathASTPlugin.cpp.obj
C:\buildcache\buildcache.exe C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\cl.exe  /nologo /TP -DLIBLAX_EXPORTS -DLIBLAX_STATIC=1 -DLIBSBML_EXPORTS -DLIBSBML_STATIC=1 -DLIBSBML_USE_CPP_NAMESPACE=1 -DUSE_L3V2EXTENDEDMATH -DUSE_LIBXML -DWIN32 -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src\src\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\common -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\extension -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\validator -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\validator\constraints -IC:\Users\Alan\Desktop\libOpenCOR\prebuilt\release\libxml2\include\libxml2 /std:c++17 /MP /MD /O2 /Ob2 /DNDEBUG   /bigobj /showIncludes /Fosrc\CMakeFiles\libsbml-static.dir\sbml\packages\l3v2extendedmath\extension\L3v2extendedmathASTPlugin.cpp.obj /Fdsrc\CMakeFiles\libsbml-static.dir\libsbml-static.pdb /FS -c C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\extension\L3v2extendedmathASTPlugin.cpp
C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml/ListOf.h(116): error C2143: syntax error: missing ',' before '<'
C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml/ListOf.h(123): note: see reference to class template instantiation 'libsbml::IdEq<CNAME>' being compiled
[10/213] Building CXX object src\CMakeFiles\libsbml-static.dir\sbml\packages\l3v2extendedmath\validator\L3v2extendedmathValidator.cpp.obj
FAILED: src/CMakeFiles/libsbml-static.dir/sbml/packages/l3v2extendedmath/validator/L3v2extendedmathValidator.cpp.obj
C:\buildcache\buildcache.exe C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\cl.exe  /nologo /TP -DLIBLAX_EXPORTS -DLIBLAX_STATIC=1 -DLIBSBML_EXPORTS -DLIBSBML_STATIC=1 -DLIBSBML_USE_CPP_NAMESPACE=1 -DUSE_L3V2EXTENDEDMATH -DUSE_LIBXML -DWIN32 -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src\src\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\common -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\extension -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\validator -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\validator\constraints -IC:\Users\Alan\Desktop\libOpenCOR\prebuilt\release\libxml2\include\libxml2 /std:c++17 /MP /MD /O2 /Ob2 /DNDEBUG   /bigobj /showIncludes /Fosrc\CMakeFiles\libsbml-static.dir\sbml\packages\l3v2extendedmath\validator\L3v2extendedmathValidator.cpp.obj /Fdsrc\CMakeFiles\libsbml-static.dir\libsbml-static.pdb /FS -c C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\validator\L3v2extendedmathValidator.cpp
C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml/ListOf.h(116): error C2143: syntax error: missing ',' before '<'
C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml/ListOf.h(123): note: see reference to class template instantiation 'libsbml::IdEq<CNAME>' being compiled
C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\validator\L3v2extendedmathValidator.cpp(72): error C2143: syntax error: missing ',' before '<'
C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\validator\L3v2extendedmathValidator.cpp(90): note: see reference to class template instantiation 'libsbml::Apply<T>' being compiled
[11/213] Building CXX object src\CMakeFiles\libsbml-static.dir\sbml\validator\ConsistencyValidator.cpp.obj
FAILED: src/CMakeFiles/libsbml-static.dir/sbml/validator/ConsistencyValidator.cpp.obj
C:\buildcache\buildcache.exe C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\cl.exe  /nologo /TP -DLIBLAX_EXPORTS -DLIBLAX_STATIC=1 -DLIBSBML_EXPORTS -DLIBSBML_STATIC=1 -DLIBSBML_USE_CPP_NAMESPACE=1 -DUSE_L3V2EXTENDEDMATH -DUSE_LIBXML -DWIN32 -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src\src\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\common -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\extension -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\validator -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\validator\constraints -IC:\Users\Alan\Desktop\libOpenCOR\prebuilt\release\libxml2\include\libxml2 /std:c++17 /MP /MD /O2 /Ob2 /DNDEBUG   /bigobj /showIncludes /Fosrc\CMakeFiles\libsbml-static.dir\sbml\validator\ConsistencyValidator.cpp.obj /Fdsrc\CMakeFiles\libsbml-static.dir\libsbml-static.pdb /FS -c C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\validator\ConsistencyValidator.cpp
C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml/ListOf.h(116): error C2143: syntax error: missing ',' before '<'
C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml/ListOf.h(123): note: see reference to class template instantiation 'libsbml::IdEq<CNAME>' being compiled
[12/213] Building CXX object src\CMakeFiles\libsbml-static.dir\sbml\validator\InternalConsistencyValidator.cpp.obj
FAILED: src/CMakeFiles/libsbml-static.dir/sbml/validator/InternalConsistencyValidator.cpp.obj
C:\buildcache\buildcache.exe C:\PROGRA~2\MICROS~2\2019\COMMUN~1\VC\Tools\MSVC\1429~1.301\bin\Hostx64\x64\cl.exe  /nologo /TP -DLIBLAX_EXPORTS -DLIBLAX_STATIC=1 -DLIBSBML_EXPORTS -DLIBSBML_STATIC=1 -DLIBSBML_USE_CPP_NAMESPACE=1 -DUSE_L3V2EXTENDEDMATH -DUSE_LIBXML -DWIN32 -D_CRT_NONSTDC_NO_DEPRECATE -D_CRT_SECURE_NO_WARNINGS -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src\src\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML-build\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\common -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\extension -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\sbml -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\validator -IC:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\packages\l3v2extendedmath\validator\constraints -IC:\Users\Alan\Desktop\libOpenCOR\prebuilt\release\libxml2\include\libxml2 /std:c++17 /MP /MD /O2 /Ob2 /DNDEBUG   /bigobj /showIncludes /Fosrc\CMakeFiles\libsbml-static.dir\sbml\validator\InternalConsistencyValidator.cpp.obj /Fdsrc\CMakeFiles\libsbml-static.dir\libsbml-static.pdb /FS -c C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml\validator\InternalConsistencyValidator.cpp
C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml/ListOf.h(116): error C2143: syntax error: missing ',' before '<'
C:\Users\Alan\Desktop\libOpenCOR\build\src\3rdparty\libSBML\build\libSBML-prefix\src\libSBML\src\sbml/ListOf.h(123): note: see reference to class template instantiation 'libsbml::IdEq<CNAME>' being compiled
ninja: build stopped: subcommand failed.
ninja: build stopped: subcommand failed.
CMake Error at cmake/packages.cmake:55 (message):
  The libSBML package could not be built.
Call Stack (most recent call first):
  src/3rdparty/libSBML/CMakeLists.txt:51 (build_package)


-- Configuring incomplete, errors occurred!
See also "C:/Users/Alan/Desktop/libOpenCOR/build/CMakeFiles/CMakeOutput.log".
See also "C:/Users/Alan/Desktop/libOpenCOR/build/CMakeFiles/CMakeError.log".
@fbergmann
Copy link
Member

Hello Alan,

this has already been resolved in the current branch and pre releases. We currently dont have the capacity to build all the binaries we did before, so we marked it as prerelease. But either development, or:

https://github.com/sbmlteam/libsbml/releases/tag/v5.19.5

should work for you.

best
Frank

@agarny
Copy link
Author

agarny commented Jul 13, 2022

Thanks @fbergmann, my bad for not checking the tags!

FWIW, I build my own copy of libxml2 and pass it to libSBML's build system. However, when I try to build libSBML, I am getting some errors when libSBML is trying to test libxml2 on Linux (Ubuntu 20.04 LTS; everything is fine on Windows and macOS):

...
-- Performing Test LIBXML_LIBXML_TEST
-- Performing Test LIBXML_LIBXML_TEST - Failed
-- LIBXML_LIBXML_TEST = 
-- Performing Test LIBXML_LIBXML_TEST2
-- Performing Test LIBXML_LIBXML_TEST2 - Failed
-- LIBXML_LIBXML_TEST2 = 
CMake Error at CMakeModules/FindLIBXML.cmake:132 (message):
  Unable to compile a test executable against LIBXML

      
      LIBXML_INCLUDE_DIR = /home/alan/libOpenCOR/prebuilt/libxml2/include/libxml2
      LIBXML_LIBRARY     = /home/alan/libOpenCOR/prebuilt/libxml2/lib/libxml2.a
      
      
Call Stack (most recent call first):
  CMakeLists.txt:443 (find_package)


-- Configuring incomplete, errors occurred!
See also "/home/alan/libOpenCOR/build/src/3rdparty/libSBML/build/libSBML-prefix/src/libSBML-build/CMakeFiles/CMakeOutput.log".
See also "/home/alan/libOpenCOR/build/src/3rdparty/libSBML/build/libSBML-prefix/src/libSBML-build/CMakeFiles/CMakeError.log".
ninja: build stopped: subcommand failed.
CMake Error at cmake/packages.cmake:55 (message):
  The libSBML package could not be built.
Call Stack (most recent call first):
  src/3rdparty/libSBML/CMakeLists.txt:51 (build_package)


-- Configuring incomplete, errors occurred!
See also "/home/alan/libOpenCOR/build/CMakeFiles/CMakeOutput.log".
See also "/home/alan/libOpenCOR/build/CMakeFiles/CMakeError.log".

If I modify FindLIBXML.cmake to assume that LIBXML_LIBXML_TEST passed then I am able to build (and use) libSBML just fine.

I guess I should stress that I am building static versions of libxml2 and libSBML.

@fbergmann
Copy link
Member

That test is trying to discover potential dependencies of libxml (such as iconv and others), and whether the LIBXML_STATIC define needs to be added to use the library. It would be good to see those log files to see why it failed. I could make it a warning instead.

@agarny
Copy link
Author

agarny commented Jul 13, 2022

Oops, my bad, I should have indeed attached the log files. Here they are: CMakeError.log and CMakeOutput.log. As you can tell from CMakeError.log, LIBXML_LIBXML_TEST fails because my static version of libxml2 has undefined references to floor, log10, and pow. So, I get the feeling that your test would have worked fine if I had had a shared version of libxml2, but I "only" have a static version.

@fbergmann
Copy link
Member

good to know! Then i'll just look for the math library and if found link against it for the test. Does this work for you

diff --git a/CMakeModules/FindLIBXML.cmake b/CMakeModules/FindLIBXML.cmake
index 8e6318138..73e5f5ae7 100644
--- a/CMakeModules/FindLIBXML.cmake
+++ b/CMakeModules/FindLIBXML.cmake
@@ -1,3 +1,5 @@
+include(CheckLibraryExists)
+
 string(TOUPPER ${PROJECT_NAME} _UPPER_PROJECT_NAME)
 set(_PROJECT_DEPENDENCY_DIR ${_UPPER_PROJECT_NAME}_DEPENDENCY_DIR)
 
@@ -23,7 +25,7 @@ find_path(LIBXML_INCLUDE_DIR
     PATHS ${${_PROJECT_DEPENDENCY_DIR}}/include
           ${${_PROJECT_DEPENDENCY_DIR}}/include/libxml2
     NO_DEFAULT_PATH
-)      
+)
 
 
 if (NOT LIBXML_INCLUDE_DIR)
@@ -71,6 +73,13 @@ if (WIN32)
 set(ADDITIONAL_LIBS "ws2_32.lib;${ADDITIONAL_LIBS}")
 endif()
 
+
+CHECK_LIBRARY_EXISTS(m sin "" HAVE_LIB_M)
+
+if (HAVE_LIB_M)
+    set(ADDITIONAL_LIBS ${ADDITIONAL_LIBS} m)
+endif (HAVE_LIB_M)
+
 if(NOT TARGET LIBXML::LIBXML)
   add_library(LIBXML::LIBXML UNKNOWN IMPORTED)
   set_target_properties(LIBXML::LIBXML PROPERTIES
@@ -83,7 +92,7 @@ endif()
 
 # figure out if we need XML_STATIC flag
 if (LIBXML_INCLUDE_DIR AND LIBXML_LIBRARY)
-  
+
   set(LIBXML_LIBXML_CODE
 "
 #include <libxml/xmlversion.h>
@@ -130,10 +139,10 @@ if (LIBXML_LIBXML_TEST2)
     )
 else()
     message(FATAL_ERROR "Unable to compile a test executable against LIBXML
-    
+
     LIBXML_INCLUDE_DIR = ${LIBXML_INCLUDE_DIR}
     LIBXML_LIBRARY     = ${LIBXML_LIBRARY}
-    
+
     ")
 endif()
 
@@ -143,7 +152,7 @@ set(CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES_CACHE})
 set(CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES_CACHE})
 set(CMAKE_REQUIRED_DEFINITIONS ${CMAKE_REQUIRED_DEFINITIONS_CACHE})
 endif()
-  
+
 include(FindPackageHandleStandardArgs)
 
 find_package_handle_standard_args(

@agarny
Copy link
Author

agarny commented Jul 15, 2022

Hi @fbergmann, yes, it's all good. 🥳 Would be nice to have 5.19.6.

@fbergmann
Copy link
Member

i'll make a new (preview) release, as soon as the fbc v3 issue is resolved

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants