Skip to content

Commit

Permalink
adding easyconfigs: FreeCAD-1.0.0pre-foss-2023b.eb with deps
Browse files Browse the repository at this point in the history
FreeCAD can be built against Qt6, but there is no official release yet.

with deps:
build-1.0.3-GCCcore-13.2.0.eb
Coin-4.0.2-GCC-13.2.0.eb
FreeCAD-1.0.0pre-foss-2023b.eb
FreeImage-3.18.0-GCCcore-13.2.0.eb
med-5.0.0-foss-2023b.eb
occt-7.8.1-GCCcore-13.2.0.eb
PySide6-6.6.2-GCCcore-13.2.0.eb
pivy-0.6.9.a0-GCC-13.2.0.eb
Quarter-1.2.1-GCC-13.2.0.eb
Shiboken6-6.6.2-GCCcore-13.2.0.eb
SoQt-1.6.2-GCC-13.2.0.eb
tbb-2021.13.0-GCCcore-13.2.0.eb

and patches:
med-5.0.0-hdf5-1.14-compat.patch
occt-OpenCASCADEConfig-cmake.patch
pivy-0.6.9.a0-coin-includes.patch
pivy-0.6.9.a0-python-sitearch.patch
pivy-0.6.9.a0-swigify.patch

add FreeCAD-1.0.0pre-foss-2023b.eb, dont use git checkout

fixup pivy

bugfix pivy
  • Loading branch information
Louwrensth committed Sep 14, 2024
1 parent d9a539b commit c1d6774
Show file tree
Hide file tree
Showing 17 changed files with 1,096 additions and 0 deletions.
36 changes: 36 additions & 0 deletions easybuild/easyconfigs/b/build/build-1.0.3-GCCcore-13.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
easyblock = 'PythonBundle'

name = 'build'
version = '1.0.3'

homepage = 'https://github.com/pypa/build'
description = """A simple, correct Python build frontend."""

toolchain = {'name': 'GCCcore', 'version': '13.2.0'}

builddependencies = [('binutils', '2.40')]

dependencies = [
('Python', '3.11.5'),
]

use_pip = True
sanity_pip_check = True

exts_list = [
('packaging', '23.2', {
'checksums': ['048fb0e9405036518eaaf48a55953c750c11e1a1b68e0dd1a9d62ed0c092cfc5'],
}),
('pyproject_hooks', '1.0.0', {
'checksums': ['f271b298b97f5955d53fb12b72c1fb1948c22c1a6b70b315c54cedaca0264ef5'],
}),
(name, version, {
'checksums': ['538aab1b64f9828977f84bc63ae570b060a8ed1be419e7870b8b4fc5e6ea553b'],
}),
]

sanity_check_commands = [
"python3 -m build -V",
]

moduleclass = 'devel'
35 changes: 35 additions & 0 deletions easybuild/easyconfigs/c/Coin/Coin-4.0.2-GCC-13.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
easyblock = 'CMakeMake'

name = 'Coin'
version = '4.0.2'

homepage = 'https://coin3d.github.io'
description = """Coin is an OpenGL-based, 3D graphics library that has its roots in the
Open Inventor 2.1 API, which Coin still is compatible with."""

toolchain = {'name': 'GCC', 'version': '13.2.0'}

source_urls = ["https://github.com/coin3d/%(namelower)s/archive/refs/tags/"]
sources = ["v%(version)s.tar.gz"]
checksums = ['fab19ccdb5f199dae5543036738076a957a3097589b473ef496696c24eeac3d2']

# Boost is a header-only dependency
builddependencies = [
('Boost', '1.83.0'),
('CMake', '3.27.6'),
]

dependencies = [
('X11', '20231019'),
('Mesa', '23.1.9'),
('libGLU', '9.0.3'),
]

configopts = "-DCOIN_BUILD_TESTS=OFF"

sanity_check_paths = {
'files': ['lib/libCoin.%s' % SHLIB_EXT],
'dirs': ['lib/pkgconfig']
}

moduleclass = 'vis'
119 changes: 119 additions & 0 deletions easybuild/easyconfigs/f/FreeCAD/FreeCAD-1.0.0pre-foss-2023b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,119 @@
easyblock = 'CMakeNinja'

name = 'FreeCAD'
version = '1.0.0pre'

# FreeCAD main can be built against Qt6, no official release yet
# https://github.com/FreeCAD/FreeCAD/issues/13303#issuecomment-2039708088

homepage = 'https://github.com/FreeCAD/FreeCAD'
description = '''Your own 3D parametric modeler'''

toolchain = {'name': 'foss', 'version': '2023b'}

sources = [
{
'source_urls': ['https://github.com/FreeCAD/FreeCAD/archive'],
'download_filename': 'b05dc2da7373c4483a3b476a0e190c02b175e80a.tar.gz', # release/FreeCAD-1-0 branch
'filename': '%(name)s-%(version)s.tar.gz',
'extract_cmd': 'tar -xzf %s -C %(builddir)s --strip-components=1',
},
{
'source_urls': ['https://github.com/microsoft/GSL/archive'],
'download_filename': 'b39e7e4b0987859f5b19ff7686b149c916588658.tar.gz',
'filename': '%(name)s-%(version)s-GSL.tar.gz',
'extract_cmd': 'tar -xzf %s -C %(builddir)s/src/3rdParty/GSL --strip-components=1',
},
{
'source_urls': ['https://github.com/Ondsel-Development/OndselSolver/archive'],
'download_filename': '64e546fe807043d4cdc33be023e521ac0f6449e9.tar.gz',
'filename': '%(name)s-%(version)s-OndselSolver.tar.gz',
'extract_cmd': 'tar -xzf %s -C %(builddir)s/src/3rdParty/OndselSolver --strip-components=1',
},
{
'source_urls': ['https://github.com/google/googletest/archive'],
'download_filename': 'f8d7d77c06936315286eb55f8de22cd23c188571.tar.gz',
'filename': '%(name)s-%(version)s-googletest.tar.gz',
'extract_cmd': 'tar -xzf %s -C %(builddir)s/tests/lib --strip-components=1',
},
]

checksums = [
{'FreeCAD-0.22.0pre.tar.gz': 'ef119bf4b0c9b760dccae69a6d74890a2392c0b728c5780de01741bed1cef2b4'},
{'FreeCAD-0.22.0pre-GSL.tar.gz': 'dcd20c4eafbd5b9cfa9078a638546724390f661834dd3816622ca9875659907e'},
{'FreeCAD-0.22.0pre-OndselSolver.tar.gz': '66c60f09f017d107cd50e92a9e54bd235655cfbc38dd109e91bbbeb8a31634ad'},
{'FreeCAD-0.22.0pre-googletest.tar.gz': '7ff5db23de232a39cbb5c9f5143c355885e30ac596161a6b9fc50c4538bfbf01'},
]

builddependencies = [
('CMake', '3.27.6'),
('Doxygen', '1.9.8'),
('Eigen', '3.4.0'),
('Ninja', '1.11.1'),
]

dependencies = [
('fmt', '10.2.0'),
('yaml-cpp', '0.8.0'),
('Xerces-C++', '3.2.5'),
('Boost', '1.83.0'),
('Python', '3.11.5'),
('Boost.Python', '1.83.0'),
('Qt6', '6.6.3'),
('PySide6', '6.6.2'),
('Shiboken6', '6.6.2'),
('X11', '20231019'),
('VTK', '9.3.0'),
('matplotlib', '3.8.2'),
('med', '5.0.0'),
('pivy', '0.6.9.a0'),
('Mesa', '23.1.9'),
('libGLU', '9.0.3'),
('Coin', '4.0.2'),
('Quarter', '1.2.1'),
('occt', '7.8.1'),
]

build_type = 'RelWithDebInfo'

configopts = ''
configopts += ' -DENABLE_DEVELOPER_TESTS=NO'
configopts += ' -DBUILD_TEST=NO'
configopts += ' -DBUILD_FLAT_MESH=YES'
configopts += ' -DBUILD_DESIGNER_PLUGIN=YES'
configopts += ' -DBUILD_DRAWING=YES'
configopts += ' -DFREECAD_QT_MAJOR_VERSION=6'
configopts += ' -DFREECAD_USE_QT_FILEDIALOG=YES'
configopts += ' -DFREECAD_USE_PYBIND11=YES'
configopts += ' -DFREECAD_USE_EXTERNAL_PIVY=YES'
configopts += ' -DFREECAD_USE_OCC_VARIANT="Official Version"'
configopts += ' -DINSTALL_TO_SITEPACKAGES=NO'
configopts += ' -DDESIGNER_PLUGIN_LOCATION=%(installdir)s/plugins'
configopts += ' -Wno-dev'
configopts += ' -Wdeprecated-declarations'

sanity_check_paths = {
'files': [
'bin/FreeCADCmd',
'bin/FreeCAD',
'lib64/Points.so',
'lib64/libSMESH.so',
'lib64/FreeCAD.so',
],
'dirs': ['bin', 'share/pkgconfig', 'lib64'],
}

postinstallcmds = [
'ln -s FreeCAD %(installdir)s/bin/freecad',
'ln -s FreeCADCmd %(installdir)s/bin/freecadcmd',
]

modextrapaths = {
'QT_PLUGIN_PATH': 'plugins',
}

sanity_check_commands = [
'FreeCAD -c "print(2+2)"',
]

moduleclass = 'vis'
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
easyblock = 'ConfigureMake'

name = 'FreeImage'
version = '3.18.0'

homepage = 'http://freeimage.sourceforge.net'
description = """FreeImage is an Open Source library project for developers who would like to support popular graphics
image formats like PNG, BMP, JPEG, TIFF and others as needed by today's multimedia applications. FreeImage is easy to
use, fast, multithreading safe."""

toolchain = {'name': 'GCCcore', 'version': '13.2.0'}
toolchainopts = {'cstd': 'c++14'}

source_urls = [SOURCEFORGE_SOURCE]
sources = ['%(name)s3180.zip']
patches = ['%(name)s-%(version)s-fix-makefile.patch']
checksums = [
'f41379682f9ada94ea7b34fe86bf9ee00935a3147be41b6569c9605a53e438fd', # FreeImage3180.zip
'3eaa1eb9562ccfd0cb95a37879bb7e3e8c745166596d75af529478181ef006a0', # %(name)s-%(version)s-fix-makefile.patch
]

builddependencies = [('binutils', '2.40')]

dependencies = [('zlib', '1.2.13')]

skipsteps = ['configure']

buildopts = ['', '-f Makefile.fip']

installopts = [
"INCDIR=%(installdir)s/include INSTALLDIR=%(installdir)s/lib",
"-f Makefile.fip INCDIR=%(installdir)s/include INSTALLDIR=%(installdir)s/lib",
]

_incs = ['include/FreeImage%s.h' % x for x in ['', 'Plus']]
_libs = ['lib/libfreeimage%s.%s' % (x, y) for x in ['', 'plus'] for y in ['a', SHLIB_EXT]]

sanity_check_paths = {
'files': _incs + _libs,
'dirs': [],
}

moduleclass = 'vis'
54 changes: 54 additions & 0 deletions easybuild/easyconfigs/m/med/med-5.0.0-foss-2023b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
easyblock = 'CMakeNinja'

name = 'med'
version = '5.0.0'

homepage = 'https://www.salome-platform.org'
description = '''MED: interoperable format for data interchange between mesh based solvers'''

toolchain = {'name': 'foss', 'version': '2023b'}

source_urls = ['https://files.salome-platform.org/Salome/medfile/']
sources = [SOURCELOWER_TAR_BZ2]
patches = ['med-5.0.0-hdf5-1.14-compat.patch']
checksums = [
{'med-5.0.0.tar.bz2': '267e76d0c67ec51c10e3199484ec1508baa8d5ed845c628adf660529dce7a3d4'},
{'med-5.0.0-hdf5-1.14-compat.patch': '91937b08316fc5acca0709031341bb2a6fea04c0bcbaab1274be554c4723b514'},
]

builddependencies = [
('CMake', '3.27.6'),
('Ninja', '1.11.1'),
]

dependencies = [
('HDF5', '1.14.3'),
('Python', '3.11.5'),
('SWIG', '4.1.1'),
('Tk', '8.6.13'),
]

configopts = ''
configopts += ' -DMEDFILE_BUILD_PYTHON=ON'
configopts += ' -DMEDFILE_BUILD_TESTS=OFF'
configopts += ' -DMEDFILE_INSTALL_DOC=OFF'

sanity_check_paths = {
'files': [
'lib/libmed.%s' % SHLIB_EXT,
'lib/libmedC.%s' % SHLIB_EXT,
'lib/python%(pyshortver)s/site-packages/med/medfile.py',
'lib/python%%(pyshortver)s/site-packages/med/_medmesh.%s' % SHLIB_EXT,
'include/med.h',
'include/medfile.h',
'include/medmesh.h',
],
'dirs': [
'bin',
'include',
'share/cmake/medfile-%(version)s',
'lib/python%(pyshortver)s/site-packages',
],
}

moduleclass = 'tools'
Loading

0 comments on commit c1d6774

Please sign in to comment.