From 876a474b787be5d0b426a05f17848955644b1c0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaakko=20Kera=CC=88nen?= Date: Mon, 26 Jul 2021 13:32:03 +0300 Subject: [PATCH 1/8] Depends: Declare build byproducts --- Depends.cmake | 1 + 1 file changed, 1 insertion(+) diff --git a/Depends.cmake b/Depends.cmake index b549eb4c8..ded2d3c72 100644 --- a/Depends.cmake +++ b/Depends.cmake @@ -32,6 +32,7 @@ if (ENABLE_HARFBUZZ AND EXISTS ${CMAKE_SOURCE_DIR}/lib/harfbuzz/CMakeLists.txt) --prefix ${_dst} BUILD_COMMAND ${NINJA_EXECUTABLE} INSTALL_COMMAND ${NINJA_EXECUTABLE} install + BUILD_BYPRODUCTS ${_dst}/libharfbuzz.a ) add_library (harfbuzz-lib INTERFACE) add_dependencies (harfbuzz-lib harfbuzz-ext) From e4ad744fcbd733a5014873147c8d8dc46a38be8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaakko=20Kera=CC=88nen?= Date: Mon, 26 Jul 2021 13:36:40 +0300 Subject: [PATCH 2/8] macOS: Fixing linking with HarfBuzz --- Depends.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Depends.cmake b/Depends.cmake index ded2d3c72..a80d4cfd6 100644 --- a/Depends.cmake +++ b/Depends.cmake @@ -32,7 +32,6 @@ if (ENABLE_HARFBUZZ AND EXISTS ${CMAKE_SOURCE_DIR}/lib/harfbuzz/CMakeLists.txt) --prefix ${_dst} BUILD_COMMAND ${NINJA_EXECUTABLE} INSTALL_COMMAND ${NINJA_EXECUTABLE} install - BUILD_BYPRODUCTS ${_dst}/libharfbuzz.a ) add_library (harfbuzz-lib INTERFACE) add_dependencies (harfbuzz-lib harfbuzz-ext) @@ -42,10 +41,11 @@ if (ENABLE_HARFBUZZ AND EXISTS ${CMAKE_SOURCE_DIR}/lib/harfbuzz/CMakeLists.txt) target_link_libraries (harfbuzz-lib INTERFACE -L${_dst}/lib harfbuzz) install (PROGRAMS ${_dst}/bin/msys-harfbuzz-0.dll DESTINATION .) else () - target_link_libraries (harfbuzz-lib INTERFACE ${_dst}/libharfbuzz.a) if (APPLE) + target_link_libraries (harfbuzz-lib INTERFACE ${_dst}/lib/libharfbuzz.0.dylib) target_link_libraries (harfbuzz-lib INTERFACE c++) else () + target_link_libraries (harfbuzz-lib INTERFACE ${_dst}/libharfbuzz.a) target_link_libraries (harfbuzz-lib INTERFACE stdc++) endif () endif () From 57558ccdd415df5c460c3d4b7b3776942fea68c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaakko=20Kera=CC=88nen?= Date: Mon, 26 Jul 2021 14:48:35 +0300 Subject: [PATCH 3/8] Depends: Trying out step targets --- Depends.cmake | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Depends.cmake b/Depends.cmake index a80d4cfd6..ad740478e 100644 --- a/Depends.cmake +++ b/Depends.cmake @@ -32,9 +32,10 @@ if (ENABLE_HARFBUZZ AND EXISTS ${CMAKE_SOURCE_DIR}/lib/harfbuzz/CMakeLists.txt) --prefix ${_dst} BUILD_COMMAND ${NINJA_EXECUTABLE} INSTALL_COMMAND ${NINJA_EXECUTABLE} install + STEP_TARGETS install ) add_library (harfbuzz-lib INTERFACE) - add_dependencies (harfbuzz-lib harfbuzz-ext) + add_dependencies (harfbuzz-lib harfbuzz-install harfbuzz-ext) target_include_directories (harfbuzz-lib INTERFACE ${_dst}/include/harfbuzz) if (MSYS) # Link dynamically. @@ -98,6 +99,7 @@ if (ENABLE_FRIBIDI AND EXISTS ${CMAKE_SOURCE_DIR}/lib/fribidi) --prefix ${_dst} BUILD_COMMAND ${NINJA_EXECUTABLE} INSTALL_COMMAND ${NINJA_EXECUTABLE} install + STEP_TARGETS install BUILD_BYPRODUCTS ${_dst}/lib/libfribidi.a ) else () @@ -105,7 +107,7 @@ if (ENABLE_FRIBIDI AND EXISTS ${CMAKE_SOURCE_DIR}/lib/fribidi) "GNU FriBidi must be built with Meson. Please install Meson and Ninja and try again, or provide FriBidi via pkg-config.") endif () add_library (fribidi-lib INTERFACE) - add_dependencies (fribidi-lib fribidi-ext) + add_dependencies (fribidi-lib fribidi-install fribidi-ext) target_include_directories (fribidi-lib INTERFACE ${_dst}/include) target_link_libraries (fribidi-lib INTERFACE ${_dst}/lib/libfribidi.a) set (FRIBIDI_FOUND YES) From 4b0157fa984b109618dd1fdb8464f9cf20028617 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaakko=20Ker=C3=A4nen?= Date: Mon, 26 Jul 2021 14:59:47 +0300 Subject: [PATCH 4/8] Depends: Even more build fixes --- CMakeLists.txt | 1 + Depends.cmake | 5 +---- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index b4b3a9c1b..c5d5f6101 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -321,6 +321,7 @@ if (ENABLE_HARFBUZZ AND HARFBUZZ_FOUND) target_link_libraries (app PUBLIC harfbuzz-lib) else () target_link_libraries (app PUBLIC ${HARFBUZZ_LIBRARIES}) + target_include_directories (app PUBLIC ${HARFBUZZ_INCLUDE_DIRS}) endif () target_compile_definitions (app PUBLIC LAGRANGE_ENABLE_HARFBUZZ=1) endif () diff --git a/Depends.cmake b/Depends.cmake index ad740478e..612ad0dcd 100644 --- a/Depends.cmake +++ b/Depends.cmake @@ -12,9 +12,6 @@ if (ENABLE_HARFBUZZ AND EXISTS ${CMAKE_SOURCE_DIR}/lib/harfbuzz/CMakeLists.txt) # Find HarfBuzz with pkg-config. if (NOT ENABLE_HARFBUZZ_MINIMAL AND PKG_CONFIG_FOUND) pkg_check_modules (HARFBUZZ IMPORTED_TARGET harfbuzz) - if (HARFBUZZ_FOUND) - add_library (harfbuzz-lib ALIAS PkgConfig::HARFBUZZ) - endif () endif () if (ENABLE_HARFBUZZ_MINIMAL OR NOT HARFBUZZ_FOUND) # Build HarfBuzz with minimal dependencies. @@ -46,7 +43,7 @@ if (ENABLE_HARFBUZZ AND EXISTS ${CMAKE_SOURCE_DIR}/lib/harfbuzz/CMakeLists.txt) target_link_libraries (harfbuzz-lib INTERFACE ${_dst}/lib/libharfbuzz.0.dylib) target_link_libraries (harfbuzz-lib INTERFACE c++) else () - target_link_libraries (harfbuzz-lib INTERFACE ${_dst}/libharfbuzz.a) + target_link_libraries (harfbuzz-lib INTERFACE ${_dst}/lib/libharfbuzz.a) target_link_libraries (harfbuzz-lib INTERFACE stdc++) endif () endif () From 61e9657965878e2816c38b6f0aadd0d5a83cd251 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaakko=20Ker=C3=A4nen?= Date: Mon, 26 Jul 2021 15:07:15 +0300 Subject: [PATCH 5/8] Depends: Yet more build fixings --- Depends.cmake | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Depends.cmake b/Depends.cmake index 612ad0dcd..886efc1b5 100644 --- a/Depends.cmake +++ b/Depends.cmake @@ -32,7 +32,7 @@ if (ENABLE_HARFBUZZ AND EXISTS ${CMAKE_SOURCE_DIR}/lib/harfbuzz/CMakeLists.txt) STEP_TARGETS install ) add_library (harfbuzz-lib INTERFACE) - add_dependencies (harfbuzz-lib harfbuzz-install harfbuzz-ext) + add_dependencies (harfbuzz-lib harfbuzz-ext-install harfbuzz-ext) target_include_directories (harfbuzz-lib INTERFACE ${_dst}/include/harfbuzz) if (MSYS) # Link dynamically. @@ -104,7 +104,7 @@ if (ENABLE_FRIBIDI AND EXISTS ${CMAKE_SOURCE_DIR}/lib/fribidi) "GNU FriBidi must be built with Meson. Please install Meson and Ninja and try again, or provide FriBidi via pkg-config.") endif () add_library (fribidi-lib INTERFACE) - add_dependencies (fribidi-lib fribidi-install fribidi-ext) + add_dependencies (fribidi-lib fribidi-ext-install fribidi-ext) target_include_directories (fribidi-lib INTERFACE ${_dst}/include) target_link_libraries (fribidi-lib INTERFACE ${_dst}/lib/libfribidi.a) set (FRIBIDI_FOUND YES) From 89e683f2f28ff6e41dfde2470d1ed0d5f0cb8c78 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaakko=20Kera=CC=88nen?= Date: Mon, 26 Jul 2021 15:18:15 +0300 Subject: [PATCH 6/8] Depends: Trying a different tracking method The external project install targets are not being executed in time, maybe this helps? --- CMakeLists.txt | 1 + Depends.cmake | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index c5d5f6101..7095173ec 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -275,6 +275,7 @@ endif () # Target. add_executable (app ${SOURCES} ${RESOURCES}) +add_dependencies (app ext-deps) set_target_properties (app PROPERTIES OUTPUT_NAME lagrange) target_include_directories (app PUBLIC src diff --git a/Depends.cmake b/Depends.cmake index 886efc1b5..21c91fda6 100644 --- a/Depends.cmake +++ b/Depends.cmake @@ -8,6 +8,8 @@ find_program (MESON_EXECUTABLE meson DOC "Meson build system") find_program (NINJA_EXECUTABLE ninja DOC "Ninja build tool") include (ExternalProject) +set (_dependsToBuild) + if (ENABLE_HARFBUZZ AND EXISTS ${CMAKE_SOURCE_DIR}/lib/harfbuzz/CMakeLists.txt) # Find HarfBuzz with pkg-config. if (NOT ENABLE_HARFBUZZ_MINIMAL AND PKG_CONFIG_FOUND) @@ -29,10 +31,9 @@ if (ENABLE_HARFBUZZ AND EXISTS ${CMAKE_SOURCE_DIR}/lib/harfbuzz/CMakeLists.txt) --prefix ${_dst} BUILD_COMMAND ${NINJA_EXECUTABLE} INSTALL_COMMAND ${NINJA_EXECUTABLE} install - STEP_TARGETS install ) + list (APPEND _dependsToBuild harfbuzz-ext) add_library (harfbuzz-lib INTERFACE) - add_dependencies (harfbuzz-lib harfbuzz-ext-install harfbuzz-ext) target_include_directories (harfbuzz-lib INTERFACE ${_dst}/include/harfbuzz) if (MSYS) # Link dynamically. @@ -96,21 +97,22 @@ if (ENABLE_FRIBIDI AND EXISTS ${CMAKE_SOURCE_DIR}/lib/fribidi) --prefix ${_dst} BUILD_COMMAND ${NINJA_EXECUTABLE} INSTALL_COMMAND ${NINJA_EXECUTABLE} install - STEP_TARGETS install BUILD_BYPRODUCTS ${_dst}/lib/libfribidi.a ) + list (APPEND _dependsToBuild fribidi-ext) else () message (FATAL_ERROR "GNU FriBidi must be built with Meson. Please install Meson and Ninja and try again, or provide FriBidi via pkg-config.") endif () add_library (fribidi-lib INTERFACE) - add_dependencies (fribidi-lib fribidi-ext-install fribidi-ext) target_include_directories (fribidi-lib INTERFACE ${_dst}/include) target_link_libraries (fribidi-lib INTERFACE ${_dst}/lib/libfribidi.a) set (FRIBIDI_FOUND YES) endif () endif () +add_custom_target (ext-deps DEPENDS ${_dependsToBuild}) + if (NOT EXISTS ${CMAKE_SOURCE_DIR}/lib/the_Foundation/CMakeLists.txt) set (INSTALL_THE_FOUNDATION YES) find_package (the_Foundation REQUIRED) From 7ae993868b464743ea2587e92f99e3dbfcd3e677 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaakko=20Ker=C3=A4nen?= Date: Mon, 26 Jul 2021 15:31:03 +0300 Subject: [PATCH 7/8] Depends: Yet more build fixings --- Depends.cmake | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Depends.cmake b/Depends.cmake index 21c91fda6..994e1b1c8 100644 --- a/Depends.cmake +++ b/Depends.cmake @@ -29,8 +29,8 @@ if (ENABLE_HARFBUZZ AND EXISTS ${CMAKE_SOURCE_DIR}/lib/harfbuzz/CMakeLists.txt) -Dcairo=disabled -Dicu=disabled -Dfreetype=disabled -Ddocs=disabled --prefix ${_dst} - BUILD_COMMAND ${NINJA_EXECUTABLE} - INSTALL_COMMAND ${NINJA_EXECUTABLE} install + BUILD_COMMAND ${NINJA_EXECUTABLE} install + INSTALL_COMMAND "" ) list (APPEND _dependsToBuild harfbuzz-ext) add_library (harfbuzz-lib INTERFACE) @@ -95,8 +95,8 @@ if (ENABLE_FRIBIDI AND EXISTS ${CMAKE_SOURCE_DIR}/lib/fribidi) -Dc_flags=-Wno-macro-redefined -Dlibdir=lib --prefix ${_dst} - BUILD_COMMAND ${NINJA_EXECUTABLE} - INSTALL_COMMAND ${NINJA_EXECUTABLE} install + BUILD_COMMAND ${NINJA_EXECUTABLE} install + INSTALL_COMMAND "" BUILD_BYPRODUCTS ${_dst}/lib/libfribidi.a ) list (APPEND _dependsToBuild fribidi-ext) From 1102b919df8d9f9e8e12230474cc9e088e488975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaakko=20Kera=CC=88nen?= Date: Mon, 26 Jul 2021 17:50:21 +0300 Subject: [PATCH 8/8] Updated AppData for v1.6 --- res/fi.skyjake.Lagrange.appdata.xml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/res/fi.skyjake.Lagrange.appdata.xml b/res/fi.skyjake.Lagrange.appdata.xml index b6344f452..553923c2a 100644 --- a/res/fi.skyjake.Lagrange.appdata.xml +++ b/res/fi.skyjake.Lagrange.appdata.xml @@ -45,6 +45,20 @@ jaakko.keranen@iki.fi + + +

Version 1.6 adds support for bidirectional text and complex scripts, + right-to-left paragraph layout, uploads using the Titan protocol, + and has an improved mechanism for tracking trust in server + certificates. Page contents can be fully cached in memory for more + efficient backward navigation. There are also UI improvements like + a reorganized Preferences and a setting for smooth scrolling + speed.

+

The full release notes can be viewed inside the app by opening + the "about:version" page.

+
+ https://github.com/skyjake/lagrange/releases/tag/v1.6.0 +

Bug fixes and tweaks: