Compare commits
13 Commits
Author | SHA1 | Date |
---|---|---|
Přemysl Eric Janouch | 17d9b3cf4c | |
Přemysl Eric Janouch | 2aa0a6231c | |
Přemysl Eric Janouch | 56a2a58ed6 | |
Přemysl Eric Janouch | 99834e93c0 | |
Přemysl Eric Janouch | 266c4c7c9f | |
Přemysl Eric Janouch | e5e42b63eb | |
Přemysl Eric Janouch | a4532ea322 | |
Přemysl Eric Janouch | 4aeaf61c99 | |
Přemysl Eric Janouch | d5837555b8 | |
Přemysl Eric Janouch | 9003f36ba2 | |
Přemysl Eric Janouch | 6df51485d3 | |
Přemysl Eric Janouch | 2433b9046f | |
Přemysl Eric Janouch | 93cd4dc4f9 |
|
@ -9,6 +9,7 @@ option (OPTION_GTKDOC "For developers only--enable use of gtk-doc" OFF)
|
|||
option (BUILD_TESTING "Build tests" OFF)
|
||||
|
||||
# Project information
|
||||
set (project_ID "name.janouch.${PROJECT_NAME}")
|
||||
set (project_URL "https://git.janouch.name/p/logdiag")
|
||||
|
||||
# For custom modules
|
||||
|
@ -40,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})
|
||||
|
@ -58,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}
|
||||
|
@ -71,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
|
||||
|
@ -245,7 +250,7 @@ if (NOT GLIB_COMPILE_SCHEMAS_EXECUTABLE)
|
|||
endif ()
|
||||
|
||||
set (GSETTINGS_DIR "${PROJECT_SOURCE_DIR}/share")
|
||||
set (GSETTINGS_SCHEMAS "${GSETTINGS_DIR}/org.logdiag.gschema.xml")
|
||||
set (GSETTINGS_SCHEMAS "${GSETTINGS_DIR}/${PROJECT_NAME}.gschema.xml")
|
||||
|
||||
if (OPTION_NOINSTALL)
|
||||
set (GSETTINGS_COMPILED_SCHEMA "${PROJECT_BINARY_DIR}/gschemas.compiled")
|
||||
|
@ -391,7 +396,8 @@ endif ()
|
|||
|
||||
install (DIRECTORY docs/user-guide DESTINATION share/doc/${PROJECT_NAME})
|
||||
install (DIRECTORY share/library DESTINATION share/${PROJECT_NAME})
|
||||
install (FILES ${GSETTINGS_SCHEMAS} DESTINATION share/glib-2.0/schemas)
|
||||
install (FILES ${GSETTINGS_SCHEMAS} DESTINATION share/glib-2.0/schemas
|
||||
RENAME "${project_ID}.gschema.xml")
|
||||
install (CODE " # DESTDIR is not in use on Windows (WIN32 is only native here!)
|
||||
if (WIN32 OR \"\$ENV{DESTDIR}\" STREQUAL \"\")
|
||||
execute_process (COMMAND \"${GLIB_COMPILE_SCHEMAS_EXECUTABLE}\"
|
||||
|
@ -446,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")
|
||||
|
|
15
README.adoc
15
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].
|
||||
|
@ -66,11 +68,14 @@ 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 (note that Windows XP is no longer able to
|
||||
download from HTTPS sources, you'll have to run this externally):
|
||||
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
|
||||
|
@ -103,7 +108,7 @@ Just install MinGW-w64 and let automation take care of the rest.
|
|||
|
||||
Alternatively, for an unnecessarily bloated MSYS2-based 64-bit build:
|
||||
|
||||
$ sh Win64Depends.sh
|
||||
$ sh -e Win64Depends.sh
|
||||
$ cmake -DCMAKE_TOOLCHAIN_FILE=ToolchainCrossWin64.cmake \
|
||||
-DCMAKE_BUILD_TYPE=Release -B build
|
||||
$ cmake --build build -- package
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
|
||||
#define PROJECT_NAME "${PROJECT_NAME}"
|
||||
#define PROJECT_VERSION "${PROJECT_VERSION}"
|
||||
#define PROJECT_ID "${project_ID}"
|
||||
#define PROJECT_URL "${project_URL}"
|
||||
|
||||
#cmakedefine OPTION_NOINSTALL
|
||||
|
|
|
@ -2591,7 +2591,9 @@ on_drag_motion (GtkWidget *widget, GdkDragContext *drag_ctx,
|
|||
/* Discard leftovers from any previous unsuccessful drag. */
|
||||
if (self->priv->dnd_left)
|
||||
{
|
||||
g_object_unref (self->priv->dnd_symbol);
|
||||
/* The Wayland backend does a leave-drop-leave sequence. */
|
||||
if (self->priv->dnd_symbol)
|
||||
g_object_unref (self->priv->dnd_symbol);
|
||||
self->priv->dnd_symbol = NULL;
|
||||
self->priv->dnd_left = FALSE;
|
||||
}
|
||||
|
|
|
@ -1,3 +1,2 @@
|
|||
VOID:OBJECT,OBJECT
|
||||
VOID:OBJECT,STRING
|
||||
VOID:DOUBLE,DOUBLE
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
<schemalist>
|
||||
<schema id="org.logdiag" path="/org/logdiag/" gettext-domain="logdiag">
|
||||
<schema id="name.janouch.logdiag" path="/name/janouch/logdiag/" gettext-domain="logdiag">
|
||||
<key name="show-main-toolbar" type="b">
|
||||
<default>true</default>
|
||||
<summary>Whether to show the main toolbar</summary>
|
||||
|
@ -14,4 +14,3 @@
|
|||
</key>
|
||||
</schema>
|
||||
</schemalist>
|
||||
|
|
@ -389,7 +389,7 @@ ld_window_main_init (LdWindowMain *self)
|
|||
gtk_widget_show_all (GTK_WIDGET (self));
|
||||
|
||||
/* Set up GSettings. */
|
||||
priv->settings = g_settings_new ("org." PROJECT_NAME);
|
||||
priv->settings = g_settings_new (PROJECT_ID);
|
||||
|
||||
g_settings_bind (priv->settings, "show-main-toolbar",
|
||||
gtk_action_group_get_action (priv->action_group,
|
||||
|
|
|
@ -127,16 +127,16 @@ main (int argc, char *argv[])
|
|||
textdomain (GETTEXT_DOMAIN);
|
||||
|
||||
#ifdef PROJECT_GSETTINGS_DIR
|
||||
/* This is enabled when the build is set up for developing, so that the
|
||||
* application can find its schema. It might also find use when
|
||||
* installing the application into a location that's missing from
|
||||
/* This is enabled when the build is set up for development,
|
||||
* so that the application can find its schema. It might also find use
|
||||
* when installing the application into a location that's missing from
|
||||
* g_get_system_data_dirs(), for example /usr/local or ~/.local.
|
||||
*/
|
||||
g_setenv ("GSETTINGS_SCHEMA_DIR", PROJECT_GSETTINGS_DIR, 0);
|
||||
#endif /* PROJECT_GSETTINGS_DIR */
|
||||
|
||||
#ifdef _WIN32
|
||||
/* Don't be unneccessarily limited by the system ANSI codepage. */
|
||||
/* Don't be unneccessarily limited by the system's ANSI codepage. */
|
||||
/* g_win32_get_command_line() should replace this code for GLib >= 2.40. */
|
||||
argv_overriden = get_utf8_args (&argc, &argv);
|
||||
if (argv_overriden)
|
||||
|
|
Loading…
Reference in New Issue