Re: CMake 4

Roland Hughes via Foxgui-users <[email protected]> Tue, 30 Dec 2025 07:35:17 -0600
Newsgroups gmane.comp.lib.fox-toolkit.user
Message-ID <[email protected]>
This is a multi-part message in MIME format.
--===============4718944333161459794==
Content-Type: multipart/alternative;
 boundary="------------fhvuOAPbR0NsAL9l0FCAad0d"
Content-Language: en-US

This is a multi-part message in MIME format.
--------------fhvuOAPbR0NsAL9l0FCAad0d
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit


On 12/30/2025 5:11 AM, Enno Rehling wrote:
>
> Someone mentioned vcpkg in this thread: While I'm usually in favor of 
> using whatever OS package manager to install dependencies (apt, rpm, 
> brew, or ports), in cases where there is none (Windows, either 32 or 
> 64 bit), vcpkg does a good job. I've never used it outside of Windows, 
> but apparently that should also work (unless, like me, you prefer the 
> native package manager).

That was me.

My first exposure to it has been with creating a Windows installer for 
LsCs, then LsScintilla, so I can have a Windows version of RedDiamond.

I am loathe to replace my existing shell scripts that use native tools 
to build Debian and RPM packages. I have been burned too many times by 
"tools" to generate packages and even ISO files. Can't remember the name 
of it, but there was a GUI tool that would let you spin up a custom ISO 
of Ubuntu: create user accounts, choose the packages, tweak the "live" 
desktop and the installer. Yeah it looked nice. It was certainly simple 
if all you wanted to do was either take stuff out or install stuff from 
the repos. Really sucked trying to add your own (&)(*&)(*.

The following year the package was no longer maintained.

I gave you that little rant because now CPack claims to have RPM, 
Debian, and Windows engines (among others).

https://cmake.org/cmake/help/latest/cpack_gen/rpm.html

https://cmake.org/cmake/help/v3.8/module/CPackRPM.html

Debian

https://cmake.org/cmake/help/latest/cpack_gen/deb.html

https://cmake.org/cmake/help/v3.7/module/CPackDeb.html

Windows

https://cmake.org/cmake/help/book/mastering-cmake/chapter/Packaging%20With%20CPack.html


It's tempting to switch . . . but . . . I've been a victim of 
abandonware before.

https://www.logikalsolutions.com/wordpress/information-technology/thank-you-for-your-future-abandonware/


It's tempting to switch all of the projects to use vcpkg as well. Let 
vcpkg pull in jpeg, sqlite3, etc. packages at time of build and bundle 
what it built with the installation package. That's real tempting. Maybe 
others on this list never get burned by it, but I'm sick of the Agile 
development Linux distros use. *How many of you have had a perfectly 
working executable, the distro powers that be then push out whatever 
shat itself out the ass-end of the last sprint, and now stuff is broken?*

You did nothing wrong, but now your software won't work. Guess who gets 
the call?

I was creating AppImages of RedDiamond to get around this problem.

https://sourceforge.net/projects/reddiamond/files/AppImages/

No good deed goes unpunished. Ubuntu 24 moved to a new version of Fuse 
(which AppImage needs) so you have to instruct people how to install the 
old version of Fuse to make things run.

I was considering Flatpacks for the future . . . but vcpkg might be the 
best way to go.

I would like Jeroen to look at the vcpkg route and chime in. Just how 
much pain would it save you to ONE version of every dependency library 
like jpeg, etc? No longer having to hack around all of those issues

>
> My point seems made: It may be too early to go all-in on CMake 4, and 
> too big a step to take when introducing CMake to Fox all at once. What 
> would be the advantage of using CMake 4 over 3? Are there must-have 
> features that building Fox depends on?
>
> Enno. 

To me, just spouting out that ass sitting on my shoulders, you first 
have to decide

/What are you going to abandon?/

The move to CMake will man FOX no longer runs on many of those platforms 
listed on the documentation page. Not that many, if any, of those 
platforms are still around and I would seriously doubt they are keeping 
current with FOX, but, one has to make the decision.

I can offer a cautionary tale here.

When I posted a message on the CMake boards looking for an example 
project to build a Windows installation package for a library that had 
both run-time and development installations one person offered up their 
own package.

https://github.com/LegalizeAdulthood/iterated-dynamics

It did build just fine on Windows. I noticed they had some verbge in the 
script for Unix so I spun up one of my Ubuntu 18.04 development VMs. 
Died horribly. I did not know that they had broken their Unix/Linux 
support while working on a major update. Then someone else on the CMake 
message board chimed in.

cmake --workflow --preset default

I forget if it was workflow or preset, but, one of those did not exist 
in the version of CMake available for Ubuntu 18.04.

At this point I will rephrase the question.

/What is the oldest version of insert-Linux-distro-here you wish to run on?/

Use the version of CMake that is in their repos and it "should" build on 
all newer ones until CMake becomes mature enough to start deleting major 
features.


> -- 

Roland Hughes, President
Logikal Solutions
(630)-205-1593  (cell)
https://theminimumyouneedtoknow.com
https://infiniteexposure.net
https://johnsmith-book.com

--------------fhvuOAPbR0NsAL9l0FCAad0d
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 8bit

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p><br>
    </p>
    <div class="moz-cite-prefix">On 12/30/2025 5:11 AM, Enno Rehling
      wrote:<br>
    </div>
    <blockquote type="cite"
      cite="mid:[email protected]">
      <br>
      Someone mentioned vcpkg in this thread: While I'm usually in favor
      of using whatever OS package manager to install dependencies (apt,
      rpm, brew, or ports), in cases where there is none (Windows,
      either 32 or 64 bit), vcpkg does a good job. I've never used it
      outside of Windows, but apparently that should also work (unless,
      like me, you prefer the native package manager).
      <br>
    </blockquote>
    <p>That was me. </p>
    <p>My first exposure to it has been with creating a Windows
      installer for LsCs, then LsScintilla, so I can have a Windows
      version of RedDiamond.</p>
    <p>I am loathe to replace my existing shell scripts that use native
      tools to build Debian and RPM packages. I have been burned too
      many times by "tools" to generate packages and even ISO files.
      Can't remember the name of it, but there was a GUI tool that would
      let you spin up a custom ISO of Ubuntu: create user accounts,
      choose the packages, tweak the "live" desktop and the installer.
      Yeah it looked nice. It was certainly simple if all you wanted to
      do was either take stuff out or install stuff from the repos.
      Really sucked trying to add your own (&amp;)(*&amp;)(*.</p>
    <p>The following year the package was no longer maintained.</p>
    <p>I gave you that little rant because now CPack claims to have RPM,
      Debian, and Windows engines (among others).</p>
    <p><a class="moz-txt-link-freetext" href="https://cmake.org/cmake/help/latest/cpack_gen/rpm.html">https://cmake.org/cmake/help/latest/cpack_gen/rpm.html</a></p>
    <p><a class="moz-txt-link-freetext" href="https://cmake.org/cmake/help/v3.8/module/CPackRPM.html">https://cmake.org/cmake/help/v3.8/module/CPackRPM.html</a></p>
    <p>Debian</p>
    <p><a class="moz-txt-link-freetext" href="https://cmake.org/cmake/help/latest/cpack_gen/deb.html">https://cmake.org/cmake/help/latest/cpack_gen/deb.html</a></p>
    <p><a class="moz-txt-link-freetext" href="https://cmake.org/cmake/help/v3.7/module/CPackDeb.html">https://cmake.org/cmake/help/v3.7/module/CPackDeb.html</a></p>
    <p>Windows</p>
    <p><a class="moz-txt-link-freetext" href="https://cmake.org/cmake/help/book/mastering-cmake/chapter/Packaging%20With%20CPack.html">https://cmake.org/cmake/help/book/mastering-cmake/chapter/Packaging%20With%20CPack.html</a></p>
    <p><br>
    </p>
    <p>It's tempting to switch . . . but . . . I've been a victim of
      abandonware before.</p>
    <p><a class="moz-txt-link-freetext" href="https://www.logikalsolutions.com/wordpress/information-technology/thank-you-for-your-future-abandonware/">https://www.logikalsolutions.com/wordpress/information-technology/thank-you-for-your-future-abandonware/</a></p>
    <p><br>
    </p>
    <p>It's tempting to switch all of the projects to use vcpkg as well.
      Let vcpkg pull in jpeg, sqlite3, etc. packages at time of build
      and bundle what it built with the installation package. That's
      real tempting. Maybe others on this list never get burned by it,
      but I'm sick of the Agile development Linux distros use. <b>How
        many of you have had a perfectly working executable, the distro
        powers that be then push out whatever shat itself out the
        ass-end of the last sprint, and now stuff is broken?</b></p>
    <p>You did nothing wrong, but now your software won't work. Guess
      who gets the call?</p>
    <p>I was creating AppImages of RedDiamond to get around this
      problem.</p>
    <p><a class="moz-txt-link-freetext" href="https://sourceforge.net/projects/reddiamond/files/AppImages/">https://sourceforge.net/projects/reddiamond/files/AppImages/</a></p>
    <p>No good deed goes unpunished. Ubuntu 24 moved to a new version of
      Fuse (which AppImage needs) so you have to instruct people how to
      install the old version of Fuse to make things run.</p>
    <p>I was considering Flatpacks for the future . . . but vcpkg might
      be the best way to go. </p>
    <p>I would like Jeroen to look at the vcpkg route and chime in. Just
      how much pain would it save you to ONE version of every dependency
      library like jpeg, etc? No longer having to hack around all of
      those issues<br>
    </p>
    <blockquote type="cite"
      cite="mid:[email protected]"><br>
      My point seems made: It may be too early to go all-in on CMake 4,
      and too big a step to take when introducing CMake to Fox all at
      once. What would be the advantage of using CMake 4 over 3? Are
      there must-have features that building Fox depends on?
      <br>
      <br>
      Enno.
    </blockquote>
    <p>To me, just spouting out that ass sitting on my shoulders, you
      first have to decide</p>
    <p><i>What are you going to abandon?</i></p>
    <p>The move to CMake will man FOX no longer runs on many of those
      platforms listed on the documentation page. Not that many, if any,
      of those platforms are still around and I would seriously doubt
      they are keeping current with FOX, but, one has to make the
      decision. <br>
    </p>
    <p>I can offer a cautionary tale here.</p>
    <p>When I posted a message on the CMake boards looking for an
      example project to build a Windows installation package for a
      library that had both run-time and development installations one
      person offered up their own package.</p>
    <p><a class="moz-txt-link-freetext" href="https://github.com/LegalizeAdulthood/iterated-dynamics">https://github.com/LegalizeAdulthood/iterated-dynamics</a></p>
    <p>It did build just fine on Windows. I noticed they had some verbge
      in the script for Unix so I spun up one of my Ubuntu 18.04
      development VMs. Died horribly. I did not know that they had
      broken their Unix/Linux support while working on a major update.
      Then someone else on the CMake message board chimed in.</p>
    <pre>cmake --workflow --preset default</pre>
    <p>I forget if it was workflow or preset, but, one of those did not
      exist in the version of CMake available for Ubuntu 18.04.</p>
    <p>At this point I will rephrase the question.</p>
    <p><i>What is the oldest version of insert-Linux-distro-here you
        wish to run on?</i></p>
    <p>Use the version of CMake that is in their repos and it "should"
      build on all newer ones until CMake becomes mature enough to start
      deleting major features.<br>
    </p>
    <p><br>
    </p>
    <blockquote type="cite"
      cite="mid:[email protected]">-- </blockquote>
    <pre class="moz-signature" cols="72">Roland Hughes, President
Logikal Solutions
(630)-205-1593  (cell)
<a class="moz-txt-link-freetext" href="https://theminimumyouneedtoknow.com">https://theminimumyouneedtoknow.com</a>
<a class="moz-txt-link-freetext" href="https://infiniteexposure.net">https://infiniteexposure.net</a>
<a class="moz-txt-link-freetext" href="https://johnsmith-book.com">https://johnsmith-book.com</a></pre>
  </body>
</html>

--------------fhvuOAPbR0NsAL9l0FCAad0d--


--===============4718944333161459794==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline


--===============4718944333161459794==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Foxgui-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/foxgui-users

--===============4718944333161459794==--