aboutsummaryrefslogtreecommitdiff
path: root/subprojects
diff options
context:
space:
mode:
authorThomas White <taw@physics.org>2021-09-03 16:40:47 +0200
committerThomas White <taw@physics.org>2021-09-03 17:05:10 +0200
commit4f05eadcb6f94b24099e04b1bdfb2912be10c446 (patch)
treea0bd070d590fcea5ebb93ca799e97a08364cfdb8 /subprojects
parent229e384a98b3589734095b8bc8e48ad8118e7d2a (diff)
Meson: Add libccp4c as a wrapped subproject
Diffstat (limited to 'subprojects')
-rw-r--r--subprojects/libccp4c.wrap10
-rw-r--r--subprojects/packagefiles/libccp4c/meson.build97
2 files changed, 107 insertions, 0 deletions
diff --git a/subprojects/libccp4c.wrap b/subprojects/libccp4c.wrap
new file mode 100644
index 00000000..21e89f3b
--- /dev/null
+++ b/subprojects/libccp4c.wrap
@@ -0,0 +1,10 @@
+[wrap-file]
+directory = libccp4-6.5.1
+source_url = ftp://ftp.ccp4.ac.uk/opensource/libccp4-6.5.1.tar.gz
+source_fallback_url = https://www.desy.de/~twhite/crystfel/libccp4-6.5.1.tar.gz
+source_filename = libccp4-6.5.1.tar.gz
+source_hash = 280b473d950cdf8837ef66147ec581104298b892399bd856f13b096f2395dbe5
+patch_directory = libccp4c
+
+[provide]
+libccp4c = libccp4c_dep
diff --git a/subprojects/packagefiles/libccp4c/meson.build b/subprojects/packagefiles/libccp4c/meson.build
new file mode 100644
index 00000000..b7b976ba
--- /dev/null
+++ b/subprojects/packagefiles/libccp4c/meson.build
@@ -0,0 +1,97 @@
+# Meson file for libccp4c (CCP4 core libraries, C part only)
+project('libccp4c', ['c'],
+ version: '6.5.1',
+ meson_version: '>=0.49.0',
+ license: 'LGPL3')
+
+
+cc = meson.get_compiler('c')
+mdep = cc.find_library('m', required: true)
+
+
+# Note that the source code assumes that datadir='share'.
+# If it is not, programs using the library will not be able
+# to find 'environ.def'.
+datadir = get_option('datadir') / 'ccp4'
+
+
+add_project_arguments('-DPACKAGE_ROOT="' + get_option('prefix') + '"',
+ language: 'c')
+
+
+# C library
+libccp4c = library('ccp4c', ['ccp4/ccp4_array.c',
+ 'ccp4/cmap_accessor.c',
+ 'ccp4/cmap_open.c',
+ 'ccp4/csymlib.c',
+ 'ccp4/pack_c.c',
+ 'ccp4/ccp4_general.c',
+ 'ccp4/cmap_close.c',
+ 'ccp4/cmap_skew.c',
+ 'ccp4/cvecmat.c',
+ 'ccp4/ccp4_parser.c',
+ 'ccp4/cmap_data.c',
+ 'ccp4/cmap_stats.c',
+ 'ccp4/library_err.c',
+ 'ccp4/ccp4_program.c',
+ 'ccp4/cmap_header.c',
+ 'ccp4/cmap_symop.c',
+ 'ccp4/library_file.c',
+ 'ccp4/ccp4_unitcell.c',
+ 'ccp4/cmap_labels.c',
+ 'ccp4/cmtzlib.c',
+ 'ccp4/library_utils.c'],
+ dependencies: [mdep],
+ install: true)
+
+# CCP4 headers are included with prefix: <ccp4/header.h>
+incdir = include_directories('.')
+
+install_headers(['ccp4/ccp4_file_err.h',
+ 'ccp4/ccp4_program.h',
+ 'ccp4/ccp4_unitcell.h',
+ 'ccp4/cmap_errno.h',
+ 'ccp4/cmap_stats.h',
+ 'ccp4/csymlib.h',
+ 'ccp4/library_file.h',
+ 'ccp4/ccp4_fortran.h',
+ 'ccp4/ccp4_spg.h',
+ 'ccp4/ccp4_utils.h',
+ 'ccp4/cmap_header.h',
+ 'ccp4/cmaplib.h',
+ 'ccp4/cvecmat.h',
+ 'ccp4/mtzdata.h',
+ 'ccp4/ccp4_array.h',
+ 'ccp4/ccp4_general.h',
+ 'ccp4/ccp4_sysdep.h',
+ 'ccp4/ccp4_vars.h',
+ 'ccp4/cmap_labels.h',
+ 'ccp4/cmaplib_f.h',
+ 'ccp4/overview.h',
+ 'ccp4/ccp4_errno.h',
+ 'ccp4/ccp4_parser.h',
+ 'ccp4/ccp4_types.h',
+ 'ccp4/cmap_data.h',
+ 'ccp4/cmap_skew.h',
+ 'ccp4/cmtzlib.h',
+ 'ccp4/pack_c.h'],
+ subdir: 'ccp4')
+
+
+# Data files
+install_data(['data/atomsf_electron.lib',
+ 'data/atomsf.lib',
+ 'data/atomsf_neutron.lib',
+ 'data/syminfo.lib',
+ 'data/symop.lib'],
+ install_dir: datadir)
+
+
+# pkg-config file
+pkg = import('pkgconfig')
+pkg.generate(libccp4c,
+ filebase: 'libccp4c',
+ description: 'CCP4 core C libraries')
+
+libccp4c_dep = declare_dependency(include_directories: incdir,
+ link_with: libccp4c)