LINUX.ORG.RU
Ответ на: комментарий от wandrien

Лапками ставишь automake и autoconf и вперёд.

…правильной версии (и не обязательно самой новой) и с кастомными патчами.

X512 ★★★★★
()
Последнее исправление: X512 (всего исправлений: 1)
Ответ на: комментарий от X512

Не нужно. Его всё равно придётся перегенерировать под платформу, отличную от платформы разработчика.

– Как не придётся? Вывсёврёти!

wandrien ★★
() автор топика
Ответ на: комментарий от Shadow

Оооо, ты напомнил мне этот страшный сон, мой мозг как мог стремился забыть это и ему почти удалось.

cvs-255 ★★★★★
()
Ответ на: комментарий от X512

Про твою фантазию я уже знаю из других топиков, можешь не продолжать. То софт с TUI устарел, то на automake патчи нужны кастомные.

wandrien ★★
() автор топика

Автор же типичный великовозрастный нытик с синдромом «раньшебылолучше». Причем забавно, что в сфере разработки СПО ТС вообще ничем не примечателен. Видимо все на что он горазд это допиливание никому не нужного хлама и разработка недо-DE с нескучными обоями, зато самомнение льется через край. Неудивительно, что у него тут и там проскакивают пассажи про плохие корпорации, поедание говна, стадо и т.п. Короче, очередной «нитакойкаквсе» пришел на форум плакать, что другие люди делают не так, как хочется ему, ничего нового.

moonmadness
()
Ответ на: комментарий от wandrien

Нормальный опенсорс софт распространяется через git или иную систему контроля версий, а не всякие тарболлы

cvs-255 ★★★★★
()
Ответ на: комментарий от Harald

CMakeLists.txt конечно же никогда править не нужно

Править нужно исходники, а не генерируемые файлы.

X512 ★★★★★
()
Ответ на: комментарий от wandrien

для сборки релизнутого софта и для его разработки требуется разный набор инструментов?

Вообще то нет. Софт на компьютере разработчика и не-разработчика должен собираться одинаковым образом. Хотя бы чтобы избежать ситуации «Пользователь: есть проблема такая-то, разработчик: умвр»

cvs-255 ★★★★★
()
Ответ на: комментарий от Harald

configure.ac человекочитаемый, а не сгенерированный.

Ну вот пусть он и будет. А сгенерированные файлы в исходниках релизов не нужны.

X512 ★★★★★
()
Ответ на: комментарий от X512

Но практика почему-то замыслу не всегда соответствует.

Лучше сразу похерить замысел, тогда и за практику ни перед кем оправдываться не придётся.

Как в вашем любимом cmake был свой отдельный набор костылей под каждую библиотеку и платформу или их комбинацию, с эвристикой на эвристике – оч надёжно. И разработчикам предлагалось еще писать собственные. А сниппетами кода делились на стековерфлоу как сокровенными знаниями.

Всё что угодно, лишь бы не использовать кроссплатформенный и поддерживаемый тысячами библиотек pkgconfig.

NIH-синдром жесток.

wandrien ★★
() автор топика
Ответ на: комментарий от wandrien

Как в вашем любимом cmake был свой отдельный набор костылей под каждую библиотеку и платформу или их комбинацию

Ты о pkg-config чтоли?

cvs-255 ★★★★★
()
Ответ на: комментарий от Harald

Ну это уже скорее недостаток автотулз, что они жутко тормозят и приходится пользователю брать не исходники, а еще и сгенерированные файлы.

В нормальной системе сборки такого быть не должно. Должен быть человекочитаемый исходник, по которому быстро идет сборка. И никакого приаттачивания сгенерированных файлов к проекту

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 1)
Ответ на: комментарий от wandrien

Всё что угодно, лишь бы не использовать кроссплатформенный и поддерживаемый тысячами библиотек pkgconfig.

cmake, meson и многие другие системы сборки поддерживают pkgconfig.

Как в вашем любимом cmake был свой отдельный набор костылей под каждую библиотеку и платформу или их комбинацию, с эвристикой на эвристике – оч надёжно.

Можно обходиться и без них.

X512 ★★★★★
()
Ответ на: комментарий от X512

ну если системы сборки для кого-то слишком сложные, пусть качает бинарники, вроде всё так и должно быть

Harald ★★★★★
()
Ответ на: комментарий от Harald

Остальные хотя бы без проблем распространяются в виде чисто исходных конфигурационных файлов, не требующих «для экономии времени» дополнительно прикладывать сгенерированные файлы

Ну и шаблоны m4 это жопа в плане синтаксиса.

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 2)
Ответ на: комментарий от cvs-255

CMakeLists.txt человекочитаемый, а не сгенерированный.

Сходу этого и не скажешь.

EXL ★★★★★
()
Ответ на: комментарий от Harald

Странно, но в причине треда сборка под сложный meson занимает 500 строк, а при удалении сборки под простой autotools удалили 1800 строк.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от X512

Можно обходиться и без них.

А можно и не обходиться.

These modules search for third-party software. They are normally called through the find_package() command.

    FindALSA
    FindArmadillo
    FindASPELL
    FindAVIFile
    FindBISON
    FindBLAS
    FindBacktrace
    FindBoost
    FindBullet
    FindBZip2
    FindCABLE
    FindCoin3D
    FindCups
    FindCUDAToolkit
    FindCURL
    FindCurses
    FindCVS
    FindCxxTest
    FindCygwin
    FindDart
    FindDCMTK
    FindDevIL
    FindDoxygen
    FindEnvModules
    FindEXPAT
    FindFLEX
    FindFLTK2
    FindFLTK
    FindFontconfig
    FindFreetype
    FindGCCXML
    FindGDAL
    FindGettext
    FindGIF
    FindGit
    FindGLEW
    FindGLUT
    FindGnuplot
    FindGnuTLS
    FindGSL
    FindGTest
    FindGTK2
    FindGTK
    FindHDF5
    FindHg
    FindHSPELL
    FindHTMLHelp
    FindIce
    FindIcotool
    FindICU
    FindImageMagick
    FindIconv
    FindIntl
    FindITK
    FindJasper
    FindJava
    FindJNI
    FindJPEG
    FindKDE3
    FindKDE4
    FindLAPACK
    FindLATEX
    FindLibArchive
    FindLibinput
    FindLibLZMA
    FindLibXml2
    FindLibXslt
    FindLTTngUST
    FindLua50
    FindLua51
    FindLua
    FindMatlab
    FindMFC
    FindMotif
    FindMPEG2
    FindMPEG
    FindMPI
    FindODBC
    FindOpenACC
    FindOpenAL
    FindOpenCL
    FindOpenGL
    FindOpenMP
    FindOpenSceneGraph
    FindOpenSSL
    FindOpenThreads
    FindosgAnimation
    FindosgDB
    Findosg_functions
    FindosgFX
    FindosgGA
    FindosgIntrospection
    FindosgManipulator
    FindosgParticle
    FindosgPresentation
    FindosgProducer
    FindosgQt
    Findosg
    FindosgShadow
    FindosgSim
    FindosgTerrain
    FindosgText
    FindosgUtil
    FindosgViewer
    FindosgVolume
    FindosgWidget
    FindPatch
    FindPerlLibs
    FindPerl
    FindPHP4
    FindPhysFS
    FindPike
    FindPkgConfig
    FindPNG
    FindPostgreSQL
    FindProducer
    FindProtobuf
    FindPython
    FindPython2
    FindPython3
    FindQt3
    FindQt4
    FindQuickTime
    FindRTI
    FindRuby
    FindSDL_image
    FindSDL_mixer
    FindSDL_net
    FindSDL
    FindSDL_sound
    FindSDL_ttf
    FindSelfPackers
    FindSquish
    FindSQLite3
    FindSubversion
    FindSWIG
    FindTCL
    FindTclsh
    FindTclStub
    FindThreads
    FindTIFF
    FindUnixCommands
    FindVTK
    FindVulkan
    FindWget
    FindWish
    FindwxWidgets
    FindXCTest
    FindXalanC
    FindXercesC
    FindX11
    FindXMLRPC
    FindZLIB

Я тут открыл ради интереса пару файлов. А читабельно-то как! Куда там этому замшелому sh. Тут подошли к делу обфускации кода творчески:

  foreach (implementation IN LISTS _PGF_IMPLEMENTATIONS)
    if (implementation STREQUAL "CPython")
      foreach (version IN LISTS _PGF_VERSION)
        foreach (framework IN LISTS _${_PYTHON_PREFIX}_${implementation}_FRAMEWORKS)
          if (EXISTS "${framework}/Versions/${version}")
            list (APPEND framework_paths "${framework}/Versions/${version}")
          endif()
        endforeach()
      endforeach()
    elseif (implementation STREQUAL "IronPython")
      foreach (version IN LISTS _PGF_VERSION)
        foreach (framework IN LISTS _${_PYTHON_PREFIX}_${implementation}_FRAMEWORKS)
          # pick-up all available versions
          file (GLOB versions LIST_DIRECTORIES true RELATIVE "${framework}/Versions/"
                              "${framework}/Versions/${version}*")
          list (SORT versions ORDER DESCENDING)
          list (TRANSFORM versions PREPEND "${framework}/Versions/")
          list (APPEND framework_paths ${versions})
        endforeach()
      endforeach()
    endif()
  endforeach()

Вот после того как мне пришлось пописать и поотлаживать такой код в течение неск. месяцев, я и перевел сборку на autotools. Там по крайней мере при чтении не кровоточат глаза.

wandrien ★★
() автор топика
Ответ на: комментарий от Harald

он кроссплатформенный по замыслу

Только ни macOS, ни Windows, ни Android, ни iOS не поддерживает. Кросс-платформенность уровня /autotools.

А ну да, зато поддерживает всякие там AIX, IRIX, QNX, SCO Unix, Solaris, HP-UX и прочие мёртвые и вытесненные Linux’ом UNIX’ы.

Очень актуально для 2020, да.

EXL ★★★★★
()
Ответ на: комментарий от EXL

Только ни macOS, ни Windows, ни Android, ни iOS не поддерживает. Кросс-платформенность уровня /autotools.

У меня поддерживает

Harald ★★★★★
()
Ответ на: комментарий от Harald

что, прям собранный под linux configure без проблем запускается везде? И даже не требуется пол-линукса затащить в целевую ОС?

Как мне под виндой запустить configure? Без установки всяких msys2 и прочего?

cvs-255 ★★★★★
()
Последнее исправление: cvs-255 (всего исправлений: 2)
Ответ на: комментарий от wandrien

Как в вашем любимом cmake был свой отдельный набор костылей под каждую библиотеку и платформу или их комбинацию, с эвристикой на эвристике – оч надёжно. И разработчикам предлагалось еще писать собственные. А сниппетами кода делились на стековерфлоу как сокровенными знаниями.

Ммм… это самый смак CMake-обосрамса – Оценки хелловорлда тред (комментарий)

EXL ★★★★★
()
Ответ на: комментарий от EXL

Они не мертвы, они просто так пахнут ;) HP даже мёртвый чпукс на мёртвых итаниках поддерживать будет до 2025го. Соляра недавно обновление выкатила, AIX вроде как ещё трепыхается в особо недоступных точках планеты, куда ещё не дошла цивилизация белых людей.

gremlin_the_red ★★★★★
()
Ответ на: комментарий от gremlin_the_red

Ходячие мертвецы из зомби-фильмов тоже шевелятся

cvs-255 ★★★★★
()
Ответ на: комментарий от EXL

Вот да, спасибо за ссылку! Я давно не имею дела с этим адом, так что в красках описать бы не вышло.

wandrien ★★
() автор топика
Ответ на: комментарий от wandrien

These modules search for third-party software. They are normally called through the find_package() command.

Видимо это по большей части для авторов криворуких дистрибутивостроителей. При порте на новые платформы, например на Haiku, иногда приходится часть этого выпиливать и руками прописывать пути или переделывать на pkgconfig.

X512 ★★★★★
()
Ответ на: комментарий от cvs-255

что, прям собранный под linux configure без проблем запускается везде? И даже не требуется пол-линукса затащить в целевую ОС?

Как мне под виндой запустить configure? Без установки всяких msys2 и прочего?

Я дико извиняюсь, но в линуксе сборочный софт тоже нужно затащить, он не идёт из коробки везде в любом дистре

Harald ★★★★★
()
Ответ на: комментарий от gremlin_the_red

Соляра недавно обновление выкатила

Вот по этому JEP видно как Oracle собирается Solaris в будущем поддерживать :^)

https://openjdk.java.net/jeps/381

EXL ★★★★★
()
Ответ на: комментарий от cvs-255

Как мне под виндой запустить configure? Без установки всяких msys2 и прочего?

А как запустить CMakeLists.txt без установки CMake?

wandrien ★★
() автор топика
Ответ на: комментарий от cvs-255

никому эти find модули не нужны, есть pkg-config, которым и пользуются нормальные люди

И который, внезапно, только Linux-only.

EXL ★★★★★
()
Ответ на: комментарий от cvs-255

Можно из линукса под винду кросскомпилировать. Автотулзы этому очень способствуют. И собирается быстрее

Harald ★★★★★
()
Ответ на: комментарий от EXL

И который, внезапно, только Linux-only.

Что в нём Linux-only? Там просто пути и аргументы для компилятора.

wandrien ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.