logdiag ======= 'logdiag' is a simple multiplatform schematic editor written in GTK+. This software has never really been finished, and is no longer being worked on, although I strive to keep it building on Windows XP and elsewhere. image::docs/user-guide/logdiag-en.png[align="center"] Packages -------- Regular releases are sporadic. git master should be stable enough. You can get a package with the latest development version using Arch Linux's https://aur.archlinux.org/packages/logdiag-git[AUR], or as a https://git.janouch.name/p/nixexprs[Nix derivation]. Windows installers can be downloaded from https://git.janouch.name/p/logdiag/releases[the Releases page on Gitea]. Requirements ------------ Runtime dependencies: GTK+ >= 3.8, json-glib >= 0.10.4, lua >= 5.2 + Build dependencies: CMake >= 3.10 Build from source on Unix-like systems -------------------------------------- First check that you have all the required dependencies installed, including development packages, if your distribution provides them. Reserve a directory for an out-of-source build: $ mkdir build $ cd build Let CMake prepare the build. You may change the directory where you want the application to be installed. The default is _/usr/local_. $ cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr Now you have two basic choices of installing the application: 1. Using _make install_: + # make install 2. Using _cpack_: + You have to choose a package format understood by your system package manager. CMake offers DEB and RPM. + After _cpack_ finishes making the package, install this file. + $ cpack -G DEB # dpkg -i logdiag-version-system-arch.deb Build from source on Windows ---------------------------- _Note that using the current method we're stuck with GTK+ 3.8.2, which works worse on Windows 10, but better on XP and under WINE._ First, install CMake and MinGW (mingw32-base-bin, mingw32-gettext-dev). Ensure they're both in your system path. If you want to build an installation package, also install NSIS. If you want to build within a path containing spaces, https://gitlab.kitware.com/cmake/cmake/-/issues/22396[fix] your CMake's FindPkgConfig.cmake module to say: separate_arguments(_pkgconfig_invoke_result UNIX_COMMAND "${_pkgconfig_invoke_result}") Run the following command in the directory with source files to automatically fetch and set up all dependencies: > cmake -P Win32Depends.cmake Note that on Windows XP, CMake will fail to download those files, even with https://emailarchitect.net/easendmail/sdk/html/object_tls12.htm[updates]. You will have to run the script externally. Reserve a directory for an out-of-source build and let CMake prepare the build: > mkdir build > cd build > cmake .. -G "MinGW Makefiles" -DCMAKE_BUILD_TYPE=Release Now you can generate a package with CPack. You may choose between: 1. An NSIS-based installation package: + > cpack -G NSIS 2. A portable ZIP package: + > cpack -G ZIP By default, that is if you specify no generator, both packages are built. Cross-compilation for Windows ----------------------------- The procedure is almost exactly the same as before, including the requirements. Just install MinGW-w64 and let automation take care of the rest. $ cmake -P Win32Depends.cmake $ mkdir build $ cd build $ cmake -DCMAKE_TOOLCHAIN_FILE=../ToolchainCrossMinGWW64.cmake \ -DCMAKE_BUILD_TYPE=Release .. $ cpack Alternatively, for an unnecessarily bloated MSYS2-based 64-bit build: $ sh -e Win64Depends.sh $ cmake -DCMAKE_TOOLCHAIN_FILE=ToolchainCrossWin64.cmake \ -DCMAKE_BUILD_TYPE=Release -B build $ cmake --build build -- package Contributing and Support ------------------------ Use https://git.janouch.name/p/logdiag to report any bugs, request features, or submit pull requests. `git send-email` is tolerated. If you want to discuss the project, feel free to join me at ircs://irc.janouch.name, channel #dev. Bitcoin donations are accepted at: 12r5uEWEgcHC46xd64tt3hHt9EUvYYDHe9 License ------- This software is released under the terms of the 0BSD license, the text of which is included within the package along with the list of authors.