lutraconsulting / MDAL

Mesh Data Abstraction Library
http://www.mdal.xyz/
MIT License
160 stars 50 forks source link

failing to build 0.9.4 on linux (external_drivers/minimal_example/CMakeFiles/mdal_dummy_driver.dir/mdalDummyExternalDriver.cpp.o) #412

Closed okanisis closed 2 years ago

okanisis commented 2 years ago

Version Info:

cmake:

    cmake -B build -S "${pkgname}-${pkgver}" \
        -DCMAKE_BUILD_TYPE='None' \
        -DCMAKE_INSTALL_PREFIX='/usr' \
        -DENABLE_TESTS=ON \
        -DSQLITE3_LIBRARY=/usr/lib/libsqlite3.so \
        -Wno-dev

Error:

Getting the following error trying to build on Arch Linux 64-bit with cmake.

[ 99%] Building CXX object external_drivers/minimal_example/CMakeFiles/mdal_dummy_driver.dir/mdalDummyExternalDriver.cpp.o
/build/mdal/src/mdal-0.9.4/external_drivers/minimal_example/mdalDummyExternalDriver.cpp: In function ‘void MDAL_DRIVER_M_extent(int, double*, double*, double*, double*)’:
/build/mdal/src/mdal-0.9.4/external_drivers/minimal_example/mdalDummyExternalDriver.cpp:305:16: error: ‘numeric_limits’ is not a member of ‘std’
  305 |   *xMin = std::numeric_limits<double>::quiet_NaN();
      |                ^~~~~~~~~~~~~~
/build/mdal/src/mdal-0.9.4/external_drivers/minimal_example/mdalDummyExternalDriver.cpp:305:31: error: expected primary-expression before ‘double’
  305 |   *xMin = std::numeric_limits<double>::quiet_NaN();
      |                               ^~~~~~
/build/mdal/src/mdal-0.9.4/external_drivers/minimal_example/mdalDummyExternalDriver.cpp:306:16: error: ‘numeric_limits’ is not a member of ‘std’
  306 |   *xMax = std::numeric_limits<double>::quiet_NaN();
      |                ^~~~~~~~~~~~~~
/build/mdal/src/mdal-0.9.4/external_drivers/minimal_example/mdalDummyExternalDriver.cpp:306:31: error: expected primary-expression before ‘double’
  306 |   *xMax = std::numeric_limits<double>::quiet_NaN();
      |                               ^~~~~~
/build/mdal/src/mdal-0.9.4/external_drivers/minimal_example/mdalDummyExternalDriver.cpp:307:16: error: ‘numeric_limits’ is not a member of ‘std’
  307 |   *yMin = std::numeric_limits<double>::quiet_NaN();
      |                ^~~~~~~~~~~~~~
/build/mdal/src/mdal-0.9.4/external_drivers/minimal_example/mdalDummyExternalDriver.cpp:307:31: error: expected primary-expression before ‘double’
  307 |   *yMin = std::numeric_limits<double>::quiet_NaN();
      |                               ^~~~~~
/build/mdal/src/mdal-0.9.4/external_drivers/minimal_example/mdalDummyExternalDriver.cpp:308:16: error: ‘numeric_limits’ is not a member of ‘std’
  308 |   *yMax = std::numeric_limits<double>::quiet_NaN();
      |                ^~~~~~~~~~~~~~
/build/mdal/src/mdal-0.9.4/external_drivers/minimal_example/mdalDummyExternalDriver.cpp:308:31: error: expected primary-expression before ‘double’
  308 |   *yMax = std::numeric_limits<double>::quiet_NaN();
      |                               ^~~~~~
/build/mdal/src/mdal-0.9.4/external_drivers/minimal_example/mdalDummyExternalDriver.cpp:313:18: error: ‘numeric_limits’ is not a member of ‘std’
  313 |     *xMin = std::numeric_limits<double>::max();
      |                  ^~~~~~~~~~~~~~
/build/mdal/src/mdal-0.9.4/external_drivers/minimal_example/mdalDummyExternalDriver.cpp:313:33: error: expected primary-expression before ‘double’
  313 |     *xMin = std::numeric_limits<double>::max();
      |                                 ^~~~~~
/build/mdal/src/mdal-0.9.4/external_drivers/minimal_example/mdalDummyExternalDriver.cpp:314:19: error: ‘numeric_limits’ is not a member of ‘std’
  314 |     *xMax = -std::numeric_limits<double>::max();
      |                   ^~~~~~~~~~~~~~
/build/mdal/src/mdal-0.9.4/external_drivers/minimal_example/mdalDummyExternalDriver.cpp:314:34: error: expected primary-expression before ‘double’
  314 |     *xMax = -std::numeric_limits<double>::max();
      |                                  ^~~~~~
/build/mdal/src/mdal-0.9.4/external_drivers/minimal_example/mdalDummyExternalDriver.cpp:315:18: error: ‘numeric_limits’ is not a member of ‘std’
  315 |     *yMin = std::numeric_limits<double>::max();
      |                  ^~~~~~~~~~~~~~
/build/mdal/src/mdal-0.9.4/external_drivers/minimal_example/mdalDummyExternalDriver.cpp:315:33: error: expected primary-expression before ‘double’
  315 |     *yMin = std::numeric_limits<double>::max();
      |                                 ^~~~~~
/build/mdal/src/mdal-0.9.4/external_drivers/minimal_example/mdalDummyExternalDriver.cpp:316:19: error: ‘numeric_limits’ is not a member of ‘std’
  316 |     *yMax = -std::numeric_limits<double>::max();
      |                   ^~~~~~~~~~~~~~
/build/mdal/src/mdal-0.9.4/external_drivers/minimal_example/mdalDummyExternalDriver.cpp:316:34: error: expected primary-expression before ‘double’
  316 |     *yMax = -std::numeric_limits<double>::max();
      |                                  ^~~~~~
make[2]: *** [external_drivers/minimal_example/CMakeFiles/mdal_dummy_driver.dir/build.make:76: external_drivers/minimal_example/CMakeFiles/mdal_dummy_driver.dir/mdalDummyExternalDriver.cpp.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:1636: external_drivers/minimal_example/CMakeFiles/mdal_dummy_driver.dir/all] Error 2
make: *** [Makefile:146: all] Error 2
vcloarec commented 2 years ago

can you try to replace #include "limits.h" by #include <limits>here : https://github.com/lutraconsulting/MDAL/blob/f26a2e7333a5725c3d6ef6c184d12fec99caf925/external_drivers/minimal_example/mdalDummyExternalDriver.cpp#L16

okanisis commented 2 years ago

I attempted the patch but its the same error https://github.com/okanisis/MDAL/commit/ce9897666571495dfaa0553f4f8864c9556501e9

vcloarec commented 2 years ago

@okanisis , I purposed esssentially to remove the suffix .h

okanisis commented 2 years ago

It fixed it and compiles successfully. I'll try to issue a pull request for the patch and issued a pull request #413

There's a test failing that I'll open a separate issue for related to gdal grib.

vcloarec commented 2 years ago

I think the gdal grib issue is this one: https://github.com/lutraconsulting/MDAL/issues/391