Conditional compilation in wrapper

This commit is contained in:
Thomas Krijnen
2025-09-14 16:27:55 +02:00
parent 23b48c43a6
commit 5f50e6fcf1
+4 -1
View File
@@ -140,9 +140,9 @@ static IfcUtil::ArgumentType helper_fn_attribute_type(const IfcUtil::IfcBaseClas
%inline %{ %inline %{
#include <memory> #include <memory>
#include <string> #include <string>
#ifdef IFOPSH_WITH_ROCKSDB
#include <rocksdb/db.h> #include <rocksdb/db.h>
#include <rocksdb/slice.h> #include <rocksdb/slice.h>
#include <Python.h>
class RocksDBPrefixIterator { class RocksDBPrefixIterator {
public: public:
@@ -179,6 +179,7 @@ private:
std::unique_ptr<rocksdb::Iterator> it_; std::unique_ptr<rocksdb::Iterator> it_;
std::string prefix_; std::string prefix_;
}; };
#endif
%} %}
%newobject IfcParse::IfcFile::key_value_store_iter; %newobject IfcParse::IfcFile::key_value_store_iter;
@@ -268,6 +269,7 @@ private:
}, $self->storage_); }, $self->storage_);
} }
#ifdef IFOPSH_WITH_ROCKSDB
RocksDBPrefixIterator* key_value_store_iter(const std::string& prefix) const { RocksDBPrefixIterator* key_value_store_iter(const std::string& prefix) const {
auto* storage = std::visit([](auto& m) -> IfcParse::impl::rocks_db_file_storage const * { auto* storage = std::visit([](auto& m) -> IfcParse::impl::rocks_db_file_storage const * {
if constexpr (std::is_same_v<std::decay_t<decltype(m)>, IfcParse::impl::rocks_db_file_storage>) { if constexpr (std::is_same_v<std::decay_t<decltype(m)>, IfcParse::impl::rocks_db_file_storage>) {
@@ -280,6 +282,7 @@ private:
} }
return new RocksDBPrefixIterator(storage, prefix); return new RocksDBPrefixIterator(storage, prefix);
} }
#endif
PyObject* key_value_store_query(const std::string& key) const { PyObject* key_value_store_query(const std::string& key) const {
auto* storage = std::visit([](auto& m) -> IfcParse::impl::rocks_db_file_storage const * { auto* storage = std::visit([](auto& m) -> IfcParse::impl::rocks_db_file_storage const * {