diff --git a/CuraEngine-gcc9.patch b/CuraEngine-gcc9.patch new file mode 100644 index 0000000..7d31b97 --- /dev/null +++ b/CuraEngine-gcc9.patch @@ -0,0 +1,31 @@ +--- src/layerPart.cpp.orig 2019-06-14 09:36:05.313574796 +0200 ++++ src/layerPart.cpp 2019-06-14 09:38:09.608954136 +0200 +@@ -49,7 +49,7 @@ + { + const auto total_layers = slicer->layers.size(); + assert(mesh.layers.size() == total_layers); +-#pragma omp parallel for default(none) shared(mesh, slicer) schedule(dynamic) ++#pragma omp parallel for default(none) shared(mesh, slicer, total_layers) schedule(dynamic) + for (unsigned int layer_nr = 0; layer_nr < total_layers; layer_nr++) + { + SliceLayer& layer_storage = mesh.layers[layer_nr]; +--- src/support.cpp.orig 2019-06-14 09:36:05.317574905 +0200 ++++ src/support.cpp 2019-06-14 09:45:31.129002024 +0200 +@@ -854,7 +854,7 @@ + const double tan_angle = tan(angle) - 0.01; // the XY-component of the supportAngle + xy_disallowed_per_layer[0] = storage.getLayerOutlines(0, false).offset(xy_distance); + // for all other layers (of non support meshes) compute the overhang area and possibly use that when calculating the support disallowed area +- #pragma omp parallel for default(none) shared(xy_disallowed_per_layer, storage, mesh) schedule(dynamic) ++ #pragma omp parallel for default(none) shared(xy_disallowed_per_layer, storage, mesh, layer_count, xy_distance_overhang, xy_distance, tan_angle, is_support_mesh_place_holder, use_xy_distance_overhang, z_distance_top) schedule(dynamic) + for (unsigned int layer_idx = 1; layer_idx < layer_count; layer_idx++) + { + Polygons outlines = storage.getLayerOutlines(layer_idx, false); +@@ -1054,7 +1054,7 @@ + const int max_checking_layer_idx = std::min(static_cast(storage.support.supportLayers.size()) + , static_cast(layer_count - (layer_z_distance_top - 1))); + const size_t max_checking_idx_size_t = std::max(0, max_checking_layer_idx); +-#pragma omp parallel for default(none) shared(support_areas, storage) schedule(dynamic) ++#pragma omp parallel for default(none) shared(support_areas, storage, layer_z_distance_top, max_checking_layer_idx, max_checking_idx_size_t) schedule(dynamic) + for (size_t layer_idx = 0; layer_idx < max_checking_idx_size_t; layer_idx++) + { + support_areas[layer_idx] = support_areas[layer_idx].difference(storage.getLayerOutlines(layer_idx + layer_z_distance_top - 1, false)); diff --git a/cura-engine-lulzbot.changes b/cura-engine-lulzbot.changes index 2227e0e..0237a48 100644 --- a/cura-engine-lulzbot.changes +++ b/cura-engine-lulzbot.changes @@ -1,3 +1,9 @@ +------------------------------------------------------------------- +Fri Jun 14 07:57:43 UTC 2019 - Adrian Schröter + +- fix build with current libArcus +- fix build with gcc9 + ------------------------------------------------------------------- Mon May 27 14:54:24 UTC 2019 - Adrian Schröter diff --git a/cura-engine-lulzbot.spec b/cura-engine-lulzbot.spec index cba7015..f08f58e 100644 --- a/cura-engine-lulzbot.spec +++ b/cura-engine-lulzbot.spec @@ -26,7 +26,10 @@ Conflicts: cura-engine Url: https://code.alephobjects.com/diffusion/CTE/cura-engine.git Source0: CuraEngine-%{version}.tar.xz Source1: CuraEngine.1 +# X-OPENSUSE-PATCH fix-build.patch for new libArcus Patch1: fix-build.patch +# PATCH-FIX-OPENSUSE CuraEngine-gcc9.patch loose based on a patch from fedora +Patch2: CuraEngine-gcc9.patch %if 0%{?suse_version} < 1500 BuildRequires: gcc6-c++ #!BuildIgnore: libgcc_s1 @@ -48,6 +51,7 @@ This is the LulzBot variation of the engine. %prep %setup -q -n CuraEngine-%version %patch1 -p1 +%patch2 -p0 %build %if 0%{?suse_version} < 1500 diff --git a/fix-build.patch b/fix-build.patch index 941b52b..da1adbf 100644 --- a/fix-build.patch +++ b/fix-build.patch @@ -1,40 +1,18 @@ -diff --git a/tests/arcus/MockSocket.cpp b/tests/arcus/MockSocket.cpp -index 73cbb867..a72780e1 100644 ---- a/tests/arcus/MockSocket.cpp -+++ b/tests/arcus/MockSocket.cpp -@@ -20,7 +20,7 @@ void MockSocket::sendMessage(Arcus::MessagePtr message) - sent_messages.push_back(message); - } +--- ./src/communication/ArcusCommunication.cpp.orig 2019-06-14 09:55:36.709514543 +0200 ++++ ./src/communication/ArcusCommunication.cpp 2019-06-14 09:55:42.877682665 +0200 +@@ -481,7 +481,7 @@ --Arcus::MessagePtr MockSocket::takeNextMessage() -+Arcus::MessagePtr MockSocket::takeNextMessage(bool) + void ArcusCommunication::sliceNext() { - Arcus::MessagePtr result = received_messages.front(); - received_messages.pop_front(); -@@ -39,4 +39,4 @@ Arcus::MessagePtr MockSocket::popMessageFromSendQueue() - return result; - } +- const Arcus::MessagePtr message = private_data->socket->takeNextMessage(true); ++ const Arcus::MessagePtr message = private_data->socket->takeNextMessage(); --} //namespace cura -\ No newline at end of file -+} //namespace cura -diff --git a/tests/arcus/MockSocket.h b/tests/arcus/MockSocket.h -index 80370f49..f9e8050a 100644 ---- a/tests/arcus/MockSocket.h -+++ b/tests/arcus/MockSocket.h -@@ -27,7 +27,7 @@ public: - - //Catch these functions so that we can see whether they are called. - void sendMessage(Arcus::MessagePtr message) override; -- Arcus::MessagePtr takeNextMessage() override; -+ Arcus::MessagePtr takeNextMessage(bool) override; - - //Helpers to store the sent and received messages. - void pushMessageToReceivedQueue(Arcus::MessagePtr message); -@@ -38,4 +38,4 @@ public: + //Handle the main Slice message. + const cura::proto::Slice* slice_message = dynamic_cast(message.get()); //See if the message is of the message type Slice. Returns nullptr otherwise. +@@ -535,4 +535,4 @@ } //namespace cura --#endif //MOCKSOCKET_H -\ No newline at end of file -+#endif //MOCKSOCKET_H +-#endif //ARCUS +\ Kein Zeilenumbruch am Dateiende. ++#endif //ARCUS