Comments (9)
Я извиняюсь, поторопился с выкладиванием. Вот тут архив:
https://drive.google.com/file/d/1XjHG_CIRC9Hl6Hk7TygCrw8mUmjbHwDp/view?usp=sharing
почистил, разобрал и подписал что для чего нужно. Для справки вот
https://drive.google.com/file/d/1OCGojDlqDImpaBTNL6Pmd_dKEAXLpjJZ/view?usp=sharing
вариант с применёнными патчами, чтобы было понятно, какие файлы обработаны. Исходный архив, к которому были применены патчи:
https://drive.google.com/file/d/1OCysd5PdZ1tZ9mZcKzWLzUuUePFHemsU/view?usp=sharing
from gerber_x3.
К сожалению не всё применилось((
GGEASY.patch:6956: trailing whitespace.
const int scale_error_i = 2; // non-fatal
GGEASY.patch:6957: trailing whitespace.
const int non_pair_error_i = 4; // non-fatal
GGEASY.patch:7335: trailing whitespace.
inline Path<T1> ScalePath(const Path<T2>& path,
GGEASY.patch:7351: trailing whitespace.
[scale_x, scale_y](const auto& pt)
GGEASY.patch:7355: trailing whitespace.
[scale_x, scale_y](const auto& pt)
error: patch failed: GERBER_X3/CMakeLists.txt:10
error: GERBER_X3/CMakeLists.txt: patch does not apply
error: patch failed: GERBER_X3/plugins/file/file_plugins_en.ts:1
error: GERBER_X3/plugins/file/file_plugins_en.ts: patch does not apply
error: patch failed: GERBER_X3/plugins/file/file_plugins_ru.ts:19
error: GERBER_X3/plugins/file/file_plugins_ru.ts: patch does not apply
error: patch failed: GERBER_X3/plugins/file/gerber/file_gerber_en.ts:1
error: GERBER_X3/plugins/file/gerber/file_gerber_en.ts: patch does not apply
error: patch failed: GERBER_X3/plugins/file/gerber/file_gerber_ru.ts:170
error: GERBER_X3/plugins/file/gerber/file_gerber_ru.ts: patch does not apply
error: patch failed: GERBER_X3/plugins/gcode/gc_file.cpp:439
error: GERBER_X3/plugins/gcode/gc_file.cpp: patch does not apply
error: patch failed: GERBER_X3/plugins/gcode/gcode_en.ts:1
error: GERBER_X3/plugins/gcode/gcode_en.ts: patch does not apply
error: patch failed: GERBER_X3/plugins/gcode/gcode_ru.ts:27
error: GERBER_X3/plugins/gcode/gcode_ru.ts: patch does not apply
error: patch failed: GERBER_X3/plugins/gcode/pocketoffset/pocketoffset_form.cpp:26
error: GERBER_X3/plugins/gcode/pocketoffset/pocketoffset_form.cpp: patch does not apply
error: GERBER_X3/plugins/gcode/profile/prof_file.cpp: No such file or directory
error: patch failed: GERBER_X3/plugins/gcode/thermal/thermal_form.h:77
error: GERBER_X3/plugins/gcode/thermal/thermal_form.h: patch does not apply
error: patch failed: GERBER_X3/plugins/gcode/voroni/voronoi_boost.cpp:18
error: GERBER_X3/plugins/gcode/voroni/voronoi_boost.cpp: patch does not apply
error: GERBER_X3/plugins/gcode/voroni/voronoi_file.cpp: No such file or directory
error: patch failed: GERBER_X3/plugins/shape/CMakeLists.txt:56
error: GERBER_X3/plugins/shape/CMakeLists.txt: patch does not apply
Пулреквестом лучше было бы. Придётся ручками и глазами добивать.
from gerber_x3.
Собирал под Линукс примерно так (в /usr/local/Qt-6.4.2-shared/ был собран Qt):
ulimit -n 2048
CMAKE_PREFIX_PATH="/usr/local/Qt-6.4.2-shared/lib/cmake"
PATH="/usr/local/Qt-6.4.2-shared/bin:$PATH"
BUILDDIR="../GGEASY-build-6.4.02-shared-deb"
SRCDIR="../GGEASY"
Конфигурация
cmake -G Ninja "-DCMAKE_EXE_LINKER_FLAGS=-pthread" -DCMAKE_BUILD_TYPE=Debug -S ${SRCDIR} -B ${BUILDDIR}
Сборка
cmake --build ${BUILDDIR} --target update_translations --target all --parallel > build_6.4.02_shared_deb_log.txt
Добавление переводов Qt
cp -fs /usr/local/Qt-6.4.2-shared/translations/qtbase_ru.qm ../GGEASY/bin/Qt6.4_gnu_d_x64/translations/
cp -fs /usr/local/Qt-6.4.2-shared/translations/qtbase_en.qm ../GGEASY/bin/Qt6.4_gnu_d_x64/translations/
from gerber_x3.
Почему через гитхаб не захотели мне изменения залить?
Гляну. Чищу код пока, многое не нравится.
Ну и как по вашему мой кодинг?))
from gerber_x3.
Я пока с гитхабом как-то не общался, только начал пробовать.
Если по моим предложениям будут вопросы - пишите, постараюсь подробно ответить.
Кодинг нормальный, только непривычно много новшеств C++. Я пока только 11-е нововведения смотрю, а уже 20й вовсю используется. А ведь только недавно Фортран на перфокартах был...
И по личному мнению, неплохо было бы доксигенности добавить - ну это в основном для облегчения другим разбираться, что есть что. Для примера комментирования вывалил исходники неспешно ваяемой программки (https://github.com/GeorgKZ/stl2step) - вот типа такого, со ссылками на ISO 06983-1-2009 и т.п.
from gerber_x3.
Обнаружил у себя ошибку: в файле voronoi_boost.cpp по хорошему надо было так:
` #if defined(_MSC_VER)
#pragma warning(push)
#pragma warning(disable : 5055)
#elif defined(GNUC) && (GNUC >= 7)
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpragmas"
#pragma GCC diagnostic ignored "-Wdeprecated-enum-float-conversion"
#endif /* _MSC_VER, GNUC */
#include "voronoi_visual_utils.h"
#include <boost/polygon/polygon.hpp>
#include <boost/polygon/voronoi.hpp>
#if defined(_MSC_VER)
#pragma warning(pop)
#elif defined(__GNUC__) && (__GNUC__ >= 7)
#pragma GCC diagnostic pop
#endif /* _MSC_VER, __GNUC__ */
`
а то в том варианте при сборке MS VCPP этот блок пропускался, выходила ошибка сборки.
И ещё про сборку для Windows. Вот в этом фрагменте CMakeLists.txt для исполняемого файла:
set_target_properties(${PROJECT_NAME} PROPERTIES MACOSX_BUNDLE_GUI_IDENTIFIER xr.ggeasy.com MACOSX_BUNDLE_BUNDLE_VERSION ${PROJECT_VERSION} MACOSX_BUNDLE_SHORT_VERSION_STRING ${PROJECT_VERSION_MAJOR}.${PROJECT_VERSION_MINOR} MACOSX_BUNDLE TRUE WIN32_EXECUTABLE TRUE )
Если закомментировать или убрать WIN32_EXECUTABLE TRUE (то есть в опциях линкера заменить /subsystem:windows на /subsystem:console), то восстанавливается вывод в консоль - все предупреждения, qDebug и т.д. Возможно, стоит ввести отдельный флаг сборки (для переключения этого параметра) для удобства отладки. Ну или отметить комментарием такую возможность.
На линукс-сборку это не влияет - там вывод в консоль идёт в любом случае.
from gerber_x3.
По статической сборке вы имели в виду Qt`овские библиотеки?
from gerber_x3.
Не только. Я имел в виду статическую сборку Вашей программы - для этого необходимо конечно использовать статически собранный вариант Qt, а в Вашей программе все плюгины и все библиотеки Qt будут интегрированы в единый исполняемый файл. Правда, "универсальный" (то есть, если собирать динамически с динамическим Qt, то получится как раньше, а если статически со статически собранным Qt - то единым исполняемым файлом) вариант, насколько я понял, получится только с Qt с 6й версии - с использованием для плюгинов вместо
add_library(rectangle SHARED rectangle.json shrectangle.cpp shrectangle.h )
конструкции
qt_add_plugin(rectangle CLASS_NAME PluginRect) target_sources(rectangle PRIVATE rectangle.json shrectangle.cpp shrectangle.h )
где PluginRect - это бывший class Plugin, и в основной программе для подключения плюгинов прямое обращение к объектам вместо файлов:
`#else // STATIC_LINK
QObject* objects[] = {
new Gerber::PluginGerber(),
new Dxf::PluginDxf(),
new Excellon::PluginExcellon(),
new Hpgl::PluginHpgl(),
new Shapes::PluginCircle(),
new Shapes::PluginArc(),
new Shapes::PluginRect(),
new Shapes::PluginText(),
new Shapes::PluginPoly(),
nullptr};
for (auto s = &objects[0]; *s != nullptr; ++ s) {
QObject* pobj = *s;
if (auto file = qobject_cast<FilePluginInterface*>(pobj); pobj && file) {
App::filePlugins().emplace(file->type(), PIF { file, pobj });
continue;
}
if (auto shape = qobject_cast<ShapePluginInterface*>(pobj); pobj && shape) {
App::shapePlugins().emplace(shape->type(), PIS { shape, pobj });
continue;
}
}
#endif
`
from gerber_x3.
Когда нибудь)) когда АПИ устаканится, я на оборот монолит распилил что бы в будущем добавлять функциональности проще было. Сейчас репу чешу в сторону https://gitlab.com/inkscape/lib2geom
Но её что то собрать не очень выходит.
from gerber_x3.
Related Issues (20)
- Polyline: undefined symbol: _ZN12GraphicsView11scaleFactorEv on linux
- Артефакты с контактными площадками SMD компонентов, установленных не под прямым углом HOT 3
- Срнедняя линия
- Форма пятна лазера HOT 1
- Скорость подачи
- ещё надо добавить опцию многозаходной фрезеровки платы то есть послойно по 0.1-0.5 мм HOT 1
- если есть возможность добавь инструмент маркер (в принципе это тоже самое что фрезеровка но как бы что бы отдельный инструмент был) HOT 4
- [FR] gerber reload HOT 2
- How to build this project HOT 2
- Hi. This is not a problem but it is still a problem! HOT 1
- Проблемы и предложения HOT 5
- Инструмент штриховка не генерирует G-code при выводе УП HOT 1
- Результат штриховки не сохраняется в УП
- Режим HLDI HOT 2
- Запоминать размер диалогового окна
- Ошибка при линковке под Linux HOT 1
- Вопрос по 0.9.0b HOT 2
- Перевод HOT 1
- Сборка и ctre HOT 8
- Вороной не делает низ платы HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gerber_x3.