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 new file mode 100644 index 00000000..0765e948 --- /dev/null +++ b/easyconfigs/c/CasADi/CasADi-3.7.0-foss-2024a-MATLAB-2024a-r6.eb @@ -0,0 +1,34 @@ +easyblock = 'CMakeMake' + +name = 'CasADi' +version = '3.7.0' +versionsuffix = '-MATLAB-2024a-r6' + +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', '-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-MATLAB-2024a-r6.eb b/easyconfigs/o/OpenSim/OpenSim-4.5.2-foss-2024a-MATLAB-2024a-r6.eb new file mode 100644 index 00000000..a18e7270 --- /dev/null +++ b/easyconfigs/o/OpenSim/OpenSim-4.5.2-foss-2024a-MATLAB-2024a-r6.eb @@ -0,0 +1,66 @@ +easyblock = 'CMakeMake' + +name = 'OpenSim' +version = '4.5.2' +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""" + +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', '-MATLAB-2024a-r6'), + ('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-GCCcore-13.3.0-MATLAB.eb b/easyconfigs/s/SWIG/SWIG-20180415-GCCcore-13.3.0-MATLAB.eb new file mode 100644 index 00000000..c7ecc6a7 --- /dev/null +++ b/easyconfigs/s/SWIG/SWIG-20180415-GCCcore-13.3.0-MATLAB.eb @@ -0,0 +1,39 @@ +name = 'SWIG' +version = '20180415' +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. +""" + +toolchain = {'name': 'GCCcore', '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 = [ + ('binutils', '2.42'), + ('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'