From 5f656fb0ffa1a1258d440b71f5954c5f65a9dcb7 Mon Sep 17 00:00:00 2001 From: Dugan Witherick Date: Thu, 25 Jul 2024 12:04:55 +0100 Subject: [PATCH] adding easyconfigs: FOX-Toolkit-1.6.58-GCCcore-11.3.0.eb, SUMO-1.20.0-foss-2022a.eb and patches: SUMO-1.20.0_fix-link-flags.patch --- .../FOX-Toolkit-1.6.58-GCCcore-11.3.0.eb | 44 ++++++++++++++ .../s/SUMO/SUMO-1.20.0-foss-2022a.eb | 59 +++++++++++++++++++ .../s/SUMO/SUMO-1.20.0_fix-link-flags.patch | 18 ++++++ 3 files changed, 121 insertions(+) create mode 100644 easybuild/easyconfigs/f/FOX-Toolkit/FOX-Toolkit-1.6.58-GCCcore-11.3.0.eb create mode 100644 easybuild/easyconfigs/s/SUMO/SUMO-1.20.0-foss-2022a.eb create mode 100644 easybuild/easyconfigs/s/SUMO/SUMO-1.20.0_fix-link-flags.patch diff --git a/easybuild/easyconfigs/f/FOX-Toolkit/FOX-Toolkit-1.6.58-GCCcore-11.3.0.eb b/easybuild/easyconfigs/f/FOX-Toolkit/FOX-Toolkit-1.6.58-GCCcore-11.3.0.eb new file mode 100644 index 00000000000..10b5f48d214 --- /dev/null +++ b/easybuild/easyconfigs/f/FOX-Toolkit/FOX-Toolkit-1.6.58-GCCcore-11.3.0.eb @@ -0,0 +1,44 @@ +easyblock = 'ConfigureMake' + +name = 'FOX-Toolkit' +version = '1.6.58' + +homepage = 'https://www.fox-toolkit.org/' +description = """FOX is a C++ based Toolkit for developing Graphical User Interfaces easily and +effectively. It offers a wide, and growing, collection of Controls, and +provides state of the art facilities such as drag and drop, selection, as well +as OpenGL widgets for 3D graphical manipulation. FOX also implements icons, +images, and user-convenience features such as status line help, and tooltips.""" + +toolchain = {'name': 'GCCcore', 'version': '11.3.0'} + +source_urls = ['http://fox-toolkit.org/ftp'] +sources = ['fox-%(version)s.tar.gz'] +checksums = ['5a734b84d76d2f8e334e26ff85dd3950d3fedf53057a4d4b19fd4a712c8d5b81'] + +builddependencies = [ + ('binutils', '2.38'), + ('Autotools', '20220317'), + ('pkg-config', '0.29.2'), +] + +dependencies = [ + ('libjpeg-turbo', '2.1.3'), + ('libpng', '1.6.37'), + ('LibTIFF', '4.3.0'), + ('libGLU', '9.0.2'), + ('X11', '20220504'), +] + +preconfigopts = """sed -i '/^CXXFLAGS=""$/d;/LDFLAGS="-s ${LDFLAGS}"/d' configure.ac && """ +preconfigopts += "autoreconf -f -i && " + +configopts = '--enable-release' + +sanity_check_paths = { + 'files': ['lib/lib%s-%%(version_major_minor)s.%s' % (n, x) for n in ['CHART', 'FOX'] for x in ['a', SHLIB_EXT]] + + ['bin/fox-config'], + 'dirs': ['include'] +} + +moduleclass = 'lib' diff --git a/easybuild/easyconfigs/s/SUMO/SUMO-1.20.0-foss-2022a.eb b/easybuild/easyconfigs/s/SUMO/SUMO-1.20.0-foss-2022a.eb new file mode 100644 index 00000000000..09f523817b0 --- /dev/null +++ b/easybuild/easyconfigs/s/SUMO/SUMO-1.20.0-foss-2022a.eb @@ -0,0 +1,59 @@ +easyblock = 'CMakeMake' + +name = 'SUMO' +version = '1.20.0' + +homepage = 'https://www.eclipse.org/sumo/' +description = """Simulation of Urban MObility" (SUMO) is an open source, highly portable, +microscopic and continuous traffic simulation package designed to handle large +networks. It allows for intermodal simulation including pedestrians and comes +with a large set of tools for scenario creation.""" + +toolchain = {'name': 'foss', 'version': '2022a'} + +github_account = 'eclipse' +source_urls = [GITHUB_LOWER_SOURCE] +sources = ['v%s.tar.gz' % version.replace('.', '_')] +patches = ['SUMO-1.20.0_fix-link-flags.patch'] +checksums = [ + {'v1_20_0.tar.gz': 'fa4beb16fbf783582fc722d8c1f4820bd399cba825d6c12cade6e499d5ff4d3f'}, + {'SUMO-1.20.0_fix-link-flags.patch': '9e4583b154c9fc154b8c088a78537d1501338b7b9426e50753342bb2ba8e63d2'}, +] + +builddependencies = [ + ('CMake', '3.23.1'), + ('SWIG', '4.0.2'), + ('Java', '11', '', SYSTEM), +] + +dependencies = [ + ('Python', '3.10.4'), + ('Xerces-C++', '3.2.4'), + ('FOX-Toolkit', '1.6.58'), + ('GL2PS', '1.4.2'), + ('GDAL', '3.5.0'), + ('PROJ', '9.0.0'), +] + +local_sumo_home = 'share/sumo' +local_pythonpath = 'lib/python%(pyshortver)s/site-packages' +local_bins = ['activitygen', 'dfrouter', 'duarouter', 'emissionsDrivingCycle', 'emissionsMap', 'jtrrouter', + 'marouter', 'netconvert', 'netgenerate', 'od2trips', 'polyconvert', 'sumo', 'sumo-gui'] + +sanity_check_paths = { + 'files': ['bin/%s' % x for x in local_bins] + + ['%s/libsumo/_libsumo.%s' % (local_pythonpath, SHLIB_EXT)], + 'dirs': [local_sumo_home, local_pythonpath], +} + +sanity_check_commands = [ + 'sumo --help', + "python -c 'import libsumo'", +] + +modextrapaths = { + 'PYTHONPATH': 'lib/python%(pyshortver)s/site-packages', + 'SUMO_HOME': 'share/sumo', +} + +moduleclass = 'data' diff --git a/easybuild/easyconfigs/s/SUMO/SUMO-1.20.0_fix-link-flags.patch b/easybuild/easyconfigs/s/SUMO/SUMO-1.20.0_fix-link-flags.patch new file mode 100644 index 00000000000..553b16f599f --- /dev/null +++ b/easybuild/easyconfigs/s/SUMO/SUMO-1.20.0_fix-link-flags.patch @@ -0,0 +1,18 @@ +Remove duplicate linker flags from fox-config +Patch based on SUMO-1.0.0_fix-link-flags.patch author: Alex Domingo (Vrije Universiteit Brussel) +author: Dugan Witherick (Imperial College London) + +diff -Nru sumo-1.20.0.orig/build_config/cmake_modules/FindFOX.cmake sumo-1.20.0/build_config/cmake_modules/FindFOX.cmake +--- sumo-1.20.0.orig/build_config/cmake_modules/FindFOX.cmake 2024-07-17 09:53:20.021150000 +0100 ++++ sumo-1.20.0/build_config/cmake_modules/FindFOX.cmake 2024-07-17 09:55:22.669340000 +0100 +@@ -20,6 +20,10 @@ + + # if fox-config was executed successfully, fox was found + if(FOX_LIBRARY AND FOX_CXX_FLAGS) ++ # remove duplicate link flags ++ separate_arguments(FOX_LIBRARY) ++ list(REMOVE_DUPLICATES FOX_LIBRARY) ++ string(REPLACE ";" " " FOX_LIBRARY "${FOX_LIBRARY}") + SET(FOX_FOUND TRUE) + else() + # In Windows system, find the fox directory using as hint the environment variable "FOX_INCLUDE_DIR"