Compare commits
No commits in common. "master" and "v0.3.0" have entirely different histories.
@ -9,7 +9,6 @@ option (OPTION_GTKDOC "For developers only--enable use of gtk-doc" OFF)
|
|||||||
option (BUILD_TESTING "Build tests" OFF)
|
option (BUILD_TESTING "Build tests" OFF)
|
||||||
|
|
||||||
# Project information
|
# Project information
|
||||||
set (project_ID "name.janouch.${PROJECT_NAME}")
|
|
||||||
set (project_URL "https://git.janouch.name/p/logdiag")
|
set (project_URL "https://git.janouch.name/p/logdiag")
|
||||||
|
|
||||||
# For custom modules
|
# For custom modules
|
||||||
@ -41,7 +40,6 @@ if (CONVERT_EXECUTABLE AND NOT WIN32)
|
|||||||
set (icon_svg ${icon_base}/scalable/apps/logdiag.svg)
|
set (icon_svg ${icon_base}/scalable/apps/logdiag.svg)
|
||||||
set (icon_size_list 16x16 32x32 48x48)
|
set (icon_size_list 16x16 32x32 48x48)
|
||||||
|
|
||||||
# ImageMagick very oddly outperforms rsvg-convert with our specific SVG
|
|
||||||
set (icon_png_list)
|
set (icon_png_list)
|
||||||
set (icon_symbolic_list)
|
set (icon_symbolic_list)
|
||||||
foreach (icon_size ${icon_size_list})
|
foreach (icon_size ${icon_size_list})
|
||||||
@ -60,8 +58,6 @@ if (CONVERT_EXECUTABLE AND NOT WIN32)
|
|||||||
PROPERTIES SYMBOLIC TRUE)
|
PROPERTIES SYMBOLIC TRUE)
|
||||||
endforeach ()
|
endforeach ()
|
||||||
|
|
||||||
# Symbolic targets prevent the icons from being either cleaned,
|
|
||||||
# or pointlessly regenerated slightly differently
|
|
||||||
set (icon_ico ${PROJECT_SOURCE_DIR}/share/logdiag.ico)
|
set (icon_ico ${PROJECT_SOURCE_DIR}/share/logdiag.ico)
|
||||||
add_custom_target (${PROJECT_NAME}_icons
|
add_custom_target (${PROJECT_NAME}_icons
|
||||||
DEPENDS ${icon_symbolic_list}
|
DEPENDS ${icon_symbolic_list}
|
||||||
@ -75,8 +71,7 @@ pkg_check_modules (GTK3 REQUIRED gtk+-3.0 json-glib-1.0)
|
|||||||
link_directories (${GTK3_LIBRARY_DIRS})
|
link_directories (${GTK3_LIBRARY_DIRS})
|
||||||
|
|
||||||
if (NOT WIN32)
|
if (NOT WIN32)
|
||||||
pkg_search_module (Lua REQUIRED lua>=5.2
|
pkg_search_module (Lua REQUIRED lua>=5.2 lua5.3 lua-5.3 lua5.2 lua-5.2)
|
||||||
lua5.4 lua-5.4 lua5.3 lua-5.3 lua5.2 lua-5.2)
|
|
||||||
link_directories (${Lua_LIBRARY_DIRS})
|
link_directories (${Lua_LIBRARY_DIRS})
|
||||||
else ()
|
else ()
|
||||||
# For whatever reason this now seems to be required
|
# For whatever reason this now seems to be required
|
||||||
@ -250,7 +245,7 @@ if (NOT GLIB_COMPILE_SCHEMAS_EXECUTABLE)
|
|||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
set (GSETTINGS_DIR "${PROJECT_SOURCE_DIR}/share")
|
set (GSETTINGS_DIR "${PROJECT_SOURCE_DIR}/share")
|
||||||
set (GSETTINGS_SCHEMAS "${GSETTINGS_DIR}/${PROJECT_NAME}.gschema.xml")
|
set (GSETTINGS_SCHEMAS "${GSETTINGS_DIR}/org.logdiag.gschema.xml")
|
||||||
|
|
||||||
if (OPTION_NOINSTALL)
|
if (OPTION_NOINSTALL)
|
||||||
set (GSETTINGS_COMPILED_SCHEMA "${PROJECT_BINARY_DIR}/gschemas.compiled")
|
set (GSETTINGS_COMPILED_SCHEMA "${PROJECT_BINARY_DIR}/gschemas.compiled")
|
||||||
@ -396,8 +391,7 @@ endif ()
|
|||||||
|
|
||||||
install (DIRECTORY docs/user-guide DESTINATION share/doc/${PROJECT_NAME})
|
install (DIRECTORY docs/user-guide DESTINATION share/doc/${PROJECT_NAME})
|
||||||
install (DIRECTORY share/library DESTINATION share/${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!)
|
install (CODE " # DESTDIR is not in use on Windows (WIN32 is only native here!)
|
||||||
if (WIN32 OR \"\$ENV{DESTDIR}\" STREQUAL \"\")
|
if (WIN32 OR \"\$ENV{DESTDIR}\" STREQUAL \"\")
|
||||||
execute_process (COMMAND \"${GLIB_COMPILE_SCHEMAS_EXECUTABLE}\"
|
execute_process (COMMAND \"${GLIB_COMPILE_SCHEMAS_EXECUTABLE}\"
|
||||||
@ -452,7 +446,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_REQUIRES "gtk3 >= 3.8, json-glib >= 0.10.4, lua = 5.2")
|
||||||
set (CPACK_RPM_PACKAGE_GROUP "Graphics")
|
set (CPACK_RPM_PACKAGE_GROUP "Graphics")
|
||||||
set (CPACK_RPM_PACKAGE_LICENSE "0BSD")
|
set (CPACK_RPM_PACKAGE_LICENSE "ISC")
|
||||||
set (CPACK_RPM_PACKAGE_URL "${project_URL}")
|
set (CPACK_RPM_PACKAGE_URL "${project_URL}")
|
||||||
|
|
||||||
set (CPACK_SOURCE_GENERATOR "TGZ;ZIP")
|
set (CPACK_SOURCE_GENERATOR "TGZ;ZIP")
|
||||||
|
15
README.adoc
15
README.adoc
@ -10,10 +10,8 @@ image::docs/user-guide/logdiag-en.png[align="center"]
|
|||||||
|
|
||||||
Packages
|
Packages
|
||||||
--------
|
--------
|
||||||
Regular releases are sporadic. git master should be stable enough.
|
Regular releases are sporadic. git master should be stable enough. You can get
|
||||||
You can get a package with the latest development version using Arch Linux's
|
a package with the latest development version from Archlinux's AUR.
|
||||||
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
|
Windows installers can be downloaded from
|
||||||
https://git.janouch.name/p/logdiag/releases[the Releases page on Gitea].
|
https://git.janouch.name/p/logdiag/releases[the Releases page on Gitea].
|
||||||
@ -68,14 +66,11 @@ FindPkgConfig.cmake module to say:
|
|||||||
separate_arguments(_pkgconfig_invoke_result UNIX_COMMAND "${_pkgconfig_invoke_result}")
|
separate_arguments(_pkgconfig_invoke_result UNIX_COMMAND "${_pkgconfig_invoke_result}")
|
||||||
|
|
||||||
Run the following command in the directory with source files to automatically
|
Run the following command in the directory with source files to automatically
|
||||||
fetch and set up all dependencies:
|
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):
|
||||||
|
|
||||||
> cmake -P Win32Depends.cmake
|
> 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:
|
Reserve a directory for an out-of-source build and let CMake prepare the build:
|
||||||
|
|
||||||
> mkdir build
|
> mkdir build
|
||||||
@ -108,7 +103,7 @@ Just install MinGW-w64 and let automation take care of the rest.
|
|||||||
|
|
||||||
Alternatively, for an unnecessarily bloated MSYS2-based 64-bit build:
|
Alternatively, for an unnecessarily bloated MSYS2-based 64-bit build:
|
||||||
|
|
||||||
$ sh -e Win64Depends.sh
|
$ sh Win64Depends.sh
|
||||||
$ cmake -DCMAKE_TOOLCHAIN_FILE=ToolchainCrossWin64.cmake \
|
$ cmake -DCMAKE_TOOLCHAIN_FILE=ToolchainCrossWin64.cmake \
|
||||||
-DCMAKE_BUILD_TYPE=Release -B build
|
-DCMAKE_BUILD_TYPE=Release -B build
|
||||||
$ cmake --build build -- package
|
$ cmake --build build -- package
|
||||||
|
@ -5,11 +5,12 @@ set (CMAKE_C_COMPILER "i586-mingw32msvc-gcc")
|
|||||||
set (CMAKE_CXX_COMPILER "i586-mingw32msvc-g++")
|
set (CMAKE_CXX_COMPILER "i586-mingw32msvc-g++")
|
||||||
set (CMAKE_RC_COMPILER "i586-mingw32msvc-windres")
|
set (CMAKE_RC_COMPILER "i586-mingw32msvc-windres")
|
||||||
|
|
||||||
# Remember to set WINEPATH for library dependencies
|
# Not needed to crosscompile an installation package
|
||||||
set (CMAKE_CROSSCOMPILING_EMULATOR "wine")
|
#set (CMAKE_CROSSCOMPILING_EMULATOR "wine")
|
||||||
|
|
||||||
set (CMAKE_FIND_ROOT_PATH "/usr/i586-mingw32msvc")
|
set (CMAKE_FIND_ROOT_PATH "/usr/i586-mingw32msvc")
|
||||||
|
|
||||||
set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||||
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||||
|
|
||||||
|
@ -5,11 +5,12 @@ set (CMAKE_C_COMPILER "i686-w64-mingw32-gcc")
|
|||||||
set (CMAKE_CXX_COMPILER "i686-w64-mingw32-g++")
|
set (CMAKE_CXX_COMPILER "i686-w64-mingw32-g++")
|
||||||
set (CMAKE_RC_COMPILER "i686-w64-mingw32-windres")
|
set (CMAKE_RC_COMPILER "i686-w64-mingw32-windres")
|
||||||
|
|
||||||
# Remember to set WINEPATH for library dependencies
|
# Not needed to crosscompile an installation package
|
||||||
set (CMAKE_CROSSCOMPILING_EMULATOR "wine")
|
#set (CMAKE_CROSSCOMPILING_EMULATOR "wine")
|
||||||
|
|
||||||
set (CMAKE_FIND_ROOT_PATH "/usr/i686-w64-mingw32")
|
set (CMAKE_FIND_ROOT_PATH "/usr/i686-w64-mingw32")
|
||||||
|
|
||||||
set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||||
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||||
|
|
||||||
|
@ -5,11 +5,12 @@ set (CMAKE_C_COMPILER "x86_64-w64-mingw32-gcc")
|
|||||||
set (CMAKE_CXX_COMPILER "x86_64-w64-mingw32-g++")
|
set (CMAKE_CXX_COMPILER "x86_64-w64-mingw32-g++")
|
||||||
set (CMAKE_RC_COMPILER "x86_64-w64-mingw32-windres")
|
set (CMAKE_RC_COMPILER "x86_64-w64-mingw32-windres")
|
||||||
|
|
||||||
# Remember to set WINEPATH for library dependencies
|
# Not needed to crosscompile an installation package
|
||||||
set (CMAKE_CROSSCOMPILING_EMULATOR "wine64")
|
#set (CMAKE_CROSSCOMPILING_EMULATOR "wine64")
|
||||||
|
|
||||||
set (CMAKE_FIND_ROOT_PATH "/usr/x86_64-w64-mingw32")
|
set (CMAKE_FIND_ROOT_PATH "/usr/x86_64-w64-mingw32")
|
||||||
|
|
||||||
set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
set (CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
|
||||||
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
set (CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
|
||||||
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
set (CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
#!/bin/sh -e
|
#!/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
|
# Dependencies: AWK, sed, sha256sum, cURL, bsdtar, wine64
|
||||||
repository=https://repo.msys2.org/mingw/mingw64/
|
repository=https://repo.msys2.org/mingw/mingw64/
|
||||||
|
|
||||||
@ -27,8 +27,7 @@ fetch() {
|
|||||||
} BEGIN { while ((getline < "db.tsv") > 0) {
|
} BEGIN { while ((getline < "db.tsv") > 0) {
|
||||||
filenames[$1] = $2; deps[$1] = ""; for (i = 3; i <= NF; i++) {
|
filenames[$1] = $2; deps[$1] = ""; for (i = 3; i <= NF; i++) {
|
||||||
gsub(/[<=>].*/, "", $i); deps[$1] = deps[$1] $i FS }
|
gsub(/[<=>].*/, "", $i); deps[$1] = deps[$1] $i FS }
|
||||||
} for (i = 0; i < ARGC; i++) get(ARGV[i]) }' "$@" | tee db.want | \
|
} for (i = 0; i < ARGC; i++) get(ARGV[i]) }' "$@" | while IFS= read -r name
|
||||||
while IFS= read -r name
|
|
||||||
do
|
do
|
||||||
status Fetching "$name"
|
status Fetching "$name"
|
||||||
[ -f "packages/$name" ] || curl -#o "packages/$name" "$repository/$name"
|
[ -f "packages/$name" ] || curl -#o "packages/$name" "$repository/$name"
|
||||||
@ -45,9 +44,9 @@ extract() {
|
|||||||
for subdir in *
|
for subdir in *
|
||||||
do [ -d "$subdir" -a "$subdir" != packages ] && rm -rf -- "$subdir"
|
do [ -d "$subdir" -a "$subdir" != packages ] && rm -rf -- "$subdir"
|
||||||
done
|
done
|
||||||
while IFS= read -r name
|
for i in packages/*
|
||||||
do bsdtar -xf "packages/$name" --strip-components 1
|
do bsdtar -xf "$i" --strip-components 1 mingw64
|
||||||
done < db.want
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
configure() {
|
configure() {
|
||||||
@ -56,16 +55,15 @@ configure() {
|
|||||||
wine64 bin/gdk-pixbuf-query-loaders.exe \
|
wine64 bin/gdk-pixbuf-query-loaders.exe \
|
||||||
> lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
|
> lib/gdk-pixbuf-2.0/2.10.0/loaders.cache
|
||||||
|
|
||||||
# pkgconf has a command line option for this, but CMake can't pass it.
|
# pkgconf has a command line option for this, but CMake can't pass it
|
||||||
sed -i "s|^prefix=/mingw64|prefix=$(pwd)|" \
|
sed -i "s|^prefix=/mingw64|prefix=$(pwd)|" {share,lib}/pkgconfig/*.pc
|
||||||
share/pkgconfig/*.pc lib/pkgconfig/*.pc
|
|
||||||
}
|
}
|
||||||
|
|
||||||
mkdir -p win32-depends
|
mkdir -p win32-depends
|
||||||
cd win32-depends
|
cd win32-depends
|
||||||
dbsync
|
dbsync
|
||||||
fetch mingw-w64-x86_64-gtk3 mingw-w64-x86_64-lua \
|
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
|
verify
|
||||||
extract
|
extract
|
||||||
configure
|
configure
|
||||||
|
@ -10,7 +10,6 @@
|
|||||||
|
|
||||||
#define PROJECT_NAME "${PROJECT_NAME}"
|
#define PROJECT_NAME "${PROJECT_NAME}"
|
||||||
#define PROJECT_VERSION "${PROJECT_VERSION}"
|
#define PROJECT_VERSION "${PROJECT_VERSION}"
|
||||||
#define PROJECT_ID "${project_ID}"
|
|
||||||
#define PROJECT_URL "${project_URL}"
|
#define PROJECT_URL "${project_URL}"
|
||||||
|
|
||||||
#cmakedefine OPTION_NOINSTALL
|
#cmakedefine OPTION_NOINSTALL
|
||||||
|
@ -2591,9 +2591,7 @@ on_drag_motion (GtkWidget *widget, GdkDragContext *drag_ctx,
|
|||||||
/* Discard leftovers from any previous unsuccessful drag. */
|
/* Discard leftovers from any previous unsuccessful drag. */
|
||||||
if (self->priv->dnd_left)
|
if (self->priv->dnd_left)
|
||||||
{
|
{
|
||||||
/* The Wayland backend does a leave-drop-leave sequence. */
|
g_object_unref (self->priv->dnd_symbol);
|
||||||
if (self->priv->dnd_symbol)
|
|
||||||
g_object_unref (self->priv->dnd_symbol);
|
|
||||||
self->priv->dnd_symbol = NULL;
|
self->priv->dnd_symbol = NULL;
|
||||||
self->priv->dnd_left = FALSE;
|
self->priv->dnd_left = FALSE;
|
||||||
}
|
}
|
||||||
|
@ -1,2 +1,3 @@
|
|||||||
|
VOID:OBJECT,OBJECT
|
||||||
VOID:OBJECT,STRING
|
VOID:OBJECT,STRING
|
||||||
VOID:DOUBLE,DOUBLE
|
VOID:DOUBLE,DOUBLE
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
<schemalist>
|
<schemalist>
|
||||||
<schema id="name.janouch.logdiag" path="/name/janouch/logdiag/" gettext-domain="logdiag">
|
<schema id="org.logdiag" path="/org/logdiag/" gettext-domain="logdiag">
|
||||||
<key name="show-main-toolbar" type="b">
|
<key name="show-main-toolbar" type="b">
|
||||||
<default>true</default>
|
<default>true</default>
|
||||||
<summary>Whether to show the main toolbar</summary>
|
<summary>Whether to show the main toolbar</summary>
|
||||||
@ -14,3 +14,4 @@
|
|||||||
</key>
|
</key>
|
||||||
</schema>
|
</schema>
|
||||||
</schemalist>
|
</schemalist>
|
||||||
|
|
@ -389,7 +389,7 @@ ld_window_main_init (LdWindowMain *self)
|
|||||||
gtk_widget_show_all (GTK_WIDGET (self));
|
gtk_widget_show_all (GTK_WIDGET (self));
|
||||||
|
|
||||||
/* Set up GSettings. */
|
/* Set up GSettings. */
|
||||||
priv->settings = g_settings_new (PROJECT_ID);
|
priv->settings = g_settings_new ("org." PROJECT_NAME);
|
||||||
|
|
||||||
g_settings_bind (priv->settings, "show-main-toolbar",
|
g_settings_bind (priv->settings, "show-main-toolbar",
|
||||||
gtk_action_group_get_action (priv->action_group,
|
gtk_action_group_get_action (priv->action_group,
|
||||||
|
@ -127,16 +127,16 @@ main (int argc, char *argv[])
|
|||||||
textdomain (GETTEXT_DOMAIN);
|
textdomain (GETTEXT_DOMAIN);
|
||||||
|
|
||||||
#ifdef PROJECT_GSETTINGS_DIR
|
#ifdef PROJECT_GSETTINGS_DIR
|
||||||
/* This is enabled when the build is set up for development,
|
/* This is enabled when the build is set up for developing, so that the
|
||||||
* so that the application can find its schema. It might also find use
|
* application can find its schema. It might also find use when
|
||||||
* when installing the application into a location that's missing from
|
* installing the application into a location that's missing from
|
||||||
* g_get_system_data_dirs(), for example /usr/local or ~/.local.
|
* g_get_system_data_dirs(), for example /usr/local or ~/.local.
|
||||||
*/
|
*/
|
||||||
g_setenv ("GSETTINGS_SCHEMA_DIR", PROJECT_GSETTINGS_DIR, 0);
|
g_setenv ("GSETTINGS_SCHEMA_DIR", PROJECT_GSETTINGS_DIR, 0);
|
||||||
#endif /* PROJECT_GSETTINGS_DIR */
|
#endif /* PROJECT_GSETTINGS_DIR */
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
/* Don't be unneccessarily limited by the system's ANSI codepage. */
|
/* Don't be unneccessarily limited by the system ANSI codepage. */
|
||||||
/* g_win32_get_command_line() should replace this code for GLib >= 2.40. */
|
/* g_win32_get_command_line() should replace this code for GLib >= 2.40. */
|
||||||
argv_overriden = get_utf8_args (&argc, &argv);
|
argv_overriden = get_utf8_args (&argc, &argv);
|
||||||
if (argv_overriden)
|
if (argv_overriden)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user