Skip to content

Commit

Permalink
Merge pull request easybuilders#19104 from boegel/20231029162717_new_…
Browse files Browse the repository at this point in the history
…pr_COLMAP38

{lib,vis}[foss/2022b] COLMAP v3.8, Ceres-Solver v2.2.0, FLANN v1.9.2, glog v0.6.0, glew v2.2.0, gflags v2.2.2
  • Loading branch information
smoors authored Oct 11, 2024
2 parents 8dcb68f + 7f27f1b commit 0619772
Show file tree
Hide file tree
Showing 6 changed files with 230 additions and 0 deletions.
45 changes: 45 additions & 0 deletions easybuild/easyconfigs/c/COLMAP/COLMAP-3.8-foss-2022b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
easyblock = 'CMakeNinja'

name = 'COLMAP'
version = '3.8'

homepage = 'https://colmap.github.io'
description = """COLMAP is a general-purpose Structure-from-Motion (SfM) and Multi-View Stereo (MVS) pipeline
with a graphical and command-line interface"""

source_urls = ['https://github.com/colmap/colmap/archive/']
sources = ['%(version)s.tar.gz']
checksums = ['02288f8f61692fe38049d65608ed832b31246e7792692376afb712fa4cef8775']

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

builddependencies = [
('CMake', '3.24.3'),
('Ninja', '1.11.1'),
('Eigen', '3.4.0'),
('googletest', '1.12.1'),
]

dependencies = [
('Boost', '1.81.0'),
('Qt5', '5.15.7'),
('FLANN', '1.9.2'),
('FreeImage', '3.18.0'),
('METIS', '5.1.0'),
('glog', '0.6.0'),
('SQLite', '3.39.4'),
('glew', '2.2.0', '-egl'),
('CGAL', '5.5.2'),
('Ceres-Solver', '2.2.0'),
]

configopts = "-DCMAKE_CXX_STANDARD=17"

sanity_check_paths = {
'files': ['bin/colmap', 'lib/colmap/libcolmap.a', 'lib/colmap/libpba.a', 'lib/colmap/libvlfeat.a'],
'dirs': ['include/colmap'],
}

sanity_check_commands = ["colmap -h"]

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

name = 'Ceres-Solver'
version = '2.2.0'

homepage = 'http://ceres-solver.org'
description = """Ceres Solver is an open source C++ library for modeling and solving large, complicated optimization
problems"""

source_urls = ['http://ceres-solver.org/']
sources = ['ceres-solver-%(version)s.tar.gz']
checksums = ['48b2302a7986ece172898477c3bcd6deb8fb5cf19b3327bc49969aad4cede82d']

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

builddependencies = [
('CMake', '3.24.3'),
('Eigen', '3.4.0'),
]

dependencies = [
('glog', '0.6.0'),
('gflags', '2.2.2'),
('SuiteSparse', '5.13.0', '-METIS-5.1.0'),
]

sanity_check_paths = {
'files': ['lib/libceres.a'],
'dirs': ['include/ceres', 'lib/cmake/Ceres'],
}

moduleclass = 'lib'
42 changes: 42 additions & 0 deletions easybuild/easyconfigs/f/FLANN/FLANN-1.9.2-foss-2022b.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Contribution from the NIHR Biomedical Research Centre
# Guy's and St Thomas' NHS Foundation Trust and King's College London
# uploaded by J. Sassmannshausen

easyblock = 'CMakeMake'

name = 'FLANN'
version = '1.9.2'

homepage = 'https://github.com/mariusmuja/flann/'
description = "FLANN is a library for performing fast approximate nearest neighbor searches in high dimensional spaces."

toolchain = {'name': 'foss', 'version': '2022b'}
toolchainopts = {'openmp': True}

source_urls = ['https://github.com/mariusmuja/flann/archive/']
sources = ['%(version)s.tar.gz']
checksums = ['e26829bb0017f317d9cc45ab83ddcb8b16d75ada1ae07157006c1e7d601c8824']

builddependencies = [
('CMake', '3.24.3'),
]

dependencies = [
('Python', '3.10.8'),
('SciPy-bundle', '2023.02'),
('lz4', '1.9.4'),
]

configopts = "-DUSE_OPENMP=ON -DUSE_MPI=ON -DBUILD_PYTHON_BINDINGS=ON -DBUILD_C_BINDINGS=ON"

modextrapaths = {'PYTHONPATH': ['share/flann/python']}

sanity_check_paths = {
'files': ['lib/libflann_cpp_s.a', 'lib/libflann_s.a',
'lib/libflann_cpp.%s' % SHLIB_EXT, 'lib/libflann.%s' % SHLIB_EXT],
'dirs': ['include/flann', 'lib/pkgconfig', 'share/flann/python'],
}

sanity_check_commands = ["python -c 'import pyflann'"]

moduleclass = 'lib'
35 changes: 35 additions & 0 deletions easybuild/easyconfigs/g/gflags/gflags-2.2.2-GCCcore-12.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
easyblock = 'CMakeMake'

name = 'gflags'
version = '2.2.2'

homepage = 'https://github.com/gflags/gflags'
description = """
The gflags package contains a C++ library that implements commandline flags
processing. It includes built-in support for standard types such as string
and the ability to define flags in the source file in which they are used.
"""

toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
toolchainopts = {'pic': True}

source_urls = ['https://github.com/gflags/gflags/archive/']
sources = ['v%(version)s.tar.gz']
checksums = ['34af2f15cf7367513b352bdcd2493ab14ce43692d2dcd9dfc499492966c64dcf']

builddependencies = [
('binutils', '2.39'),
('CMake', '3.24.3'),
]

configopts = '-DBUILD_SHARED_LIBS=ON -DBUILD_STATIC_LIBS=ON'

sanity_check_paths = {
'files': ['bin/gflags_completions.sh'] +
['lib/%s' % x for x in ['libgflags.%s' % SHLIB_EXT, 'libgflags_nothreads.%s' % SHLIB_EXT,
'libgflags.a', 'libgflags_nothreads.a']] +
['include/gflags/gflags_completions.h'],
'dirs': [],
}

moduleclass = 'devel'
43 changes: 43 additions & 0 deletions easybuild/easyconfigs/g/glew/glew-2.2.0-GCCcore-12.2.0-egl.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
easyblock = 'ConfigureMake'
versionsuffix = '-egl'
# available: -glx, -osmesa, -egl
# GLEW does support GLX (onscreen or requiring VirtualGL), EGL (technically can do both onscreen and
# offscreen), and OSMESA (offscreen software only).

name = 'glew'
version = '2.2.0'

homepage = 'https://github.com/nigels-com/glew'
description = """The OpenGL Extension Wrangler Library (GLEW) is a cross-platform open-source
C/C++ extension loading library. GLEW provides efficient run-time mechanisms
for determining which OpenGL extensions are supported on the target platform."""

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

source_urls = ['https://github.com/nigels-com/glew/releases/download/%(name)s-%(version)s/']
sources = ['%(name)s-%(version)s.tgz']
checksums = ['d4fc82893cfb00109578d0a1a2337fb8ca335b3ceccf97b97e5cc7f08e4353e1']

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

dependencies = [
('Mesa', '22.2.4'),
('X11', '20221110'),
]

local_system = 'SYSTEM=linux`echo %(versionsuffix)s|sed -e "s/-glx//g"`'
buildopts = local_system

skipsteps = ['configure']

preinstallopts = 'GLEW_PREFIX=%(installdir)s GLEW_DEST=%(installdir)s '
install_cmd = 'make install.all ' + local_system

sanity_check_paths = {
'files': ['lib/libGLEW.a', 'lib/libGLEW.%s' % SHLIB_EXT] +
['bin/glewinfo', 'bin/visualinfo'] +
['include/GL/%s.h' % h for h in ['glew', 'glxew', 'wglew']],
'dirs': []
}

moduleclass = 'devel'
33 changes: 33 additions & 0 deletions easybuild/easyconfigs/g/glog/glog-0.6.0-GCCcore-12.2.0.eb
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
easyblock = 'CMakeMake'

name = 'glog'
version = '0.6.0'

homepage = 'https://github.com/google/glog'
description = "A C++ implementation of the Google logging module."

toolchain = {'name': 'GCCcore', 'version': '12.2.0'}
toolchainopts = {'cstd': 'c++11'}

source_urls = ['https://github.com/google/glog/archive/']
sources = ['v%(version)s.tar.gz']
checksums = ['8a83bf982f37bb70825df71a9709fa90ea9f4447fb3c099e1d720a439d88bad6']

builddependencies = [
('binutils', '2.39'),
('CMake', '3.24.3'),
]

dependencies = [
('gflags', '2.2.2'),
('libunwind', '1.6.2'),
]

configopts = '-DBUILD_SHARED_LIBS=ON '

sanity_check_paths = {
'files': ['include/glog/logging.h', 'include/glog/raw_logging.h', 'lib/libglog.%s' % SHLIB_EXT],
'dirs': [],
}

moduleclass = 'devel'

0 comments on commit 0619772

Please sign in to comment.