diff options
-rw-r--r-- | CMakeLists.txt | 8 | ||||
-rw-r--r-- | README.adoc | 6 | ||||
-rw-r--r-- | ToolchainCrossMinGW.cmake | 5 | ||||
-rw-r--r-- | ToolchainCrossMinGWW64.cmake | 5 | ||||
-rw-r--r-- | ToolchainCrossWin64.cmake | 5 | ||||
-rw-r--r-- | Win64Depends.sh | 18 |
6 files changed, 26 insertions, 21 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt index a09368b..9164d31 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,6 +41,7 @@ if (CONVERT_EXECUTABLE AND NOT WIN32) set (icon_svg ${icon_base}/scalable/apps/logdiag.svg) set (icon_size_list 16x16 32x32 48x48) + # ImageMagick very oddly outperforms rsvg-convert with our specific SVG set (icon_png_list) set (icon_symbolic_list) foreach (icon_size ${icon_size_list}) @@ -59,6 +60,8 @@ if (CONVERT_EXECUTABLE AND NOT WIN32) PROPERTIES SYMBOLIC TRUE) endforeach () + # Symbolic targets prevent the icons from being either cleaned, + # or pointlessly regenerated slightly differently set (icon_ico ${PROJECT_SOURCE_DIR}/share/logdiag.ico) add_custom_target (${PROJECT_NAME}_icons DEPENDS ${icon_symbolic_list} @@ -72,7 +75,8 @@ pkg_check_modules (GTK3 REQUIRED gtk+-3.0 json-glib-1.0) link_directories (${GTK3_LIBRARY_DIRS}) if (NOT WIN32) - pkg_search_module (Lua REQUIRED lua>=5.2 lua5.3 lua-5.3 lua5.2 lua-5.2) + pkg_search_module (Lua REQUIRED lua>=5.2 + lua5.4 lua-5.4 lua5.3 lua-5.3 lua5.2 lua-5.2) link_directories (${Lua_LIBRARY_DIRS}) else () # For whatever reason this now seems to be required @@ -448,7 +452,7 @@ set (CPACK_DEBIAN_PACKAGE_HOMEPAGE "${project_URL}") set (CPACK_RPM_PACKAGE_REQUIRES "gtk3 >= 3.8, json-glib >= 0.10.4, lua = 5.2") set (CPACK_RPM_PACKAGE_GROUP "Graphics") -set (CPACK_RPM_PACKAGE_LICENSE "ISC") +set (CPACK_RPM_PACKAGE_LICENSE "0BSD") set (CPACK_RPM_PACKAGE_URL "${project_URL}") set (CPACK_SOURCE_GENERATOR "TGZ;ZIP") diff --git a/README.adoc b/README.adoc index c8a77cf..5cb3fae 100644 --- a/README.adoc +++ b/README.adoc @@ -10,8 +10,10 @@ 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 from Archlinux's AUR. +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]. diff --git a/ToolchainCrossMinGW.cmake b/ToolchainCrossMinGW.cmake index 7c9242b..4aaa387 100644 --- a/ToolchainCrossMinGW.cmake +++ b/ToolchainCrossMinGW.cmake @@ -5,12 +5,11 @@ set (CMAKE_C_COMPILER "i586-mingw32msvc-gcc") set (CMAKE_CXX_COMPILER "i586-mingw32msvc-g++") set (CMAKE_RC_COMPILER "i586-mingw32msvc-windres") -# Not needed to crosscompile an installation package -#set (CMAKE_CROSSCOMPILING_EMULATOR "wine") +# Remember to set WINEPATH for library dependencies +set (CMAKE_CROSSCOMPILING_EMULATOR "wine") set (CMAKE_FIND_ROOT_PATH "/usr/i586-mingw32msvc") set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) - diff --git a/ToolchainCrossMinGWW64.cmake b/ToolchainCrossMinGWW64.cmake index f72e903..886df14 100644 --- a/ToolchainCrossMinGWW64.cmake +++ b/ToolchainCrossMinGWW64.cmake @@ -5,12 +5,11 @@ set (CMAKE_C_COMPILER "i686-w64-mingw32-gcc") set (CMAKE_CXX_COMPILER "i686-w64-mingw32-g++") set (CMAKE_RC_COMPILER "i686-w64-mingw32-windres") -# Not needed to crosscompile an installation package -#set (CMAKE_CROSSCOMPILING_EMULATOR "wine") +# Remember to set WINEPATH for library dependencies +set (CMAKE_CROSSCOMPILING_EMULATOR "wine") set (CMAKE_FIND_ROOT_PATH "/usr/i686-w64-mingw32") set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) - diff --git a/ToolchainCrossWin64.cmake b/ToolchainCrossWin64.cmake index 5550d6d..e895c2d 100644 --- a/ToolchainCrossWin64.cmake +++ b/ToolchainCrossWin64.cmake @@ -5,12 +5,11 @@ set (CMAKE_C_COMPILER "x86_64-w64-mingw32-gcc") set (CMAKE_CXX_COMPILER "x86_64-w64-mingw32-g++") set (CMAKE_RC_COMPILER "x86_64-w64-mingw32-windres") -# Not needed to crosscompile an installation package -#set (CMAKE_CROSSCOMPILING_EMULATOR "wine64") +# Remember to set WINEPATH for library dependencies +set (CMAKE_CROSSCOMPILING_EMULATOR "wine64") set (CMAKE_FIND_ROOT_PATH "/usr/x86_64-w64-mingw32") set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER) set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY) set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY) - diff --git a/Win64Depends.sh b/Win64Depends.sh index 0a1dd89..bff86eb 100644 --- a/Win64Depends.sh +++ b/Win64Depends.sh @@ -1,5 +1,5 @@ #!/bin/sh -e -# Win64Depends.sh: download dependencies from MSYS2 for cross-compilation +# Win64Depends.sh: download dependencies from MSYS2 for cross-compilation. # Dependencies: AWK, sed, sha256sum, cURL, bsdtar, wine64 repository=https://repo.msys2.org/mingw/mingw64/ @@ -27,7 +27,8 @@ fetch() { } BEGIN { while ((getline < "db.tsv") > 0) { filenames[$1] = $2; deps[$1] = ""; for (i = 3; i <= NF; i++) { gsub(/[<=>].*/, "", $i); deps[$1] = deps[$1] $i FS } - } for (i = 0; i < ARGC; i++) get(ARGV[i]) }' "$@" | while IFS= read -r name + } for (i = 0; i < ARGC; i++) get(ARGV[i]) }' "$@" | tee db.want | \ + while IFS= read -r name do status Fetching "$name" [ -f "packages/$name" ] || curl -#o "packages/$name" "$repository/$name" @@ -44,9 +45,9 @@ extract() { for subdir in * do [ -d "$subdir" -a "$subdir" != packages ] && rm -rf -- "$subdir" done - for i in packages/* - do bsdtar -xf "$i" --strip-components 1 mingw64 - done + while IFS= read -r name + do bsdtar -xf "packages/$name" --strip-components 1 + done < db.want } configure() { @@ -55,15 +56,16 @@ configure() { wine64 bin/gdk-pixbuf-query-loaders.exe \ > lib/gdk-pixbuf-2.0/2.10.0/loaders.cache - # pkgconf has a command line option for this, but CMake can't pass it - sed -i "s|^prefix=/mingw64|prefix=$(pwd)|" {share,lib}/pkgconfig/*.pc + # pkgconf has a command line option for this, but CMake can't pass it. + sed -i "s|^prefix=/mingw64|prefix=$(pwd)|" \ + share/pkgconfig/*.pc lib/pkgconfig/*.pc } mkdir -p win32-depends cd win32-depends dbsync fetch mingw-w64-x86_64-gtk3 mingw-w64-x86_64-lua \ - mingw-w64-x86_64-libwinpthread-git # because we don't do "provides"? + mingw-w64-x86_64-libwinpthread-git # Because we don't do "provides"? verify extract configure |