about summary refs log tree commit diff
path: root/third_party/nix/src/libstore/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/nix/src/libstore/meson.build')
-rw-r--r--third_party/nix/src/libstore/meson.build153
1 files changed, 153 insertions, 0 deletions
diff --git a/third_party/nix/src/libstore/meson.build b/third_party/nix/src/libstore/meson.build
new file mode 100644
index 000000000000..47f6ddf25970
--- /dev/null
+++ b/third_party/nix/src/libstore/meson.build
@@ -0,0 +1,153 @@
+# Nix lib store build file
+#============================================================================
+
+src_inc += include_directories('.')
+
+libstore_src = files(
+    join_paths(meson.source_root(), 'src/libstore/binary-cache-store.cc'),
+    join_paths(meson.source_root(), 'src/libstore/build.cc'),
+    join_paths(meson.source_root(), 'src/libstore/crypto.cc'),
+    join_paths(meson.source_root(), 'src/libstore/derivations.cc'),
+    join_paths(meson.source_root(), 'src/libstore/download.cc'),
+    join_paths(meson.source_root(), 'src/libstore/export-import.cc'),
+    join_paths(meson.source_root(), 'src/libstore/gc.cc'),
+    join_paths(meson.source_root(), 'src/libstore/globals.cc'),
+    join_paths(meson.source_root(), 'src/libstore/http-binary-cache-store.cc'),
+    join_paths(meson.source_root(), 'src/libstore/legacy-ssh-store.cc'),
+    join_paths(meson.source_root(), 'src/libstore/local-binary-cache-store.cc'),
+    join_paths(meson.source_root(), 'src/libstore/local-fs-store.cc'),
+    join_paths(meson.source_root(), 'src/libstore/local-store.cc'),
+    join_paths(meson.source_root(), 'src/libstore/machines.cc'),
+    join_paths(meson.source_root(), 'src/libstore/misc.cc'),
+    join_paths(meson.source_root(), 'src/libstore/nar-accessor.cc'),
+    join_paths(meson.source_root(), 'src/libstore/nar-info.cc'),
+    join_paths(meson.source_root(), 'src/libstore/nar-info-disk-cache.cc'),
+    join_paths(meson.source_root(), 'src/libstore/optimise-store.cc'),
+    join_paths(meson.source_root(), 'src/libstore/parsed-derivations.cc'),
+    join_paths(meson.source_root(), 'src/libstore/pathlocks.cc'),
+    join_paths(meson.source_root(), 'src/libstore/profiles.cc'),
+    join_paths(meson.source_root(), 'src/libstore/references.cc'),
+    join_paths(meson.source_root(), 'src/libstore/remote-fs-accessor.cc'),
+    join_paths(meson.source_root(), 'src/libstore/remote-store.cc'),
+    join_paths(meson.source_root(), 'src/libstore/s3-binary-cache-store.cc'),
+    join_paths(meson.source_root(), 'src/libstore/sqlite.cc'),
+    join_paths(meson.source_root(), 'src/libstore/ssh.cc'),
+    join_paths(meson.source_root(), 'src/libstore/ssh-store.cc'),
+    join_paths(meson.source_root(), 'src/libstore/store-api.cc'),
+    join_paths(meson.source_root(), 'src/libstore/builtins/buildenv.cc'),
+    join_paths(meson.source_root(), 'src/libstore/builtins/fetchurl.cc'))
+
+libstore_headers = files(
+    join_paths(meson.source_root(), 'src/libstore/binary-cache-store.hh'),
+    join_paths(meson.source_root(), 'src/libstore/builtins.hh'),
+    join_paths(meson.source_root(), 'src/libstore/crypto.hh'),
+    join_paths(meson.source_root(), 'src/libstore/derivations.hh'),
+    join_paths(meson.source_root(), 'src/libstore/download.hh'),
+    join_paths(meson.source_root(), 'src/libstore/fs-accessor.hh'),
+    join_paths(meson.source_root(), 'src/libstore/globals.hh'),
+    join_paths(meson.source_root(), 'src/libstore/local-store.hh'),
+    join_paths(meson.source_root(), 'src/libstore/machines.hh'),
+    join_paths(meson.source_root(), 'src/libstore/nar-accessor.hh'),
+    join_paths(meson.source_root(), 'src/libstore/nar-info-disk-cache.hh'),
+    join_paths(meson.source_root(), 'src/libstore/nar-info.hh'),
+    join_paths(meson.source_root(), 'src/libstore/parsed-derivations.hh'),
+    join_paths(meson.source_root(), 'src/libstore/pathlocks.hh'),
+    join_paths(meson.source_root(), 'src/libstore/profiles.hh'),
+    join_paths(meson.source_root(), 'src/libstore/references.hh'),
+    join_paths(meson.source_root(), 'src/libstore/remote-fs-accessor.hh'),
+    join_paths(meson.source_root(), 'src/libstore/remote-store.hh'),
+    join_paths(meson.source_root(), 'src/libstore/s3-binary-cache-store.hh'),
+    join_paths(meson.source_root(), 'src/libstore/s3.hh'),
+    join_paths(meson.source_root(), 'src/libstore/serve-protocol.hh'),
+    join_paths(meson.source_root(), 'src/libstore/sqlite.hh'),
+    join_paths(meson.source_root(), 'src/libstore/ssh.hh'),
+    join_paths(meson.source_root(), 'src/libstore/store-api.hh'),
+    join_paths(meson.source_root(), 'src/libstore/worker-protocol.hh'))
+
+libstore_data = files(
+    join_paths(meson.source_root(), 'src/libstore/sandbox-defaults.sb'),
+    join_paths(meson.source_root(), 'src/libstore/sandbox-minimal.sb'),
+    join_paths(meson.source_root(), 'src/libstore/sandbox-network.sb'))
+
+# dependancies
+#============================================================================
+
+libstore_dep_list = [
+    glog_dep,
+    libbz2_dep,
+    libcurl_dep,
+    libdl_dep,
+    pthread_dep,
+    sqlite3_dep,
+    libsodium_dep
+]
+
+if sys_name.contains('linux')
+    libstore_dep_list += libseccomp_dep
+endif
+
+if sys_name.contains('freebsd')
+    libstore_dep_list += libdl_dep
+endif
+
+# Link args
+#============================================================================
+
+libstore_link_list = [
+    libutil_lib]
+
+libstore_link_args = []
+
+# compiler args
+#============================================================================
+
+libstore_cxx_args = [
+    '-DNIX_PREFIX="@0@" '.format(prefix),
+    '-DNIX_STORE_DIR="@0@" '.format(nixstoredir),
+    '-DNIX_DATA_DIR="@0@" '.format(datadir),
+    '-DNIX_STATE_DIR="@0@" '.format(join_paths(localstatedir, 'nix')),
+    '-DNIX_LOG_DIR="@0@" '.format(join_paths(localstatedir, 'log/nix')),
+    '-DNIX_CONF_DIR="@0@" '.format(join_paths(sysconfdir, 'nix')),
+    '-DNIX_LIBEXEC_DIR="@0@" '.format(libexecdir),
+    '-DNIX_BIN_DIR="@0@" '.format(bindir),
+    '-DNIX_MAN_DIR="@0@" '.format(mandir),
+    '-DSANDBOX_SHELL="@0@" '.format(get_option('sandbox_shell')),
+    '-DLSOF="@0@" '.format(lsof)]
+
+# targets
+#============================================================================
+
+gen_header = '''
+  echo 'R"foo(' >> "$1"
+  cat @INPUT@ >> "$1"
+  echo ')foo"' >> "$1"
+'''
+
+libstore_src += custom_target(
+  'schema.sql.gen.hh',
+  output : 'schema.sql.gen.hh',
+  input : 'schema.sql',
+  command : [bash, '-c', gen_header, 'sh', '@OUTPUT@'])
+
+# build
+#============================================================================
+
+libstore_lib = library(
+    'nixstore',
+    install : true,
+    install_mode : 'rwxr-xr-x',
+    install_dir : libdir,
+    include_directories : src_inc,
+    link_with : libstore_link_list,
+    sources : libstore_src,
+    cpp_args : libstore_cxx_args,
+    link_args : libstore_link_args,
+    dependencies : libstore_dep_list)
+
+install_headers(
+    libstore_headers,
+    install_dir : join_paths(includedir, 'nix'))
+
+install_data(
+    libstore_data,
+    install_dir : join_paths(datadir, 'nix/sandbox'))