-
Notifications
You must be signed in to change notification settings - Fork 2
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
OS: Windows #2
Comments
@zvezdochiot Я правильно понимаю, что -experimental использует OpenCL? |
Класс. Я вот добрался до Eigen, скачал бинарник, иии - меня встречает файл cmake. А ещё оказалось, что это "кроссплатформенное программное обеспечение" не поддерживает visualstudio 2019 и требует компилятор фортрана. Можешь сюда уже собранные инклуды скинуть? |
Hi @plzombie . Да. Но опционально. У меня собрался без него: ldd /usr/bin/scantailor-experimental
linux-vdso.so.1 (0x00007ffdc4b88000)
libtiff.so.5 => /usr/lib/x86_64-linux-gnu/libtiff.so.5 (0x00007fa95d7cc000)
libpng16.so.16 => /usr/lib/x86_64-linux-gnu/libpng16.so.16 (0x00007fa95d792000)
libjpeg.so.62 => /usr/lib/x86_64-linux-gnu/libjpeg.so.62 (0x00007fa95d70e000)
libQt5OpenGL.so.5 => /usr/lib/x86_64-linux-gnu/libQt5OpenGL.so.5 (0x00007fa95d6b4000)
libQt5Xml.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Xml.so.5 (0x00007fa95d670000)
libQt5Widgets.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Widgets.so.5 (0x00007fa95cfe6000)
libQt5Gui.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5 (0x00007fa95c922000)
libQt5Core.so.5 => /usr/lib/x86_64-linux-gnu/libQt5Core.so.5 (0x00007fa95c3d7000)
libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007fa95c20a000)
libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007fa95c0c6000)
libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007fa95c0ac000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fa95bed8000)
libwebp.so.6 => /usr/lib/x86_64-linux-gnu/libwebp.so.6 (0x00007fa95be6d000)
libzstd.so.1 => /usr/lib/x86_64-linux-gnu/libzstd.so.1 (0x00007fa95bd92000)
liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007fa95bd6a000)
libjbig.so.0 => /usr/lib/x86_64-linux-gnu/libjbig.so.0 (0x00007fa95bb5c000)
libdeflate.so.0 => /usr/lib/x86_64-linux-gnu/libdeflate.so.0 (0x00007fa95bb40000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fa95bb23000)
libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007fa95baff000)
libGL.so.1 => /usr/lib/x86_64-linux-gnu/libGL.so.1 (0x00007fa95ba78000)
libharfbuzz.so.0 => /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007fa95b990000)
libmd4c.so.0 => /usr/lib/x86_64-linux-gnu/libmd4c.so.0 (0x00007fa95b97e000)
libdouble-conversion.so.3 => /usr/lib/x86_64-linux-gnu/libdouble-conversion.so.3 (0x00007fa95b967000)
libicui18n.so.67 => /usr/lib/x86_64-linux-gnu/libicui18n.so.67 (0x00007fa95b661000)
libicuuc.so.67 => /usr/lib/x86_64-linux-gnu/libicuuc.so.67 (0x00007fa95b476000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fa95b470000)
libpcre2-16.so.0 => /usr/lib/x86_64-linux-gnu/libpcre2-16.so.0 (0x00007fa95b3e5000)
libglib-2.0.so.0 => /usr/lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007fa95b2b6000)
/lib64/ld-linux-x86-64.so.2 (0x00007fa95db42000)
libGLdispatch.so.0 => /usr/lib/x86_64-linux-gnu/libGLdispatch.so.0 (0x00007fa95b1fe000)
libGLX.so.0 => /usr/lib/x86_64-linux-gnu/libGLX.so.0 (0x00007fa95b1c8000)
libfreetype.so.6 => /usr/lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007fa95b105000)
libgraphite2.so.3 => /usr/lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007fa95b0d9000)
libicudata.so.67 => /usr/lib/x86_64-linux-gnu/libicudata.so.67 (0x00007fa9595c0000)
libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007fa95954d000)
libX11.so.6 => /usr/lib/x86_64-linux-gnu/libX11.so.6 (0x00007fa959408000)
libbrotlidec.so.1 => /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x00007fa9593fa000)
libxcb.so.1 => /usr/lib/x86_64-linux-gnu/libxcb.so.1 (0x00007fa9593cf000)
libbrotlicommon.so.1 => /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x00007fa9593ac000)
libXau.so.6 => /usr/lib/x86_64-linux-gnu/libXau.so.6 (0x00007fa9593a7000)
libXdmcp.so.6 => /usr/lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007fa95919f000)
libbsd.so.0 => /usr/lib/x86_64-linux-gnu/libbsd.so.0 (0x00007fa959188000)
libmd.so.0 => /usr/lib/x86_64-linux-gnu/libmd.so.0 (0x00007fa95917b000) Отличия от STA: STA пользует ещё ❓ То есть, что именно, помимо |
У меня сейчас пишет:
Сам Eigen под винду не собирается. Нужен, собственно, собранный под линуксом. Желательно для mingw Мало того, у меня сейчас пишет вот что:
Ума не приложу, что ему надо |
Hi @plzombie . А И также И надо как то помочь ему найти Qt5. https://github.com/ImageProcessing-ElectronicPublications/scantailor-experimental/tree/main/packaging/windows никак не поможет? |
Спасибо, прочту |
Hi @plzombie . Смотри также STU и STA. Там по-другому поиск Qt5 организован. Ежели надо менять PS: Кстати, STA у тебя точно собирается, а STU? Это ежели я сам попытаюсь @KOLANICH помоги. Ты спец по PS: про-grep-ил @plzombie , собрал |
I'm sorry, I cannot try building it on my machine right now (so IDK what exact issue you have (I assumme it is that it doesn't find Qt?), and which are the causes of it), so I can only give the general advice for now. Also I propose to just drop the ancient CMake versions. While one can do Also stuff like https://raw.githubusercontent.com/ImageProcessing-ElectronicPublications/scantailor-experimental/main/cmake/SetDefaultBuildType.cmake is a piece of shit, such thinks shouldn't ge overridden by cmake scripts. Also usually one should stay away of using In other words CMake scripts here are full of antipatterns. P.S. I write in English because I think GitHub is an international website and that it is respectful to make own texts there to be understandable by everyone. |
One more thing. If you need Windows XP support, you need an old version of |
Eigen - это header only библиотека линейной алгебры. Он не даст dll в выхлопе. Там достаточно чтобы проект видел header files (.h, *.hpp). |
@trufanov-nok , да с PS: Я не хочу лезть в |
не там значит ищет. Добавление message("$MyVar") в cmakefiles должно облегчить дебаг путей. Старые методы сборки - это из жанра один Петя смог настроить у себя (Например я, но у меня винда на отдельном HDD, который надо втыкать в ноут, поэтому я крайне редко до такого дохожу) и всем собирает. Это тупиковый путь. |
@trufanov-nok say:
Да я бы и сам упёр. Только в STA сборка онли латест бунта (чисто Qt6 компатибле проверяют). Вот только мне на этот Qt6 с колокольни даже в лине. Я бы с удовольствием вообще все "поделки" на Qt4 собирал бы. PS: Только что произвёл обработку очередной книги в STEX. Казалось бы самый урезанный вариант ST. Но как же удобно и грамотно он построен по сравнению со STA и STU. Осталось только отрицательные поля под капот завести и станет вне конкуренции по удобству. |
Release 0.2023.09.13. Build for Windows by @Нубий-IV. See also #3. |
Hi @plzombie . Здесь Нубий-IV описание сборки под винду, которую он применил, сбросил: BUILD.RU.md. Будет время, посмотри. Может какие помарки или примечания внесёшь. Или какие рекомендации добавишь. PS: Здесь главное подтвердить, что всё именно так, как написано, и сборку можно повторить. |
@zvezdochiot Я попытался собрать с зависимостями от Scantailor Advanced. Он ругается на jpeg теперь. Видимо, ему нужен libjpeg 6 или как в инструкции libjpeg-turbo. Буду сравнивать с файлами cmake от scantailor advanced. Перекомпилировать всё ещё раз, включая Qt, как по инструкции, как-то не хочется |
@plzombie say:
ldd /usr/bin/scantailor-experimental
То есть по инструкции хреново? Или просто муторно? PS: Ты так же можешь сделать |
Инструкция нормальная, но я хочу с зависимостями от Scantailor Advanced собрать |
@plzombie say:
Понял тебя. Ни капли не возражаю. Но только помочь особо мало чем могу. Но ежели чем могу, то разумеется сделаю. |
@plzombie say:
Речь про исходную версию cmake-скриптов? Там проблема в том, что у оригинального libjpeg нет своего cmake-проекта, только набор make-файлов и скрипт configure. Из-за этого в скриптах сборки ST фактически с нуля написан свой cmake-проект под эту библиотеку. Но он, видимо, устарел, там даже набор исходников поменялся. Так что возможны варианты:
А в той версии, которую я сделал, автосборка зависимостей вообще удалена, чтобы не терять время на поддержку скриптов всех зависимостей под все системы/компиляторы/версии. Если зависимости уже собраны (неважно как, в автомате оно получилось, или вручную) - при сборке ST достаточно указать пути ко всем зависимостям, либо заранее через CMAKE_PREFIX_PATH (быстрее), либо вручную по мере возникновения ошибок при конфигурировании (дольше). |
@noobie-iv say:
Приветствую, Роман. Заинвайтил вас в ORG.IPEP. |
@zvezdochiot Удалось скомпилировать с зависимостями от Scantailor Advanced. REM Next is a path to vs env
REM Run it first in CMD then run this script
REM "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"
REM For jpeg, copy stage/lib/libjpeg.lib to lib/libjpeg.lib
REM For zlib, copy stage/lib/zdll.lib to lib/zdll.lib
REM For tiff, copy stage/lib/zdll.lib to libtiff/lib/libtiff.lib and bin/libtiff.dll to libtiff/bin/libtiff.dll
rmdir /S /Q build
mkdir build
cd build
cmake -G "NMake Makefiles" -D CMAKE_BUILD_TYPE=Release -D CMAKE_PREFIX_PATH=f:\NonOfMyBusiness\scantailor\libs\Boost;f:\NonOfMyBusiness\scantailor\libs\eigen-3.4.0;f:\NonOfMyBusiness\scantailor\libs\jpeg-9e;f:\NonOfMyBusiness\scantailor\libs\libpng-1.6.39;f:\NonOfMyBusiness\scantailor\libs\Qt;f:\NonOfMyBusiness\scantailor\libs\tiff-4.2.0\libtiff;f:\NonOfMyBusiness\scantailor\libs\zlib-1.2.11;f:\NonOfMyBusiness\scantailor\libs\OpenCL-SDK-v2023.04.17-Win-x64 ..
nmake
cd ..
pause Сейчас залью ещё модифицированный CMakeLists.txt |
@plzombie say:
Так особого то скрипта и нет вовсе. Просто задание переменных PS: Кстати, коли bat-файл, то SET LIBSPATH=f:\NonOfMyBusiness\scantailor\libs\
cmake -G "NMake Makefiles" -D CMAKE_BUILD_TYPE=Release -D CMAKE_PREFIX_PATH=%LIBSPATH%Boost;%LIBSPATH%eigen-3.4.0;%LIBSPATH%jpeg-9e;%LIBSPATH%libpng-1.6.39;%LIBSPATH%Qt;%LIBSPATH%libtiff;%LIBSPATH%zlib-1.2.11;%LIBSPATH%OpenCL-SDK-v2023.04.17-Win-x64 |
@zvezdochiot Ну да. Я чисто свой скрипт выложил. Если его в репозиторий добавлять, то надо дорабатывать. Я добавил два коммита. Первый добавляет альтернативные названия dll-ок в CMakeLists.txt. Второй правит ошибки в скрипте установщика (как минимум, теперь у меня ярлыки создаются, все файлы удаляются и не даёт запустить удаление если приложение запущено) |
@zvezdochiot Прикрепил |
Debug-сборка весит 1G, Release - 130M. У меня в readme собирается только минимум, который не выбросить, без всяких Creator-ов. И на этом минимуме все собирается, если задача только собрать и протестировать, а не писать/дебажить на ноуте. Вот со студией - это да, она весит будь здоров. Когда-то вроде видел закачку компиляторов отдельно, но не пользовался.
У меня бинарники из https://disk.yandex.ru/d/snhL1yq8PuGvzQ все работают. Собирать не пробовал, не ставил Q6. |
@noobie-iv , так @plzombie спрашивает, как его правки отрабатывают на Qt5. Qt6 - это собственно его забота. PS: Сборку запустил. Смотрю. @plzombie . Всё нормально собралось. Потестил. За исключением отсутствия выключателя морфологии (уже успел привыкнуть, однако) всё как в оригинале. 👍 |
То есть мерджу? |
@plzombie . Делай. 👍 PS: |
@zvezdochiot Я уже устал биться головой об стену. Можешь мне объяснить, почему вот такой вот код # Generate license file
FILE(READ "LICENSE" ST_LICENSE)
IF(ST_LICENSE_DEPS_DIR)
SET(ST_LICENSE_SEPARATOR "\n====================\n")
SET(ST_LICENSE_SEARCH "${ST_LICENSE_DEPS_DIR}/*.txt")
FILE(GLOB ST_LICENSE_DEPS_FILES LIST_DIRECTORIES FALSE "${ST_LICENSE_SEARCH}")
MESSAGE(STATUS "ST_LICENSE_DEPS_FILES IS :${ST_LICENSE_DEPS_FILES}")
FOREACH(ST_LICENSE_DEPS_FILE "${ST_LICENSE_DEPS_FILES}")
MESSAGE(STATUS "${ST_LICENSE_DEPS_FILE}")
FILE(READ "${ST_LICENSE_DEPS_FILE}" ST_LICENSE_TEMP)
SET(
ST_LICENSE
"${ST_LICENSE}${ST_LICENSE_SEPARATOR}${ST_LICENSE_DEPS_FILE}${ST_LICENSE_SEPARATOR}${ST_LICENSE_TEMP}"
)
ENDFOREACH()
ENDIF()
CONFIGURE_FILE("LICENSE_COMPLETE.in" "LICENSE_COMPLETE" NEWLINE_STYLE CRLF) Даёт вот такой вот результат
Как будто foreach игнорирует точки с запятой и работает тупо как set |
Ну нет, ну просто шикарно. В |
Вроде вот инструменты командной строки: Если ставить по минимуму (основа, компилятор, SDK, cmake) - требует 6.5G. Скачанный инсталлятор весит 2.5G. С сайта заливается vs_BuildTools.exe - сетевой установщик. Скачать минимальную установку (download.cmd):
Установить (install.cmd):
|
@noobie-iv Я до сих пор на версии 2019 сижу, она в архиве. Я уже выкачал. Сейчас будет самое интересное - сборка Qt 6.6. Потому что версию Qt 6.2.2 под arm, которую я успел выкачать до СВО, CMake полноценной не считает, там реально мегабайт на 40 не хватает файлов в папке bin |
Ну и вот что пишут на сайте самого Qt https://doc.qt.io/qt-6/supported-platforms.html
Так что не факт, что у меня и 6.6.0 заработает |
qt6 для сборки использует cmake, ninja, perl и батники/шелл-скрипты. Просто жесть какая-то |
@zvezdochiot кстати, как у вас в линуксе с поддержкой high dpi в qt? Под виндой, если не менять масштаб, то, скажем так, нормально. А вот если менять (с монитора на монитор перетаскивать или руками), то всё, вот такой вот ужас |
@noobie-iv Это какое-то торжество шизофрении. Я должен ещё и сам Qt6 на ноуте с армом собирать. Потому что он, видите ли, бинарники, которые компиляет, ещё и запускает позже
|
Где всего 8 ядер, из них 6 - дохлых |
@plzombie , так не надо всякой дичью заниматься. Я вот STEX пользую, чтобы сканы обрабатывать, а не чтобы с монитора на монитор его жонглировать. PS: Когда у меня пол монитора вышло из строя (левая половина) и я обрезал рабочую область с помощью |
Ну например, у тебя есть какой-нибудь 4к монитор, и ты хочешь масштаб поставить 150%, чтобы всё не было слишком мелко... |
@noobie-iv Ну вот у меня такая вот ошибка. Просто json-файлик не сгенерировался. Кучу времени убил не пойми на что чтобы получить это:
|
Возможно, встроенные стили завязаны на "px", а не на "em", и с ростом шрифта не увеличивают отступы. Мне вот в STU не хватает темной темы, потому что встроенная под вынь глючит: то линий не видно, то надписи перекрываются. Я по гитхабу поискал - из нескольких десятков ни одна не подошла. Сижу, свою рисую. Подглядываю в аналогах - везде пиксели прошиты.
Я, конечно, не прогер. Но разве программирование не все такое? Мне всего несколько мелочей надо в STU поправить, я сюда за ними и пришел. Но уже несколько месяцев ни одну из них не могу сделать. Сначала освой долбаный cmake. Потом долбаный git. Потом долбаный ssh. Потом долбаный linux. Эта рекурсия вообще когда-нибудь заканчивается? 😄 |
Там в чём проблема. Сначала надо выкачать зависимости. Но не стандартно |
@plzombie say:
Всё-таки я "слегка" был неправ. Это в самом виджете опции "AUTO|MANUAL" переключаются бимодальным образом. А вот сам список опций: scantailor-experimental/src/AutoManualMode.h Lines 22 to 26 in aafb67f
спокойно расширяется. Щаз добавил: enum AutoManualMode
{
MODE_NONE,
MODE_AUTO,
MODE_MANUAL
}; , но вот логику выбора всего изображения в самом виджете select_content наладить не могу. Особенно тяжко моё понимание в случае деварпинга. Да и без деварпинга не клеется. |
@plzombie , посмотрел я тут (в связи с оповещениями), кого ты озвездячивал и вопрос: могу тебя в https://github.com/Sound-Linux-More, https://github.com/IPOL-Fork и https://github.com/Special-graphic-formats заинвокеть. Надо? ❓ |
@zvezdochiot давай |
@plzombie , сделал: ORG.SLM, ORG.IPOL, ORG.SGF. |
@zvezdochiot @noobie-iv Я тут подниму в очередной раз старую тему. Нашёл случайно вот этот вот репозиторий на sourceforge https://sourceforge.net/projects/fsu0413-qtbuilds/files/ |
Ткнул пару наугад. На 6.7.2 собирается. На 4.8.7 - нет, надо править cmake для подддержки Qt4. |
А зачем вам Qt4... Qt 5.7.1 последний поддерживающий WinXP вроде. Древнее 5.6 ничего не нужно, если только вы под смартфоны Nokia собирать не планируете. STU собирался мной на Win7 с поддержкой WinXP. Нюанс был в том что в VS (и есть ограничение по макс версии IDE VS поддерживающей XP, вроде 2013 ) для всех компонентов проекта и зависимостей нужно было выбрать платформу v120_xp, а не v120 (дефолт) в настройках или что-то типа того. А оно постоянно слетало и я не разобрался почему. И даже скрипт вроде писал, чтобы патчить файлы проекта проставляя правильную платформу с поддержкой XP. Что-то такое вспоминаю. В общем, если все правильно сделать Qt5 WinXP поддержит |
@trufanov-nok Вроде Qt 5.6 официально поддерживаемая линейка. 5.7 уже ничего не гарантирует |
Александр (aka @trufanov-nok ), а чего последний PR в STU не принимаете? Очень знатный порог Grad (aka "Gradient snip") получился, в последнее время в STEX использую в 99% случаев именно его (radius=5, coef=0.75), а в оставшемся 1% - Mean или Otsu (aka BiModal). |
Сразу посмотреть времени не было, а потом забыл. |
Александр (aka @trufanov-nok ), настройки из папки "Scan Tailor Universal" в папку "Scan Tailor" не забудьте перенести. А то будете потом: "А кто это сделал?! А куда всё подевалось?!" 😄 |
Hi @plzombie , @trufanov-nok .
cmake
, вносите смело. Для повышения шансов на успех прилагаю свои сборочные файлы: scantailor-experimental-0.2023.07.27-build.zip (Linux devuan-zvezdochiot 5.10.0-23-amd64 #1 SMP Debian 5.10.179-1 (2023-05-12) x86_64 GNU/Linux
)The text was updated successfully, but these errors were encountered: