• Software Building Status. A Growing Annoyance.

    From Nux Vomica@21:1/5 to All on Tue Jun 24 17:52:09 2025
    XPost: comp.os.linux.misc

    I build my own system from scratch, both the kernel and all
    software packages. If automation is employed the process is
    painless and quick -- even easier than installing a distro.

    But there is a growing problem.

    When I first started using GNU/Linux all software packages
    were configured and built using GNU Autotools. The Autotools
    process, for the builder at least, is fantastically simple
    and very easy to automate.

    However, for the programmer, creating the necessary configure
    scripts for Autotools can be a severe headache.

    Thus, other build systems were created and more and more software
    packages are moving to them. On contemporary GNU/Linux, the most
    commonly used alternate build systems are:

    Cmake

    Meson (using Ninja as backend)

    So what's the problem?

    The difficulty is that now the software builder has to learn
    several different systems and things are no longer as simple
    as they once were with Autotools. Compared to Autotools, these
    alternative build systems are decidedly more complex for the
    builder even if they might make things easier for the programmer.

    I am always in favor of choice. In fact, choice is one of the
    great strengths of GNU/Linux. Yet when it comes to software
    building from source I feel that only a single protocol is
    necessary.

    It is definitely a conundrum.

    What are your thoughts (if you have any at all)?



    --
    Systemd: solving all the problems that you never knew you had.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Beej Jorgensen@21:1/5 to nv@linux.rocks on Tue Jun 24 19:27:30 2025
    In article <pan$be9fc$809aad21$e409cc51$526fec52@linux.rocks>,
    Nux Vomica <nv@linux.rocks> wrote:
    [...] Autotools [...] Cmake [...] Meson
    What are your thoughts

    I kind of hate them all, TBH. I dream of writing my own sh-based build
    system that's near-zero non-POSIX dependencies, is lightweight, and does everything necessary--except at the end of the day we all know what I'd
    end-up building: autotools!

    *sigh*

    The only thing that makes me feel better is the world's gradual
    convergence on something POSIX-y and C-standard-y and that maybe,
    someday, that will afford us a really simple and portable build system.

    --
    Brian "Beej Jorgensen" Hall | beej@beej.us

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marc Haber@21:1/5 to Nux Vomica on Wed Jun 25 07:31:47 2025
    Nux Vomica <nv@linux.rocks> wrote:
    What are your thoughts (if you have any at all)?

    I tried to build everything myself as well, when I started Linux back
    in the last century. Took me a few months to realize that the work of
    all those smart people building the distributions (even SuSE but
    especially Debian) is too darn good to not make use of it. Have been a
    happy Debian user ever since.

    If you insist on actually BUILDING things yourself, make use of the
    darn good work of the people who make a locally building OS like
    Gentoo or one of the BSDs. Or, become lazy and just use Debian.

    Your life is too short to repeat work that has already been done.

    Greetings
    Marc
    --
    ---------------------------------------------------------------------------- Marc Haber | " Questions are the | Mailadresse im Header Rhein-Neckar, DE | Beginning of Wisdom " |
    Nordisch by Nature | Lt. Worf, TNG "Rightful Heir" | Fon: *49 6224 1600402

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Marc Haber on Wed Jun 25 06:51:10 2025
    On Wed, 25 Jun 2025 07:31:47 +0200, Marc Haber wrote:

    Or, become lazy and just use Debian.

    Your life is too short to repeat work that has already been done.

    Let an off-the-shelf distro like Debian take care of the 99% of your
    software needs, and reserve your l33t project-building sk1llz for the 1%
    that needs it.

    Like no prebuilt FFmpeg package can be (legally) offered with both “-- enable-nonfree” and “--enable-gpl” options enabled. So if you want all that, you have to build your own.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From rbowman@21:1/5 to Marc Haber on Wed Jun 25 07:07:35 2025
    On Wed, 25 Jun 2025 07:31:47 +0200, Marc Haber wrote:

    Nux Vomica <nv@linux.rocks> wrote:
    What are your thoughts (if you have any at all)?

    I tried to build everything myself as well, when I started Linux back in
    the last century. Took me a few months to realize that the work of all
    those smart people building the distributions (even SuSE but especially Debian) is too darn good to not make use of it. Have been a happy Debian
    user ever since.

    I've got not so pleasant memories of having to build something from
    tarballs. Sawfish, maybe? That meant you had to build gtk from tarballs,
    which meant you had to build its dependencies and so forth ad nauseum.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Borax Man@21:1/5 to Nux Vomica on Wed Jun 25 11:18:56 2025
    On 2025-06-24, Nux Vomica <nv@linux.rocks> wrote:

    [...]


    What are your thoughts (if you have any at all)?


    For my small projects, I've used autotools, cmake, qmake and a simple
    makefile.

    Despite using different tools, I've come to the conclusion, as someone
    who has distributed small programs and built many, that the devil you
    know is better than the one you don't. Its more of a pain having to
    install and work different build tools, than just use the one (albeit
    complex and dated) that works.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nux Vomica@21:1/5 to Marc Haber on Wed Jun 25 16:21:27 2025
    On Wed, 25 Jun 2025 07:31:47 +0200, Marc Haber wrote:


    If you insist on actually BUILDING things yourself, make use of the
    darn good work of the people who make a locally building OS like
    Gentoo or one of the BSDs. Or, become lazy and just use Debian.


    Your comment is totally off topic, but I will respond nevertheless.

    I do use a hybrid Gentoo/LFS approach which does most of the
    building. But not all software packages are available with
    Gentoo Portage. For those external packages one must create one's
    own custom ebuild scripts. Fortunately, Gentoo allows this and much
    else.

    However, as I mentioned, many packages are moving away from
    the traditional GNU Autotools and this requires the custom builder
    to learn many different build systems. As a suggestion I proposed
    that developers should converge on a single build system.

    Currently, most of the world uses the SI units (a.k.a. the metric
    system) for engineering and scientific purposes. But in the USA
    and British Commonwealth both the old English and SI systems are
    in widespread use. This necessitates, for example, that auto
    mechanics maintain two different sets of tools which can be quite
    expensive.

    I do not like GNU/Linux standards of any kind but the increasingly
    disparate build systems are causing problems. Building GNU/Linux
    should be accessible to everyone and not just the distros that can
    employ paid specialists.


    --
    Systemd: solving all the problems that you never knew you had.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Nux Vomica@21:1/5 to Computer Nerd Kev on Sun Jun 29 13:28:12 2025
    XPost: comp.os.linux.misc

    On 25 Jun 2025 09:06:52 +1000, Computer Nerd Kev wrote:


    The CMake developers ignored requests for an equivalent to
    "./configure --help" early on, willfully making the transition
    difficult for software builders.


    Actually, Cmake does have an equivalent. Here are the steps.

    1) Unpack a source file.

    2) Create a "build" directory in the source root and then
    "cd build."

    3) Execute "cmake -LAH .. "

    This will produce a LONG list of options. (See the output
    for Pan below.)

    Automation scripts are possible with Cmake but they need
    to be more complex on account of the above.





    If looking for new software that I'll need to build myself, then
    CMake is an immediate turn-off - I'll choose an alternative.


    Hopefully, an adequate alternative will exist, but usually it
    won't.

    Anyway here is the Cmake "help" output for the Pan newsreader.

    cmake -LAH ..

    -- Building Pan version 0.163 (Kryvyi Rih)
    -- platform: Linux-6.15.0
    -- Configuring done (0.1s)
    -- Generating done (0.1s)
    -- Build files have been written to: /tmp/build/pan-v0.163/build
    -- Cache values
    // Build the testing tree.
    BUILD_TESTING:BOOL=ON

    // Path to a program.
    CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line

    // Path to a program.
    CMAKE_AR:FILEPATH=/usr/bin/ar

    // Choose the type of build, options are: None Debug Release RelWithDebInfo MinSizeRel ...
    CMAKE_BUILD_TYPE:STRING=

    // Enable/Disable color output during build.
    CMAKE_COLOR_MAKEFILE:BOOL=ON

    // CXX compiler
    CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++

    // A wrapper around 'ar' adding the appropriate '--plugin' option for the GCC compiler
    CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar

    // A wrapper around 'ranlib' adding the appropriate '--plugin' option for the GCC compiler
    CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib

    // Flags used by the CXX compiler during all build types. CMAKE_CXX_FLAGS:STRING=-O2 -DNDEBUG -pipe -flto=9 -fuse-linker-plugin -march=native -malign-data=cacheline -mvzeroupper -floop-interchange -floop-strip-mine -floop-block -fno-stack-protector -mindirect-branch=keep -mfunction-return=keep -mharden-sls=none
    -fcf-protection=none -Wl,-z,norelro -U_FORTIFY_SOURCE -L/usr/local/lib64 -I/usr/local/include

    // Flags used by the CXX compiler during DEBUG builds. CMAKE_CXX_FLAGS_DEBUG:STRING=-g

    // Flags used by the CXX compiler during MINSIZEREL builds. CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG

    // Flags used by the CXX compiler during RELEASE builds. CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG

    // Flags used by the CXX compiler during RELWITHDEBINFO builds. CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG

    // C compiler
    CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc

    // A wrapper around 'ar' adding the appropriate '--plugin' option for the GCC compiler
    CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar

    // A wrapper around 'ranlib' adding the appropriate '--plugin' option for the GCC compiler
    CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib

    // Flags used by the C compiler during all build types. CMAKE_C_FLAGS:STRING=-O2 -DNDEBUG -pipe -flto=9 -fuse-linker-plugin -march=native -malign-data=cacheline -mvzeroupper -floop-interchange -floop-strip-mine -floop-block -fno-stack-protector -mindirect-branch=keep -mfunction-return=keep -mharden-sls=none -
    fcf-protection=none -Wl,-z,norelro -U_FORTIFY_SOURCE -L/usr/local/lib64 -I/usr/local/include

    // Flags used by the C compiler during DEBUG builds. CMAKE_C_FLAGS_DEBUG:STRING=-g

    // Flags used by the C compiler during MINSIZEREL builds. CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG

    // Flags used by the C compiler during RELEASE builds. CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG

    // Flags used by the C compiler during RELWITHDEBINFO builds. CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG

    // Path to a program.
    CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND

    // Flags used by the linker during all build types. CMAKE_EXE_LINKER_FLAGS:STRING=-Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu -Wl,--sort-common -Wl,-z,norelro -O2 -DNDEBUG -pipe -flto=9 -fuse-linker-plugin -march=native -malign-data=cacheline -mvzeroupper -floop-interchange -floop-strip-mine -floop-block
    -fno-stack-protector -mindirect-branch=keep -mfunction-return=keep -mharden-sls=none -fcf-protection=none -Wl,-z,norelro -U_FORTIFY_SOURCE -L/usr/local/lib64 -I/usr/local/include

    // Flags used by the linker during DEBUG builds. CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING=

    // Flags used by the linker during MINSIZEREL builds. CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING=

    // Flags used by the linker during RELEASE builds. CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING=

    // Flags used by the linker during RELWITHDEBINFO builds. CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING=

    // Enable/Disable output of compile commands during generation. CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=

    // User executables (bin)
    CMAKE_INSTALL_BINDIR:PATH=bin

    // Read-only architecture-independent data (DATAROOTDIR) CMAKE_INSTALL_DATADIR:PATH=

    // Read-only architecture-independent data root (share) CMAKE_INSTALL_DATAROOTDIR:PATH=share

    // Documentation root (DATAROOTDIR/doc/PROJECT_NAME)
    CMAKE_INSTALL_DOCDIR:PATH=

    // C header files (include)
    CMAKE_INSTALL_INCLUDEDIR:PATH=include

    // Info documentation (DATAROOTDIR/info)
    CMAKE_INSTALL_INFODIR:PATH=

    // Object code libraries (lib64)
    CMAKE_INSTALL_LIBDIR:PATH=lib64

    // Program executables (libexec)
    CMAKE_INSTALL_LIBEXECDIR:PATH=libexec

    // Locale-dependent data (DATAROOTDIR/locale)
    CMAKE_INSTALL_LOCALEDIR:PATH=

    // Modifiable single-machine data (var)
    CMAKE_INSTALL_LOCALSTATEDIR:PATH=var

    // Man documentation (DATAROOTDIR/man)
    CMAKE_INSTALL_MANDIR:PATH=

    // C header files for non-gcc (/usr/include) CMAKE_INSTALL_OLDINCLUDEDIR:PATH=/usr/include

    // Install path prefix, prepended onto install directories. CMAKE_INSTALL_PREFIX:PATH=/usr/local

    // Run-time variable data (LOCALSTATEDIR/run)
    CMAKE_INSTALL_RUNSTATEDIR:PATH=

    // System admin executables (sbin)
    CMAKE_INSTALL_SBINDIR:PATH=sbin

    // Modifiable architecture-independent data (com) CMAKE_INSTALL_SHAREDSTATEDIR:PATH=com

    // Read-only single-machine data (etc)
    CMAKE_INSTALL_SYSCONFDIR:PATH=etc

    // Path to a program.
    CMAKE_LINKER:FILEPATH=/usr/bin/ld

    // Path to a program.
    CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/gmake

    // Flags used by the linker during the creation of modules during all build types.
    CMAKE_MODULE_LINKER_FLAGS:STRING=-Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu -Wl,--sort-common -Wl,-z,norelro -O2 -DNDEBUG -pipe -flto=9 -fuse-linker-plugin -march=native -malign-data=cacheline -mvzeroupper -floop-interchange -floop-strip-mine -floop-
    block -fno-stack-protector -mindirect-branch=keep -mfunction-return=keep -mharden-sls=none -fcf-protection=none -Wl,-z,norelro -U_FORTIFY_SOURCE -L/usr/local/lib64 -I/usr/local/include

    // Flags used by the linker during the creation of modules during DEBUG builds. CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING=

    // Flags used by the linker during the creation of modules during MINSIZEREL builds.
    CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING=

    // Flags used by the linker during the creation of modules during RELEASE builds.
    CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING=

    // Flags used by the linker during the creation of modules during RELWITHDEBINFO builds.
    CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING=

    // Path to a program.
    CMAKE_NM:FILEPATH=/usr/bin/nm

    // Path to a program.
    CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy

    // Path to a program.
    CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump

    // Path to a program.
    CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib

    // Path to a program.
    CMAKE_READELF:FILEPATH=/usr/bin/readelf

    // Flags used by the linker during the creation of shared libraries during all build types.
    CMAKE_SHARED_LINKER_FLAGS:STRING=-Wl,--as-needed -Wl,-O1 -Wl,--hash-style=gnu -Wl,--sort-common -Wl,-z,norelro -O2 -DNDEBUG -pipe -flto=9 -fuse-linker-plugin -march=native -malign-data=cacheline -mvzeroupper -floop-interchange -floop-strip-mine -floop-
    block -fno-stack-protector -mindirect-branch=keep -mfunction-return=keep -mharden-sls=none -fcf-protection=none -Wl,-z,norelro -U_FORTIFY_SOURCE -L/usr/local/lib64 -I/usr/local/include

    // Flags used by the linker during the creation of shared libraries during DEBUG builds.
    CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING=

    // Flags used by the linker during the creation of shared libraries during MINSIZEREL builds.
    CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING=

    // Flags used by the linker during the creation of shared libraries during RELEASE builds.
    CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING=

    // Flags used by the linker during the creation of shared libraries during RELWITHDEBINFO builds.
    CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING=

    // If set, runtime paths are not added when installing shared libraries, but are added when building.
    CMAKE_SKIP_INSTALL_RPATH:BOOL=NO

    // If set, runtime paths are not added when using shared libraries. CMAKE_SKIP_RPATH:BOOL=NO

    // Flags used by the linker during the creation of static libraries during all build types.
    CMAKE_STATIC_LINKER_FLAGS:STRING=

    // Flags used by the linker during the creation of static libraries during DEBUG builds.
    CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING=

    // Flags used by the linker during the creation of static libraries during MINSIZEREL builds.
    CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING=

    // Flags used by the linker during the creation of static libraries during RELEASE builds.
    CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING=

    // Flags used by the linker during the creation of static libraries during RELWITHDEBINFO builds.
    CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING=

    // Path to a program.
    CMAKE_STRIP:FILEPATH=/usr/bin/strip

    // Path to a program.
    CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND

    // If this value is on, makefiles will be generated without the .SILENT directive, and all commands will be echoed to the console during the make. This is useful for debugging only. With Visual Studio IDE projects all commands are done without /nologo.
    CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE

    // Path to the coverage program that CTest uses for performing coverage inspection
    COVERAGE_COMMAND:FILEPATH=/usr/bin/gcov

    // Extra command line flags to pass to the coverage tool COVERAGE_EXTRA_FLAGS:STRING=-l

    // How many times to retry timed-out CTest submissions. CTEST_SUBMIT_RETRY_COUNT:STRING=3

    // How long to wait between timed-out CTest submissions. CTEST_SUBMIT_RETRY_DELAY:STRING=5

    // Maximum time allowed before CTest will kill the test. DART_TESTING_TIMEOUT:STRING=1500

    // built in user manual (default: off)
    ENABLE_MANUAL:BOOL=OFF

    // Path to a program.
    GETTEXT_MSGFMT_EXECUTABLE:FILEPATH=/usr/bin/msgfmt

    // Path to a program.
    GETTEXT_MSGMERGE_EXECUTABLE:FILEPATH=/usr/bin/msgmerge

    // Command to build the project
    MAKECOMMAND:STRING=/usr/bin/cmake --build . --config "${CTEST_CONFIGURATION_TYPE}"

    // Path to the memory checking command, used for memory error detection. MEMORYCHECK_COMMAND:FILEPATH=MEMORYCHECK_COMMAND-NOTFOUND

    // File that contains suppressions for the memory checker MEMORYCHECK_SUPPRESSIONS_FILE:FILEPATH=

    // Arguments to supply to pkg-config
    PKG_CONFIG_ARGN:STRING=

    // pkg-config executable
    PKG_CONFIG_EXECUTABLE:FILEPATH=/usr/bin/pkg-config

    // Name of the computer/site where compile is being run SITE:STRING=ajax.firstbooks

    // enable D-Bus support (default: no)
    WANT_DBUS:BOOL=OFF

    // enable GNOME Keyring or libsecret support (default: off)
    WANT_GKR:BOOL=OFF

    // enable GMime cryptography support (default: no)
    WANT_GMIME_CRYPTO:BOOL=OFF

    // enable GnuTLS support (default: on)
    WANT_GNUTLS:BOOL=ON

    // enable Gspell support (default: on)
    WANT_GSPELL:BOOL=ON

    // enable libnotify support (default: off)
    WANT_NOTIFY:BOOL=OFF

    // enable WebKitGTK support (experimental, default: off)
    WANT_WEBKIT:BOOL=OFF

    // Path to a file.
    ZLIB_INCLUDE_DIR:PATH=/usr/include

    // Path to a library.
    ZLIB_LIBRARY_DEBUG:FILEPATH=ZLIB_LIBRARY_DEBUG-NOTFOUND

    // Path to a library.
    ZLIB_LIBRARY_RELEASE:FILEPATH=/usr/lib64/libz.so

    // Path to a library. pkgcfg_lib_GLIB_glib-2.0:FILEPATH=/usr/lib64/libglib-2.0.so

    // Path to a library. pkgcfg_lib_GMIME_gio-2.0:FILEPATH=/usr/lib64/libgio-2.0.so

    // Path to a library. pkgcfg_lib_GMIME_glib-2.0:FILEPATH=/usr/lib64/libglib-2.0.so

    // Path to a library. pkgcfg_lib_GMIME_gmime-3.0:FILEPATH=/usr/lib64/libgmime-3.0.so

    // Path to a library. pkgcfg_lib_GMIME_gobject-2.0:FILEPATH=/usr/lib64/libgobject-2.0.so

    // Path to a library.
    pkgcfg_lib_GNUTLS_gnutls:FILEPATH=/usr/lib64/libgnutls.so

    // Path to a library. pkgcfg_lib_GSPELL_atk-1.0:FILEPATH=/usr/lib64/libatk-1.0.so

    // Path to a library.
    pkgcfg_lib_GSPELL_cairo:FILEPATH=/usr/lib64/libcairo.so

    // Path to a library. pkgcfg_lib_GSPELL_cairo-gobject:FILEPATH=/usr/lib64/libcairo-gobject.so

    // Path to a library. pkgcfg_lib_GSPELL_enchant-2:FILEPATH=/usr/lib64/libenchant-2.so

    // Path to a library.
    pkgcfg_lib_GSPELL_gdk-3:FILEPATH=/usr/lib64/libgdk-3.so

    // Path to a library. pkgcfg_lib_GSPELL_gdk_pixbuf-2.0:FILEPATH=/usr/lib64/libgdk_pixbuf-2.0.so

    // Path to a library. pkgcfg_lib_GSPELL_gio-2.0:FILEPATH=/usr/lib64/libgio-2.0.so

    // Path to a library. pkgcfg_lib_GSPELL_glib-2.0:FILEPATH=/usr/lib64/libglib-2.0.so

    // Path to a library. pkgcfg_lib_GSPELL_gobject-2.0:FILEPATH=/usr/lib64/libgobject-2.0.so

    // Path to a library. pkgcfg_lib_GSPELL_gspell-1:FILEPATH=/usr/lib64/libgspell-1.so

    // Path to a library.
    pkgcfg_lib_GSPELL_gtk-3:FILEPATH=/usr/lib64/libgtk-3.so

    // Path to a library. pkgcfg_lib_GSPELL_harfbuzz:FILEPATH=/usr/lib64/libharfbuzz.so

    // Path to a library. pkgcfg_lib_GSPELL_pango-1.0:FILEPATH=/usr/lib64/libpango-1.0.so

    // Path to a library. pkgcfg_lib_GSPELL_pangocairo-1.0:FILEPATH=/usr/lib64/libpangocairo-1.0.so

    // Path to a library.
    pkgcfg_lib_GTK3_atk-1.0:FILEPATH=/usr/lib64/libatk-1.0.so

    // Path to a library.
    pkgcfg_lib_GTK3_cairo:FILEPATH=/usr/lib64/libcairo.so

    // Path to a library. pkgcfg_lib_GTK3_cairo-gobject:FILEPATH=/usr/lib64/libcairo-gobject.so

    // Path to a library.
    pkgcfg_lib_GTK3_gdk-3:FILEPATH=/usr/lib64/libgdk-3.so

    // Path to a library. pkgcfg_lib_GTK3_gdk_pixbuf-2.0:FILEPATH=/usr/lib64/libgdk_pixbuf-2.0.so

    // Path to a library.
    pkgcfg_lib_GTK3_gio-2.0:FILEPATH=/usr/lib64/libgio-2.0.so

    // Path to a library. pkgcfg_lib_GTK3_glib-2.0:FILEPATH=/usr/lib64/libglib-2.0.so

    // Path to a library. pkgcfg_lib_GTK3_gobject-2.0:FILEPATH=/usr/lib64/libgobject-2.0.so

    // Path to a library.
    pkgcfg_lib_GTK3_gtk-3:FILEPATH=/usr/lib64/libgtk-3.so

    // Path to a library. pkgcfg_lib_GTK3_harfbuzz:FILEPATH=/usr/lib64/libharfbuzz.so

    // Path to a library. pkgcfg_lib_GTK3_pango-1.0:FILEPATH=/usr/lib64/libpango-1.0.so

    // Path to a library. pkgcfg_lib_GTK3_pangocairo-1.0:FILEPATH=/usr/lib64/libpangocairo-1.0.so





    --
    Systemd: solving all the problems that you never knew you had.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Chris Ahlstrom@21:1/5 to Nux Vomica on Sun Jun 29 13:17:59 2025
    Nux Vomica wrote this post while blinking in Morse code:

    On 25 Jun 2025 09:06:52 +1000, Computer Nerd Kev wrote:

    The CMake developers ignored requests for an equivalent to
    "./configure --help" early on, willfully making the transition
    difficult for software builders.

    Actually, Cmake does have an equivalent. Here are the steps.

    1) Unpack a source file.

    2) Create a "build" directory in the source root and then
    "cd build."

    3) Execute "cmake -LAH .. "

    This will produce a LONG list of options. (See the output
    for Pan below.)

    Automation scripts are possible with Cmake but they need
    to be more complex on account of the above.

    If looking for new software that I'll need to build myself, then
    CMake is an immediate turn-off - I'll choose an alternative.

    I tried cmake a couple of decades ago, and quickly decided it was
    just a complex as Automake, which I was already used to.

    Apparently the latest cmake is more tractable. It also
    incorporated some feature requests from the Qt developers, and is
    now the default build system for Qt.

    My biggest project has used Automake since its inception. It's
    pretty slow and has a couple of features that annoy me (e.g. those
    damn Makefile.in files and differences in autoconf version between
    systems.)

    That same project also has a qmake setup, which I started when
    debugging on one system with the automake build didn't work. The
    "benefit" of qmake is that the project builds on Windows as well.

    For my newest projects (various libraries and their test apps)
    I use Meson. Significant learning curve, but it is fast and
    can also download and build dependencies from git subprojects.

    Years ago I looked into bjam and liked it, but it fell down when
    trying to build Doxygen output.

    <snip>

    --
    If we won't stand together, we don't stand a chance.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Computer Nerd Kev@21:1/5 to Nux Vomica on Mon Jun 30 09:13:07 2025
    XPost: comp.os.linux.misc

    In comp.os.linux.misc Nux Vomica <nv@linux.rocks> wrote:
    On 25 Jun 2025 09:06:52 +1000, Computer Nerd Kev wrote:
    The CMake developers ignored requests for an equivalent to
    "./configure --help" early on, willfully making the transition
    difficult for software builders.

    Actually, Cmake does have an equivalent. Here are the steps.

    1) Unpack a source file.

    2) Create a "build" directory in the source root and then
    "cd build."

    3) Execute "cmake -LAH .. "

    This will produce a LONG list of options. (See the output
    for Pan below.)

    That looks similar to what I've been doing which is reading
    CMakeCache.txt. Hard to read with none of the sorting between
    different types of options like you get with "./configure --help".
    More like editing Makefiles manually, and even projects where you
    have to do that usually write more detail in the comments before
    variables than many of these CMake projects tend to have.

    This comment in your example is _really_ descriptive:

    // Path to a program.
    CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND

    So it didn't find "a program". Great, thanks...

    --
    __ __
    #_ < |\| |< _#

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Lawrence D'Oliveiro@21:1/5 to Computer Nerd Kev on Sun Jun 29 23:50:01 2025
    XPost: comp.os.linux.misc

    On 30 Jun 2025 09:13:07 +1000, Computer Nerd Kev wrote:

    This comment in your example is _really_ descriptive:

    // Path to a program. CMAKE_TAPI:FILEPATH=CMAKE_TAPI-NOTFOUND

    So it didn't find "a program". Great, thanks...

    That’s what the debugging options are for.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?UTF-8?Q?St=C3=A9phane?= CARPENTIE@21:1/5 to All on Fri Jul 4 19:40:27 2025
    Le 25-06-2025, Marc Haber <mh+usenetspam1118@zugschl.us> a écrit :

    Your life is too short to repeat work that has already been done.

    Nope. If you want to learn, at some point you have to do what others
    have already done. So, to do again what others have done is not a bad
    thing by itself, it depends on the reason why you want to do it.

    --
    Si vous avez du temps à perdre :
    https://scarpet42.gitlab.io

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)