diff --git a/easybuild/easyconfigs/a/AMPL-MP/AMPL-MP-3.1.0-GCCcore-10.3.0.eb b/easybuild/easyconfigs/a/AMPL-MP/AMPL-MP-3.1.0-GCCcore-10.3.0.eb new file mode 100644 index 000000000000..eb9ab2c4dcc3 --- /dev/null +++ b/easybuild/easyconfigs/a/AMPL-MP/AMPL-MP-3.1.0-GCCcore-10.3.0.eb @@ -0,0 +1,32 @@ +easyblock = 'CMakeMake' + +name = 'AMPL-MP' +version = '3.1.0' + +homepage = 'https://github.com/ampl/mp' +description = """ An open-source library for mathematical programming. """ + +toolchain = {'name': 'GCCcore', 'version': '10.3.0'} + +source_urls = ['https://github.com/ampl/mp/archive/'] +sources = ['%(version)s.tar.gz'] +patches = ['ampl-mp-%(version)s-makefile.patch'] + +checksums = [ + '587c1a88f4c8f57bef95b58a8586956145417c8039f59b1758365ccc5a309ae9', # v3.1.0.tar.gz + '961844eac706e8badb79f8dd16754444ecbf47663b255768290b42d538d1edb6', # ampl-mp-3.1.0-makefile.patch +] + +builddependencies = [ + ('binutils', '2.36.1'), + ('CMake', '3.20.1'), +] + +runtest = 'test' + +sanity_check_paths = { + 'files': ['bin/tableproxy64', 'lib/libasl.a', 'lib/libbenchmark.a', 'lib/libmp.a'], + 'dirs': ['include/asl', 'include/benchmark', 'include/mp', 'share'], +} + +moduleclass = 'math' diff --git a/easybuild/easyconfigs/a/AMPL-MP/ampl-mp-3.1.0-makefile.patch b/easybuild/easyconfigs/a/AMPL-MP/ampl-mp-3.1.0-makefile.patch new file mode 100644 index 000000000000..359fbffc1778 --- /dev/null +++ b/easybuild/easyconfigs/a/AMPL-MP/ampl-mp-3.1.0-makefile.patch @@ -0,0 +1,49 @@ +Removed -Werror as only deprecated warnings were printed, changed CHAR_WIDTH to CHAR_SIZE +author: J. Sassmannshausen (ICL/UK) +diff --git a/mp-3.1.0.orig/include/mp/format.h b/mp-3.1.0/include/mp/format.h +index c5d09b5..c473041 100644 +--- a/mp-3.1.0.orig/include/mp/format.h ++++ b/mp-3.1.0/include/mp/format.h +@@ -1747,21 +1747,21 @@ class ArgFormatterBase : public ArgVisitor { + typedef typename BasicWriter::CharPtr CharPtr; + Char fill = internal::CharTraits::cast(spec_.fill()); + CharPtr out = CharPtr(); +- const unsigned CHAR_WIDTH = 1; +- if (spec_.width_ > CHAR_WIDTH) { ++ const unsigned CHAR_SIZE = 1; ++ if (spec_.width_ > CHAR_SIZE) { + out = writer_.grow_buffer(spec_.width_); + if (spec_.align_ == ALIGN_RIGHT) { +- std::uninitialized_fill_n(out, spec_.width_ - CHAR_WIDTH, fill); +- out += spec_.width_ - CHAR_WIDTH; ++ std::uninitialized_fill_n(out, spec_.width_ - CHAR_SIZE, fill); ++ out += spec_.width_ - CHAR_SIZE; + } else if (spec_.align_ == ALIGN_CENTER) { + out = writer_.fill_padding(out, spec_.width_, +- internal::check(CHAR_WIDTH), fill); ++ internal::check(CHAR_SIZE), fill); + } else { +- std::uninitialized_fill_n(out + CHAR_WIDTH, +- spec_.width_ - CHAR_WIDTH, fill); ++ std::uninitialized_fill_n(out + CHAR_SIZE, ++ spec_.width_ - CHAR_SIZE, fill); + } + } else { +- out = writer_.grow_buffer(CHAR_WIDTH); ++ out = writer_.grow_buffer(CHAR_SIZE); + } + *out = internal::CharTraits::cast(value); + } +diff --git a/mp-3.1.0.orig/thirdparty/benchmark/CMakeLists.txt b/mp-3.1.0/thirdparty/benchmark/CMakeLists.txt +index 2c72252..360c91f 100644 +--- a/mp-3.1.0.orig/thirdparty/benchmark/CMakeLists.txt ++++ b/mp-3.1.0/thirdparty/benchmark/CMakeLists.txt +@@ -56,7 +56,7 @@ else() + + add_cxx_compiler_flag(-Wextra) + add_cxx_compiler_flag(-Wshadow) +- add_cxx_compiler_flag(-Werror RELEASE) ++# add_cxx_compiler_flag(-Werror RELEASE) + add_cxx_compiler_flag(-pedantic) + add_cxx_compiler_flag(-pedantic-errors) + add_cxx_compiler_flag(-Wshorten-64-to-32)