Giter Site home page Giter Site logo

Comments (9)

GeorgKZ avatar GeorgKZ commented on July 22, 2024 1

Я извиняюсь, поторопился с выкладиванием. Вот тут архив:
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.

XRay3D avatar XRay3D commented on July 22, 2024

К сожалению не всё применилось((

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.

GeorgKZ avatar GeorgKZ commented on July 22, 2024

Собирал под Линукс примерно так (в /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.

XRay3D avatar XRay3D commented on July 22, 2024

Почему через гитхаб не захотели мне изменения залить?
Гляну. Чищу код пока, многое не нравится.
Ну и как по вашему мой кодинг?))

from gerber_x3.

GeorgKZ avatar GeorgKZ commented on July 22, 2024

Я пока с гитхабом как-то не общался, только начал пробовать.

Если по моим предложениям будут вопросы - пишите, постараюсь подробно ответить.

Кодинг нормальный, только непривычно много новшеств C++. Я пока только 11-е нововведения смотрю, а уже 20й вовсю используется. А ведь только недавно Фортран на перфокартах был...

И по личному мнению, неплохо было бы доксигенности добавить - ну это в основном для облегчения другим разбираться, что есть что. Для примера комментирования вывалил исходники неспешно ваяемой программки (https://github.com/GeorgKZ/stl2step) - вот типа такого, со ссылками на ISO 06983-1-2009 и т.п.

from gerber_x3.

GeorgKZ avatar GeorgKZ commented on July 22, 2024

Обнаружил у себя ошибку: в файле 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.

XRay3D avatar XRay3D commented on July 22, 2024

По статической сборке вы имели в виду Qt`овские библиотеки?

from gerber_x3.

GeorgKZ avatar GeorgKZ commented on July 22, 2024

Не только. Я имел в виду статическую сборку Вашей программы - для этого необходимо конечно использовать статически собранный вариант 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.

XRay3D avatar XRay3D commented on July 22, 2024

Когда нибудь)) когда АПИ устаканится, я на оборот монолит распилил что бы в будущем добавлять функциональности проще было. Сейчас репу чешу в сторону https://gitlab.com/inkscape/lib2geom
Но её что то собрать не очень выходит.

from gerber_x3.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.