diff options
Diffstat (limited to 'third_party/nix/src/libstore')
-rw-r--r-- | third_party/nix/src/libstore/CMakeLists.txt | 102 | ||||
-rw-r--r-- | third_party/nix/src/libstore/local-store.cc | 9 |
2 files changed, 105 insertions, 6 deletions
diff --git a/third_party/nix/src/libstore/CMakeLists.txt b/third_party/nix/src/libstore/CMakeLists.txt new file mode 100644 index 000000000000..21adb0fb02e5 --- /dev/null +++ b/third_party/nix/src/libstore/CMakeLists.txt @@ -0,0 +1,102 @@ +# -*- mode: cmake; -*- +add_library(nixstore SHARED) +set_property(TARGET nixstore PROPERTY CXX_STANDARD 17) +include_directories(${PROJECT_BINARY_DIR}) # for config.h +target_include_directories(nixstore PUBLIC "${nix_SOURCE_DIR}/src") + +# The database schema is stored in schema.sql, but needs to be +# available during the build as static data. +# +# These commands create an includeable source-file out of it. +file(READ "schema.sql" NIX_SCHEMA) + +string(CONFIGURE + "#pragma once + namespace nix { + constexpr char kNixSqlSchema[] = R\"(${NIX_SCHEMA})\"\; + }" + NIX_SCHEMA_GEN) + +file(WRITE ${PROJECT_BINARY_DIR}/generated/schema.sql.hh ${NIX_SCHEMA_GEN}) + +target_sources(nixstore + PUBLIC + binary-cache-store.hh + builtins.hh + crypto.hh + derivations.hh + download.hh + fs-accessor.hh + globals.hh + local-store.hh + machines.hh + nar-accessor.hh + nar-info-disk-cache.hh + nar-info.hh + parsed-derivations.hh + pathlocks.hh + profiles.hh + references.hh + remote-fs-accessor.hh + remote-store.hh + s3-binary-cache-store.hh + s3.hh + serve-protocol.hh + sqlite.hh + ssh.hh + store-api.hh + worker-protocol.hh + + PRIVATE + ${PROJECT_BINARY_DIR}/generated/schema.sql.hh + binary-cache-store.cc + build.cc + crypto.cc + derivations.cc + download.cc + export-import.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 + machines.cc + misc.cc + nar-accessor.cc + nar-info.cc + nar-info-disk-cache.cc + optimise-store.cc + parsed-derivations.cc + pathlocks.cc + profiles.cc + references.cc + remote-fs-accessor.cc + remote-store.cc + s3-binary-cache-store.cc + sqlite.cc + ssh.cc + ssh-store.cc + store-api.cc + builtins/buildenv.cc + builtins/fetchurl.cc +) + +target_link_libraries(nixstore + nixutil + + BZip2::BZip2 + Boost::context + CURL::libcurl + LibLZMA::LibLZMA + SQLite::SQLite3 + absl::strings + brotlidec + brotlienc + glog + seccomp + sodium +) + +INSTALL(TARGETS nixstore DESTINATION lib) diff --git a/third_party/nix/src/libstore/local-store.cc b/third_party/nix/src/libstore/local-store.cc index f9d03c520a7c..2f35dd69c4fb 100644 --- a/third_party/nix/src/libstore/local-store.cc +++ b/third_party/nix/src/libstore/local-store.cc @@ -374,10 +374,7 @@ void LocalStore::openDB(State& state, bool create) { /* Initialise the database schema, if necessary. */ if (create) { - const char* schema = -#include "schema.sql.gen.hh" - ; - db.exec(schema); + db.exec(kNixSqlSchema); } } @@ -435,13 +432,13 @@ static void canonicaliseTimestampAndPermissions(const Path& path, if (errno != ENOSYS || (!S_ISLNK(st.st_mode) && utimes(path.c_str(), times) == -1)) { #else - if (!S_ISLNK(st.st_mode) && utimes(path.c_str(), times) == -1) + if (!S_ISLNK(st.st_mode) && utimes(path.c_str(), times) == -1) { #endif throw SysError(format("changing modification time of '%1%'") % path); } } } // namespace nix -} +} // namespace nix void canonicaliseTimestampAndPermissions(const Path& path) { struct stat st; |