aboutsummaryrefslogtreecommitdiff
path: root/src/libstore/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstore/meson.build')
-rw-r--r--src/libstore/meson.build188
1 files changed, 188 insertions, 0 deletions
diff --git a/src/libstore/meson.build b/src/libstore/meson.build
new file mode 100644
index 000000000..33e475f70
--- /dev/null
+++ b/src/libstore/meson.build
@@ -0,0 +1,188 @@
+schema_sql_gen = gen_header.process('schema.sql')
+ca_specific_schema_gen = gen_header.process('ca-specific-schema.sql')
+
+libstore_sources = files(
+ 'binary-cache-store.cc',
+ 'build-result.cc',
+ 'common-protocol.cc',
+ 'content-address.cc',
+ 'crypto.cc',
+ 'daemon.cc',
+ 'derivations.cc',
+ 'derived-path-map.cc',
+ 'derived-path.cc',
+ 'downstream-placeholder.cc',
+ 'dummy-store.cc',
+ 'export-import.cc',
+ 'filetransfer.cc',
+ 'gc.cc',
+ 'globals.cc',
+ 'http-binary-cache-store.cc',
+ 'legacy-ssh-store.cc',
+ 'local-binary-cache-store.cc',
+ 'local-fs-store.cc',
+ 'local-store.cc',
+ 'lock.cc',
+ 'log-store.cc',
+ 'machines.cc',
+ 'make-content-addressed.cc',
+ 'misc.cc',
+ 'names.cc',
+ 'nar-accessor.cc',
+ 'nar-info-disk-cache.cc',
+ 'nar-info.cc',
+ 'optimise-store.cc',
+ 'outputs-spec.cc',
+ 'parsed-derivations.cc',
+ 'path-info.cc',
+ 'path-references.cc',
+ 'path-with-outputs.cc',
+ 'path.cc',
+ 'pathlocks.cc',
+ 'profiles.cc',
+ 'realisation.cc',
+ 'remote-fs-accessor.cc',
+ 'remote-store.cc',
+ 's3-binary-cache-store.cc',
+ 'serve-protocol.cc',
+ 'sqlite.cc',
+ 'ssh-store.cc',
+ 'ssh.cc',
+ 'store-api.cc',
+ 'uds-remote-store.cc',
+ 'worker-protocol.cc',
+ 'build/derivation-goal.cc',
+ 'build/drv-output-substitution-goal.cc',
+ 'build/entry-points.cc',
+ 'build/goal.cc',
+ 'build/hook-instance.cc',
+ 'build/local-derivation-goal.cc',
+ 'build/personality.cc',
+ 'build/substitution-goal.cc',
+ 'build/worker.cc',
+ 'builtins/buildenv.cc',
+ 'builtins/fetchurl.cc',
+ 'builtins/unpack-channel.cc',
+)
+
+
+libstore_headers = files(
+ 'binary-cache-store.hh',
+ 'build/derivation-goal.hh',
+ 'build/drv-output-substitution-goal.hh',
+ 'build/goal.hh',
+ 'build/hook-instance.hh',
+ 'build/local-derivation-goal.hh',
+ 'build/personality.hh',
+ 'build/substitution-goal.hh',
+ 'build/worker.hh',
+ 'build-result.hh',
+ 'builtins/buildenv.hh',
+ 'builtins.hh',
+ 'common-protocol-impl.hh',
+ 'common-protocol.hh',
+ 'content-address.hh',
+ 'crypto.hh',
+ 'daemon.hh',
+ 'derivations.hh',
+ 'derived-path-map.hh',
+ 'derived-path.hh',
+ 'downstream-placeholder.hh',
+ 'filetransfer.hh',
+ 'fs-accessor.hh',
+ 'gc-store.hh',
+ 'globals.hh',
+ 'indirect-root-store.hh',
+ 'length-prefixed-protocol-helper.hh',
+ 'local-fs-store.hh',
+ 'local-store.hh',
+ 'lock.hh',
+ 'log-store.hh',
+ 'machines.hh',
+ 'make-content-addressed.hh',
+ 'names.hh',
+ 'nar-accessor.hh',
+ 'nar-info-disk-cache.hh',
+ 'nar-info.hh',
+ 'outputs-spec.hh',
+ 'parsed-derivations.hh',
+ 'path-info.hh',
+ 'path-references.hh',
+ 'path-regex.hh',
+ 'path-with-outputs.hh',
+ 'path.hh',
+ 'pathlocks.hh',
+ 'profiles.hh',
+ 'realisation.hh',
+ 'remote-fs-accessor.hh',
+ 'remote-store-connection.hh',
+ 'remote-store.hh',
+ 's3-binary-cache-store.hh',
+ 's3.hh',
+ 'serve-protocol-impl.hh',
+ 'serve-protocol.hh',
+ 'sqlite.hh',
+ 'ssh-store-config.hh',
+ 'ssh.hh',
+ 'store-api.hh',
+ 'store-cast.hh',
+ 'uds-remote-store.hh',
+ 'worker-protocol-impl.hh',
+ 'worker-protocol.hh',
+)
+
+# These variables (aside from LSOF) are created pseudo-dynamically, near the beginning of
+# the top-level meson.build. Aside from prefix itself, each of these was
+# made into an absolute path by joining it with prefix, unless it was already
+# an absolute path (which is the default for store-dir, state-dir, and log-dir).
+cpp_str_defines = {
+ 'LSOF': lsof.full_path(),
+ 'NIX_PREFIX': prefix,
+ 'NIX_STORE_DIR': store_dir,
+ 'NIX_DATA_DIR': datadir,
+ 'NIX_STATE_DIR': state_dir,
+ 'NIX_LOG_DIR': log_dir,
+ 'NIX_CONF_DIR': sysconfdir,
+ 'NIX_BIN_DIR': bindir,
+ 'NIX_MAN_DIR': mandir,
+}
+
+cpp_args = []
+
+foreach name, value : cpp_str_defines
+ cpp_args += [
+ '-D' + name + '=' + '"' + value + '"'
+ ]
+endforeach
+
+libstore = library(
+ 'nixstore',
+ schema_sql_gen,
+ ca_specific_schema_gen,
+ libstore_sources,
+ dependencies : [
+ libarchive,
+ liblixutil, # Internal.
+ seccomp,
+ sqlite,
+ sodium,
+ seccomp,
+ curl,
+ openssl,
+ aws_sdk,
+ aws_s3,
+ aws_sdk_transfer,
+ ],
+ cpp_args : cpp_args,
+ install : true,
+ # FIXME(Qyriad): is this right?
+ install_rpath : libdir,
+)
+
+install_headers(libstore_headers, subdir : 'nix', preserve_path : true)
+
+# Used by libfetchers.
+liblixstore = declare_dependency(
+ include_directories : include_directories('.'),
+ link_with : libstore,
+)