My personal aim is to build the sword on windows with msvc and/or clang. So autotools is not an option (compared to linux). I have several years experience with cmake and building c++ multiplatform projects, so I can help with this. I believe bringing the sword to "msvc (and git ;-) ) world" could bring another contributor to this project.
Zdenko On Wed, 20 Aug 2025 at 05:55, Greg Hellings <greg.helli...@gmail.com> wrote: > > > On Tue, Aug 19, 2025, 10:34 PM Aaron Rainbolt <arraybo...@gmail.com> > wrote: > >> FWIW (and as you well know since you're still a co-maintainer of it), >> the SWORD package for Fedora relies on the CMake toolchain. >> > > Indeed. But it really shouldn't. Mea culpa on that! The main reason I > never switched it is because it is the only currently easy access I have to > the bindings without always needing to stand up a development environment > everywhere. > > Personally, I've always used CMake rather than autotools for building >> SWORD when doing custom builds of it. I was under the impression that >> the autotools toolchain was deprecated. >> > > No. Autotools is the source of truth. CMake is a "best effort" alternative > that started out really as just a way for me to enable Python bindings and > Windows builds. But now autotools supports Windows (cross-build) targets > just as readily as it does Unix targets. And people who want to use Python > or Perl are well served by the existing CMake toolchain. > > Ideally the bindings should be pulled out to a separate package and > uploaded to, for example, PyPI. (Peter - do you still use the Perl > bindings? I think you might have been the only one to ever use those, but > do you still?) That way they are available through that language's native > tooling. I did that, once upon a time, but adding tooling to automatically > regenerate the Swig binding would take that a long way. > > >> As for why one would use CMake instead, you could probably quote >> whatever the usual arguments are for using CMake instead of autotools >> > > I've never actually seen such a debate. Despite having no qualms with > shell script, I still find CMake more legible. But autotools is well known > and readily supported almost anywhere. Except for Windows build hosts. And > early on I was hoping to provide a way to build with MSVC through it to > replace the old handcrafted Windows build scripts. But when MinGW had fully > matured, that need was eliminated. > > (easier to audit for security as opposed to autogenerated >> multi-thousand-line-long shell scripts written in convoluted >> antediluvian POSIX sh language designed to work on older versions of >> Solaris and that check for bugs existing in assorted other ancient and >> likely entirely unused flavors of UNIX among other things, you don't >> have to build the build system itself and potentially run into >> insurmountable issues in so doing if trying to build SWORD on a system >> older or newer than the ones upstream uses, modifying the build system >> to add extra source files or move things around only gives one a >> migraine rather than making their head explode, etc.). I personally >> would like to not have to change the Fedora SWORD package from using >> CMake, and would ask for help if the CMake side of things broke >> because I don't want to fight with autoheadache. >> > > The problem is, those antique targets are still actively supported by > Sword, so using autotools is still a really good choice. Personally I don't > even dabble in C these days unless I need to edit someone else's code. But > more modern languages don't really target those older systems, so autotools > for a C++ code base is pretty much the best thing going to service all of > breadth of systems that Sword supports. > > --Greg > > >> On Tue, Aug 19, 2025 at 10:22 PM Greg Hellings <greg.helli...@gmail.com> >> wrote: >> > >> > What are your needs for using the CMake toolchain? It is strictly >> inferior to the autotools system with the exception of supporting Python >> and Perl more robustly. But I never was able to get it handling all of the >> Unicode tests perfectly, and even I don't use it anymore for the places >> where I maintain Sword builds. The two initial reasons for putting it >> together were MinGW support which was superior at that time in CMake than >> autotools (this is no longer the case) and the Python/Perl bindings. But >> even those I would likely move over to autotools at this point when the >> need for an update appears. >> > >> > --Greg >> > >> > On Mon, Aug 18, 2025, 4:25 AM ZdPo Ster <zdpos...@gmail.com> wrote: >> >> >> >> Any idea when cmake build will be fixed & improved? >> >> Recent svn version can not be built with cmake. Minimum change to at >> least finish configure requires: >> >> >> >> diff --git a/CMakeLists.txt b/CMakeLists.txt >> >> index 676353b5..bd3e6f81 100644 >> >> --- a/CMakeLists.txt >> >> +++ b/CMakeLists.txt >> >> @@ -11,13 +11,14 @@ >> >> # of their own GPLv2 license and all copyright is transferred to them >> for >> >> # all posterity and eternity, wherever such transfer is possible. >> Where it is >> >> # not, then this file is released under the GPLv2 by myself. >> >> +CMAKE_MINIMUM_REQUIRED(VERSION 3.10.0) >> >> >> >> CMAKE_POLICY(SET CMP0010 NEW) >> >> include(FindSubversion) >> >> Subversion_WC_INFO(${CMAKE_CURRENT_SOURCE_DIR} MYSVN >> IGNORE_SVN_FAILURE) >> >> >> >> PROJECT(libsword CXX C) >> >> -CMAKE_MINIMUM_REQUIRED(VERSION 2.6.0) >> >> + >> >> SET(SWORD_VERSION 1.9.0) >> >> if(DEFINED MYSVN_WC_REVISION) >> >> SET(SWORD_VERSION ${SWORD_VERSION}.${MYSVN_WC_REVISION}) >> >> >> >> --Zdenko >> >> >> >> On Fri, 17 Mar 2023 at 19:25, Greg Hellings <greg.helli...@gmail.com> >> wrote: >> >>> >> >>> Indeed. It's not a principled stand that I'm refusing to get >> Subversion going. It's simply that it's too much work that I haven't >> bothered and don't foresee doing so anytime soon. >> >>> >> >>> And, with no setup to automatically test the scripts in all the >> environments they must support, it's not likely others are willing to >> commit this on my behalf. >> >>> >> >>> --Greg >> >>> >> >>> On Sun, Mar 12, 2023, 09:42 Peter von Kaehne <ref...@gmx.net> wrote: >> >>>> >> >>>> I think you misunderstood Greg. >> >>>> >> >>>> There is a long campaign and strong feeling to have the project on >> Git but there is no agreement or movement to that. And it seems Greg is >> pausing his contributions until that matter is resolved. >> >>>> >> >>>> Peter >> >>>> >> >>>> Sent from my phone. Please forgive misspellings and weird >> “corrections” >> >>>> >> >>>> On 12 Mar 2023, at 15:51, ZdPo Ster <zdpos...@gmail.com> wrote: >> >>>> >> >>>> >> >>>> I am sorry, but I did not get the point of your reply. >> >>>> I do not use subversion - I use git-svn as proposed several months >> ago on this forum. But current cmake configuration expects everybody to use >> subversion, which is wrong. >> >>>> These patches improve cmake build: >> >>>> >> >>>> that will work also with git-svn >> >>>> MSVC build >> >>>> fix depreciated >> >>>> >> >>>> AFAIK it should cause no harm for other combinations, just improve >> current state. >> >>>> >> >>>> Zdenko >> >>>> >> >>>> On Thu, 9 Mar 2023 at 23:18, Greg Hellings <greg.helli...@gmail.com> >> wrote: >> >>>>> >> >>>>> I've never bothered to get Subversion setup on my local machine. >> Remembering the setup, plus my credentials, and how to use it is more labor >> than I've been willing to spend on this effort. If, in the future, I >> overcome that inertia then I'll happily test and apply this patch. >> >>>>> >> >>>>> --Greg >> >>>>> >> >>>>> On Sat, Feb 25, 2023 at 5:34 AM ZdPo Ster <zdpos...@gmail.com> >> wrote: >> >>>>>> >> >>>>>> Any update on this (after 3.5 months)? >> >>>>>> >> >>>>>> Zdenko >> >>>>>> >> >>>>>> On Sat, 26 Nov 2022 at 21:53, Greg Hellings < >> greg.helli...@gmail.com> wrote: >> >>>>>>> >> >>>>>>> Thanks. I am not privy to the patches email inbox, so this >> mailing list is the way to reach me for CMake things. I'll review these >> when I have the opportunity. >> >>>>>>> >> >>>>>>> --Greg >> >>>>>>> >> >>>>>>> On Sat, Nov 26, 2022, 13:46 Peter von Kaehne <ref...@gmx.net> >> wrote: >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> How to suggest improvements to the sword project? >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> You did it the right way. It just is a bit on/off as a project. >> GHellings is the cmake pumpkin holder as far as I know. I bcc him on a >> different email address. >> >>>>>>>> >> >>>>>>>> Peter >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> BR, >> >>>>>>>> >> >>>>>>>> Zdenko >> >>>>>>>> >> >>>>>>>> ---------- Forwarded message --------- >> >>>>>>>> From: ZdPo Ster <zdpos...@gmail.com> >> >>>>>>>> Date: Sun, 6 Nov 2022 at 22:22 >> >>>>>>>> Subject: cmake patches >> >>>>>>>> To: <patc...@crosswire.org> >> >>>>>>>> >> >>>>>>>> >> >>>>>>>> Hello, >> >>>>>>>> >> >>>>>>>> please find 3 few patches related to cmake build (tested on >> windows with MSVC 2019): >> >>>>>>>> >> >>>>>>>> cmake_fix_deprecation.patch - cmake version 3.23.2 produce >> depreciation warning for old minimum version, co IMO it is time to increase >> expected cmake version >> >>>>>>>> cmake_fix_msvc.patch - there is no "/O3" options in current >> MSVC[1] >> >>>>>>>> cmake_git_svn.patch - I use git svn for accessing code, but >> cmake produce error because of missing svn executable. He is patch that >> fixed it + code for detecting svn revision (MYSVN_WC_REVISION) from git >> >>>>>>>> >> >>>>>>>> [1] >> https://learn.microsoft.com/en-us/cpp/build/reference/o-options-optimize-code?view=msvc-160 >> >>>>>>>> >> >>>>>>>> Zdenko >> >>>>>>>> >> >>>>>>>> _______________________________________________ >> >>>>>>>> sword-devel mailing list: sword-devel@crosswire.org >> >>>>>>>> http://crosswire.org/mailman/listinfo/sword-devel >> >>>>>>>> Instructions to unsubscribe/change your settings at above page >> >>>>>>> >> >>>>>>> _______________________________________________ >> >>>>>>> sword-devel mailing list: sword-devel@crosswire.org >> >>>>>>> http://crosswire.org/mailman/listinfo/sword-devel >> >>>>>>> Instructions to unsubscribe/change your settings at above page >> >>>>>> >> >>>>>> _______________________________________________ >> >>>>>> sword-devel mailing list: sword-devel@crosswire.org >> >>>>>> http://crosswire.org/mailman/listinfo/sword-devel >> >>>>>> Instructions to unsubscribe/change your settings at above page >> >>>>> >> >>>>> _______________________________________________ >> >>>>> sword-devel mailing list: sword-devel@crosswire.org >> >>>>> http://crosswire.org/mailman/listinfo/sword-devel >> >>>>> Instructions to unsubscribe/change your settings at above page >> >>>> >> >>>> _______________________________________________ >> >>>> sword-devel mailing list: sword-devel@crosswire.org >> >>>> http://crosswire.org/mailman/listinfo/sword-devel >> >>>> Instructions to unsubscribe/change your settings at above page >> >>>> >> >>>> _______________________________________________ >> >>>> sword-devel mailing list: sword-devel@crosswire.org >> >>>> http://crosswire.org/mailman/listinfo/sword-devel >> >>>> Instructions to unsubscribe/change your settings at above page >> >>> >> >>> _______________________________________________ >> >>> sword-devel mailing list: sword-devel@crosswire.org >> >>> http://crosswire.org/mailman/listinfo/sword-devel >> >>> Instructions to unsubscribe/change your settings at above page >> >> >> >> _______________________________________________ >> >> sword-devel mailing list: sword-devel@crosswire.org >> >> http://crosswire.org/mailman/listinfo/sword-devel >> >> Instructions to unsubscribe/change your settings at above page >> > >> > _______________________________________________ >> > sword-devel mailing list: sword-devel@crosswire.org >> > http://crosswire.org/mailman/listinfo/sword-devel >> > Instructions to unsubscribe/change your settings at above page >> _______________________________________________ >> sword-devel mailing list: sword-devel@crosswire.org >> http://crosswire.org/mailman/listinfo/sword-devel >> Instructions to unsubscribe/change your settings at above page >> > _______________________________________________ > sword-devel mailing list: sword-devel@crosswire.org > http://crosswire.org/mailman/listinfo/sword-devel > Instructions to unsubscribe/change your settings at above page >
_______________________________________________ sword-devel mailing list: sword-devel@crosswire.org http://crosswire.org/mailman/listinfo/sword-devel Instructions to unsubscribe/change your settings at above page