From f20e4e8cd5e98d772e3d20bc0258f8d9d54418fe Mon Sep 17 00:00:00 2001 From: JarneRenders Date: Thu, 30 Oct 2025 14:35:45 +0100 Subject: [PATCH 1/7] add dependencies for PredSim --- .../CasADi-3.7.0-foss-2024a-with-matlab.eb | 34 ++++++++++ .../ColPack-20180108-GCCcore-13.3.0.eb | 25 +++++++ .../OpenSim-4.5.2-foss-2024a-with-matlab.eb | 66 +++++++++++++++++++ ...m-4.5.2_CMake-grab-correct-libraries.patch | 21 ++++++ .../SWIG-20180415-GCC-13.3.0-with-matlab.eb | 35 ++++++++++ 5 files changed, 181 insertions(+) create mode 100644 easyconfigs/c/CasADi/CasADi-3.7.0-foss-2024a-with-matlab.eb create mode 100644 easyconfigs/c/ColPack/ColPack-20180108-GCCcore-13.3.0.eb create mode 100644 easyconfigs/o/OpenSim/OpenSim-4.5.2-foss-2024a-with-matlab.eb create mode 100644 easyconfigs/o/OpenSim/OpenSim-4.5.2_CMake-grab-correct-libraries.patch create mode 100644 easyconfigs/s/SWIG/SWIG-20180415-GCC-13.3.0-with-matlab.eb diff --git a/easyconfigs/c/CasADi/CasADi-3.7.0-foss-2024a-with-matlab.eb b/easyconfigs/c/CasADi/CasADi-3.7.0-foss-2024a-with-matlab.eb new file mode 100644 index 00000000..74ffb9c6 --- /dev/null +++ b/easyconfigs/c/CasADi/CasADi-3.7.0-foss-2024a-with-matlab.eb @@ -0,0 +1,34 @@ +easyblock = 'CMakeMake' + +name = 'CasADi' +version = '3.7.0' +versionsuffix = '-with-matlab' + +homepage = 'https://web.casadi.org/' +description = """CasADi is an open-source tool for nonlinear optimization and algorithmic differentiation.""" + +toolchain = {'name': 'foss', 'version': '2024a'} + +github_account = 'casadi' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['%(version)s.tar.gz'] +checksums = ['946b1e5d4360715d5972ac4fcbc0e5375f934f412a670b402359ee2e1ea7bb3a'] + +builddependencies = [ + ('CMake', '3.29.3'), + ('SWIG', '20180415', '-with-matlab'), +] + +dependencies = [ + ('Ipopt', '3.14.17'), + ('MATLAB', '2024a-r6', '', SYSTEM), +] + +sanity_check_paths = { + 'files': ['lib/libcasadi.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +configopts = "-DWITH_IPOPT=ON -DWITH_MATLAB=ON -DWITH_THREAD=ON" + +moduleclass = 'tools' diff --git a/easyconfigs/c/ColPack/ColPack-20180108-GCCcore-13.3.0.eb b/easyconfigs/c/ColPack/ColPack-20180108-GCCcore-13.3.0.eb new file mode 100644 index 00000000..4a82b30b --- /dev/null +++ b/easyconfigs/c/ColPack/ColPack-20180108-GCCcore-13.3.0.eb @@ -0,0 +1,25 @@ +easyblock = 'CMakeMake' + +name = 'ColPack' +version = '20180108' +local_commit = '72f691e91d59e8eb2123f258e67a4ddc72d105ee' + +homepage = 'https://github.com/opensim-org/ColPack' +description = """ColPack is a package comprising of implementations of algorithms for the specialized vertex coloring problems discussed in the previous section as well as algorithms for a variety of related supporting tasks in derivative computation.""" + +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} + +source_urls = ['https://github.com/opensim-org/colpack/archive/'] +sources = [{'download_filename': '%s.zip' % local_commit, 'filename': '%(name)s-%(version)s.zip'}] +checksums = ['7f2d707e69cb02113e3bf83be47db7d4a36351ac474756e33d2a67a480617bbf'] + +builddependencies = { + ('CMake', '3.29.3'), +} + +sanity_check_paths = { + 'files': ['lib/libColPack.%s' % SHLIB_EXT], + 'dirs': ['include'], +} + +moduleclass = 'math' diff --git a/easyconfigs/o/OpenSim/OpenSim-4.5.2-foss-2024a-with-matlab.eb b/easyconfigs/o/OpenSim/OpenSim-4.5.2-foss-2024a-with-matlab.eb new file mode 100644 index 00000000..9f963992 --- /dev/null +++ b/easyconfigs/o/OpenSim/OpenSim-4.5.2-foss-2024a-with-matlab.eb @@ -0,0 +1,66 @@ +easyblock = 'CMakeMake' + +name = 'OpenSim' +version = '4.5.2' +versionsuffix = '-with-matlab' + +homepage = 'https://github.com/opensim-org/opensim-core' +description = """OpenSim is software that lets users develop models of musculoskeletal structures and create dynamic simulations of movement""" + +toolchain = {'name': 'foss', 'version': '2024a'} + +source_urls = ['https://github.com/opensim-org/opensim-core/archive/'] +sources = ['%(version)s.tar.gz'] +checksums = ['53c7c477aeef334109d7ea991251c1f680777d42e59d878fef808ad6d28a98f2'] +patches = [ + 'OpenSim-%(version)s_fix-docopt-includes-link.patch', + 'OpenSim-%(version)s_CMake-grab-correct-libraries.patch', +] + +builddependencies = [ + ('CMake', '3.29.3'), + ('pkgconf', '2.2.0'), + ('Doxygen', '1.11.0'), + ('git', '2.45.1'), + ('spdlog', '1.4.1'), # OpenSim needs this very old version + ('Catch2', '3.8.0'), + ('SWIG', '4.2.1'), +] + +dependencies = [ + ('EZC3D', '1.6.0'), + ('MATLAB', '2024a-r6', '', SYSTEM), + ('Simbody', '3.8'), + ('CasADi', '3.7.0', '-with-matlab'), + ('ColPack', '20180108'), + ('Eigen', '3.4.0'), + ('ADOL-C', '2.7.2'), + ('Java', '8', '', SYSTEM), # version used by MATLAB + ('docopt.cpp', '0.6.3-400e6dd'), +] + + +# An old CMake module for MATLAB is included in the source which does not +# handle recent MATLAB versions correctly. Remove it and realy on the CMake +# module for MATLAB in the CMake installation instead. +preconfigopts = 'rm ../opensim-core-%(version)s/cmake/FindMatlab.cmake && ' + +# In newer versions of CasADi the target casadi has been replaced with casadi::casadi +preconfigopts += "sed -i 's/get_target_property(CASADI_LIBRARY_LOCATION casadi LOCATION)/set(CASADI_LIBRARY_LOCATION casadi::casadi)/' ../opensim-core-%(version)s/cmake/CMakeLists.txt && " + +configopts = ' -G"Unix Makefiles" -DOPENSIM_WITH_CASADI=on -DBUILD_JAVA_WRAPPING=on ' +configopts += '-DBUILD_PYTHON_WRAPPING=off -DOPENSIM_C3D_PARSER=ezc3d ' +configopts += '-DBUILD_TESTING=off -DOPENSIM_INSTALL_UNIX_FHS=off ' # Turn off unix FHS, otherwise default directories are used to store files +configopts += '-DSWIG_DIR=${EBROOTSWIG} -DSIMBODY_HOME=${EBROOTSIMBODY} ' +configopts += '-DOPENSIM_WITH_TROPTER=off ' + +sanity_check_paths = { + 'files': ['bin/opensim-cmd'], + 'dirs': ['sdk'], +} + +modextrapaths = { + 'CPATH': ['sdk/include', 'sdk/Simbody/include/simbody'], +} + +moduleclass = 'tools' diff --git a/easyconfigs/o/OpenSim/OpenSim-4.5.2_CMake-grab-correct-libraries.patch b/easyconfigs/o/OpenSim/OpenSim-4.5.2_CMake-grab-correct-libraries.patch new file mode 100644 index 00000000..17f331a7 --- /dev/null +++ b/easyconfigs/o/OpenSim/OpenSim-4.5.2_CMake-grab-correct-libraries.patch @@ -0,0 +1,21 @@ +diff -ruN opensim-core-4.5.2.orig/CMakeLists.txt opensim-core-4.5.2/CMakeLists.txt +--- opensim-core-4.5.2.orig/CMakeLists.txt 2025-04-11 23:34:24.000000000 +0200 ++++ opensim-core-4.5.2/CMakeLists.txt 2025-10-29 12:03:22.195873250 +0100 +@@ -864,15 +864,10 @@ + + file(GLOB gfortran "${gcc_libdir}/../../../x86_64-linux-gnu/libgfortran*.so*") + file(GLOB quadmath "${gcc_libdir}/../../../x86_64-linux-gnu/libquadmath*.so*") ++ file(GLOB ipoptlibs "${IPOPT_LIBDIR}/*.so*") + + install(FILES +- ${IPOPT_LIBDIR}/libipopt.so.3.14.16 +- ${IPOPT_LIBDIR}/libipopt.so.3 +- ${IPOPT_LIBDIR}/libipopt.so +- ${IPOPT_LIBDIR}/libcoinmumps.so.3.0.5 +- ${IPOPT_LIBDIR}/libcoinmumps.so.3 +- ${IPOPT_LIBDIR}/libcoinmumps.so +- ${IPOPT_LIBDIR}/libmetis.so ++ ${ipoptlibs} + ${gfortran} + ${quadmath} + DESTINATION ${CMAKE_INSTALL_LIBDIR}) diff --git a/easyconfigs/s/SWIG/SWIG-20180415-GCC-13.3.0-with-matlab.eb b/easyconfigs/s/SWIG/SWIG-20180415-GCC-13.3.0-with-matlab.eb new file mode 100644 index 00000000..e870f5fb --- /dev/null +++ b/easyconfigs/s/SWIG/SWIG-20180415-GCC-13.3.0-with-matlab.eb @@ -0,0 +1,35 @@ +name = 'SWIG' +version = '20180415' +versionsuffix = '-with-matlab' +local_commit = 'cd3f6c5fe9ed273fcc981dcae3e8b50d51529664' + +homepage = 'https://github.com/jaeandersson/swig/' +description = """SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages. This specific version also supports MATLAB.""" + +toolchain = {'name': 'GCC', 'version': '13.3.0'} +toolchainopts = {'pic': True} + +source_urls = ['https://github.com/jaeandersson/swig/archive/'] +sources = [{'download_filename': '%s.zip' % local_commit, 'filename': '%(name)s-%(version)s.zip'}] +checksums = ['b5ef6f988b97777c95e096ba20ff0b140b52b6330516a9070793b5af5644c63d'] + +builddependencies = [ + ('Bison', '3.8.2'), +] + +dependencies = [ + ('zlib', '1.3.1'), + ('PCRE', '8.45'), +] + +preconfigopts = 'sh autogen.sh && ' +configopts = '--without-alllang --with-boost=no --with-matlab' + +sanity_check_paths = { + 'files': ['bin/swig'], + 'dirs': ['share'], +} + +sanity_check_commands = ['swig -help'] + +moduleclass = 'devel' From 908399f5bdc10cfe6ccb7bd7f930ebc702c0af5b Mon Sep 17 00:00:00 2001 From: Jarne Renders Date: Tue, 4 Nov 2025 12:05:13 +0100 Subject: [PATCH 2/7] Change CasADi versionsuffix --- ...ith-matlab.eb => CasADi-3.7.0-foss-2024a-MATLAB-2024a-r6.eb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename easyconfigs/c/CasADi/{CasADi-3.7.0-foss-2024a-with-matlab.eb => CasADi-3.7.0-foss-2024a-MATLAB-2024a-r6.eb} (95%) diff --git a/easyconfigs/c/CasADi/CasADi-3.7.0-foss-2024a-with-matlab.eb b/easyconfigs/c/CasADi/CasADi-3.7.0-foss-2024a-MATLAB-2024a-r6.eb similarity index 95% rename from easyconfigs/c/CasADi/CasADi-3.7.0-foss-2024a-with-matlab.eb rename to easyconfigs/c/CasADi/CasADi-3.7.0-foss-2024a-MATLAB-2024a-r6.eb index 74ffb9c6..23a2faff 100644 --- a/easyconfigs/c/CasADi/CasADi-3.7.0-foss-2024a-with-matlab.eb +++ b/easyconfigs/c/CasADi/CasADi-3.7.0-foss-2024a-MATLAB-2024a-r6.eb @@ -2,7 +2,7 @@ easyblock = 'CMakeMake' name = 'CasADi' version = '3.7.0' -versionsuffix = '-with-matlab' +versionsuffix = '-MATLAB-2024a-r6' homepage = 'https://web.casadi.org/' description = """CasADi is an open-source tool for nonlinear optimization and algorithmic differentiation.""" From 979cadf70d195687ce65972d6d20f1e47efc3012 Mon Sep 17 00:00:00 2001 From: Jarne Renders Date: Tue, 4 Nov 2025 12:06:16 +0100 Subject: [PATCH 3/7] Change versionsuffix for OpenSim --- ...th-matlab.eb => OpenSim-4.5.2-foss-2024a-MATLAB-2024a-r6.eb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename easyconfigs/o/OpenSim/{OpenSim-4.5.2-foss-2024a-with-matlab.eb => OpenSim-4.5.2-foss-2024a-MATLAB-2024a-r6.eb} (98%) diff --git a/easyconfigs/o/OpenSim/OpenSim-4.5.2-foss-2024a-with-matlab.eb b/easyconfigs/o/OpenSim/OpenSim-4.5.2-foss-2024a-MATLAB-2024a-r6.eb similarity index 98% rename from easyconfigs/o/OpenSim/OpenSim-4.5.2-foss-2024a-with-matlab.eb rename to easyconfigs/o/OpenSim/OpenSim-4.5.2-foss-2024a-MATLAB-2024a-r6.eb index 9f963992..003d8ba6 100644 --- a/easyconfigs/o/OpenSim/OpenSim-4.5.2-foss-2024a-with-matlab.eb +++ b/easyconfigs/o/OpenSim/OpenSim-4.5.2-foss-2024a-MATLAB-2024a-r6.eb @@ -2,7 +2,7 @@ easyblock = 'CMakeMake' name = 'OpenSim' version = '4.5.2' -versionsuffix = '-with-matlab' +versionsuffix = '-MATLAB-2024a-r6' homepage = 'https://github.com/opensim-org/opensim-core' description = """OpenSim is software that lets users develop models of musculoskeletal structures and create dynamic simulations of movement""" From 505b2bb1c6ea854793d8272359ab27f89f146458 Mon Sep 17 00:00:00 2001 From: Jarne Renders Date: Tue, 4 Nov 2025 12:06:50 +0100 Subject: [PATCH 4/7] Change version suffix for SWIG --- ...13.3.0-with-matlab.eb => SWIG-20180415-GCC-13.3.0-MATLAB.eb} | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) rename easyconfigs/s/SWIG/{SWIG-20180415-GCC-13.3.0-with-matlab.eb => SWIG-20180415-GCC-13.3.0-MATLAB.eb} (97%) diff --git a/easyconfigs/s/SWIG/SWIG-20180415-GCC-13.3.0-with-matlab.eb b/easyconfigs/s/SWIG/SWIG-20180415-GCC-13.3.0-MATLAB.eb similarity index 97% rename from easyconfigs/s/SWIG/SWIG-20180415-GCC-13.3.0-with-matlab.eb rename to easyconfigs/s/SWIG/SWIG-20180415-GCC-13.3.0-MATLAB.eb index e870f5fb..f8087162 100644 --- a/easyconfigs/s/SWIG/SWIG-20180415-GCC-13.3.0-with-matlab.eb +++ b/easyconfigs/s/SWIG/SWIG-20180415-GCC-13.3.0-MATLAB.eb @@ -1,6 +1,6 @@ name = 'SWIG' version = '20180415' -versionsuffix = '-with-matlab' +versionsuffix = '-MATLAB' local_commit = 'cd3f6c5fe9ed273fcc981dcae3e8b50d51529664' homepage = 'https://github.com/jaeandersson/swig/' From c714d561f67905ca2b6051cbffedc6f5edad31b9 Mon Sep 17 00:00:00 2001 From: Jarne Renders Date: Tue, 4 Nov 2025 14:12:30 +0100 Subject: [PATCH 5/7] Reorder SWIG description for clarity --- easyconfigs/s/SWIG/SWIG-20180415-GCC-13.3.0-MATLAB.eb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/easyconfigs/s/SWIG/SWIG-20180415-GCC-13.3.0-MATLAB.eb b/easyconfigs/s/SWIG/SWIG-20180415-GCC-13.3.0-MATLAB.eb index f8087162..bddc4e5b 100644 --- a/easyconfigs/s/SWIG/SWIG-20180415-GCC-13.3.0-MATLAB.eb +++ b/easyconfigs/s/SWIG/SWIG-20180415-GCC-13.3.0-MATLAB.eb @@ -4,7 +4,7 @@ versionsuffix = '-MATLAB' local_commit = 'cd3f6c5fe9ed273fcc981dcae3e8b50d51529664' homepage = 'https://github.com/jaeandersson/swig/' -description = """SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages. This specific version also supports MATLAB.""" +description = """ This specific version of SWIG supports MATLAB. SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.""" toolchain = {'name': 'GCC', 'version': '13.3.0'} toolchainopts = {'pic': True} From 98fc5147d8942518cba6e84279d55f19485a9a44 Mon Sep 17 00:00:00 2001 From: JarneRenders Date: Tue, 4 Nov 2025 15:44:49 +0100 Subject: [PATCH 6/7] fix SWIG toolchain version --- ...0-MATLAB.eb => SWIG-20180415-GCCcore-13.3.0-MATLAB.eb} | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) rename easyconfigs/s/SWIG/{SWIG-20180415-GCC-13.3.0-MATLAB.eb => SWIG-20180415-GCCcore-13.3.0-MATLAB.eb} (74%) diff --git a/easyconfigs/s/SWIG/SWIG-20180415-GCC-13.3.0-MATLAB.eb b/easyconfigs/s/SWIG/SWIG-20180415-GCCcore-13.3.0-MATLAB.eb similarity index 74% rename from easyconfigs/s/SWIG/SWIG-20180415-GCC-13.3.0-MATLAB.eb rename to easyconfigs/s/SWIG/SWIG-20180415-GCCcore-13.3.0-MATLAB.eb index bddc4e5b..c7ecc6a7 100644 --- a/easyconfigs/s/SWIG/SWIG-20180415-GCC-13.3.0-MATLAB.eb +++ b/easyconfigs/s/SWIG/SWIG-20180415-GCCcore-13.3.0-MATLAB.eb @@ -4,9 +4,12 @@ versionsuffix = '-MATLAB' local_commit = 'cd3f6c5fe9ed273fcc981dcae3e8b50d51529664' homepage = 'https://github.com/jaeandersson/swig/' -description = """ This specific version of SWIG supports MATLAB. SWIG is a software development tool that connects programs written in C and C++ with a variety of high-level programming languages.""" +description = """ +This specific version of SWIG supports MATLAB. SWIG is a software +development tool that connects programs written in C and C++ with a variety of high-level programming languages. +""" -toolchain = {'name': 'GCC', 'version': '13.3.0'} +toolchain = {'name': 'GCCcore', 'version': '13.3.0'} toolchainopts = {'pic': True} source_urls = ['https://github.com/jaeandersson/swig/archive/'] @@ -14,6 +17,7 @@ sources = [{'download_filename': '%s.zip' % local_commit, 'filename': '%(name)s- checksums = ['b5ef6f988b97777c95e096ba20ff0b140b52b6330516a9070793b5af5644c63d'] builddependencies = [ + ('binutils', '2.42'), ('Bison', '3.8.2'), ] From ca93cc0da542a7d246a5dbcd677e8eefb19bd4d9 Mon Sep 17 00:00:00 2001 From: JarneRenders Date: Tue, 4 Nov 2025 15:49:52 +0100 Subject: [PATCH 7/7] fix versions of dependencies --- easyconfigs/c/CasADi/CasADi-3.7.0-foss-2024a-MATLAB-2024a-r6.eb | 2 +- .../o/OpenSim/OpenSim-4.5.2-foss-2024a-MATLAB-2024a-r6.eb | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/easyconfigs/c/CasADi/CasADi-3.7.0-foss-2024a-MATLAB-2024a-r6.eb b/easyconfigs/c/CasADi/CasADi-3.7.0-foss-2024a-MATLAB-2024a-r6.eb index 23a2faff..0765e948 100644 --- a/easyconfigs/c/CasADi/CasADi-3.7.0-foss-2024a-MATLAB-2024a-r6.eb +++ b/easyconfigs/c/CasADi/CasADi-3.7.0-foss-2024a-MATLAB-2024a-r6.eb @@ -16,7 +16,7 @@ checksums = ['946b1e5d4360715d5972ac4fcbc0e5375f934f412a670b402359ee2e1ea7bb3a'] builddependencies = [ ('CMake', '3.29.3'), - ('SWIG', '20180415', '-with-matlab'), + ('SWIG', '20180415', '-MATLAB'), ] dependencies = [ diff --git a/easyconfigs/o/OpenSim/OpenSim-4.5.2-foss-2024a-MATLAB-2024a-r6.eb b/easyconfigs/o/OpenSim/OpenSim-4.5.2-foss-2024a-MATLAB-2024a-r6.eb index 003d8ba6..a18e7270 100644 --- a/easyconfigs/o/OpenSim/OpenSim-4.5.2-foss-2024a-MATLAB-2024a-r6.eb +++ b/easyconfigs/o/OpenSim/OpenSim-4.5.2-foss-2024a-MATLAB-2024a-r6.eb @@ -31,7 +31,7 @@ dependencies = [ ('EZC3D', '1.6.0'), ('MATLAB', '2024a-r6', '', SYSTEM), ('Simbody', '3.8'), - ('CasADi', '3.7.0', '-with-matlab'), + ('CasADi', '3.7.0', '-MATLAB-2024a-r6'), ('ColPack', '20180108'), ('Eigen', '3.4.0'), ('ADOL-C', '2.7.2'),