Zdenko, you may have a look at my cmake configuration for SWORD for various targets here: * Windows MSYS2/MINGW64: https://github.com/kovzol/bibref/blob/master/.github/workflows/build.yml#L110-L145 * WebAssembly: https://github.com/kovzol/bibref/blob/master/.github/workflows/build.yml#L44-L59 Please let me know if I can help you more. Best, Zoltan
ZdPo Ster <zdpos...@gmail.com> ezt írta (időpont: 2025. aug. 20., Sze, 7:51): > 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 > -- *Dr. Zoltán** Kovács, MSc* *Private Pädagogische Hochschule der Diözese Linzhttps://matek.hu/zoltan <https://matek.hu/zoltan>*
_______________________________________________ sword-devel mailing list: sword-devel@crosswire.org http://crosswire.org/mailman/listinfo/sword-devel Instructions to unsubscribe/change your settings at above page