gui-apps/organicmaps: reduce clones

The code is from https://github.com/organicmaps/organicmaps/issues/2217#issuecomment-1868159186

Signed-off-by: Vitaly Zdanevich <zdanevich.vitaly@ya.ru>
This commit is contained in:
Vitaly Zdanevich
2023-12-25 10:02:13 +04:00
parent c41f1c4d35
commit 1a22ea7cee
3 changed files with 101 additions and 23 deletions

View File

@@ -0,0 +1,46 @@
From b77c26e242945fe06be94059b87c3c2eebdb78eb Mon Sep 17 00:00:00 2001
From: Gerion Entrup <gerion.entrup@flump.de>
Date: Fri, 8 Dec 2023 23:45:56 +0100
Subject: [PATCH] cmake: use some internal libraries without external
alternative
---
3party/CMakeLists.txt | 6 +++---
base/CMakeLists.txt | 4 +---
2 files changed, 4 insertions(+), 6 deletions(-)
diff --git a/3party/CMakeLists.txt b/3party/CMakeLists.txt
index bd44e1b7b8..4f5cb99807 100644
--- a/3party/CMakeLists.txt
+++ b/3party/CMakeLists.txt
@@ -34,11 +34,11 @@ else()
# Add pugixml library.
add_subdirectory(pugixml)
-
- # Add protobuf library.
- add_subdirectory(protobuf)
endif()
+# Add protobuf library.
+add_subdirectory(protobuf)
+
add_subdirectory(agg)
add_subdirectory(bsdiff-courgette)
diff --git a/base/CMakeLists.txt b/base/CMakeLists.txt
index 7e762b242a..0d7d6c5d10 100644
--- a/base/CMakeLists.txt
+++ b/base/CMakeLists.txt
@@ -111,8 +111,6 @@ set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
target_link_libraries(${PROJECT_NAME} INTERFACE Threads::Threads)
-if (NOT WITH_SYSTEM_PROVIDED_3PARTY)
- target_include_directories(${PROJECT_NAME} PRIVATE "${OMIM_ROOT}/3party/fast_double_parser/include")
-endif()
+target_include_directories(${PROJECT_NAME} PRIVATE "${OMIM_ROOT}/3party/fast_double_parser/include")
omim_add_test_subdirectory(base_tests)
--
2.41.0

View File

@@ -0,0 +1,15 @@
diff --git a/transit/world_feed/world_feed_integration_tests/CMakeLists.txt b/transit/world_feed/world_feed_integration_tests/CMakeLists.txt
index 9f945568d4..ec9755ab09 100644
--- a/transit/world_feed/world_feed_integration_tests/CMakeLists.txt
+++ b/transit/world_feed/world_feed_integration_tests/CMakeLists.txt
@@ -10,7 +10,9 @@ target_link_libraries(${PROJECT_NAME}
)
# This test requires additional data from the other repository
-set(TEST_DATA_REPO_URL "https://github.com/organicmaps/world_feed_integration_tests_data.git")
+if(NOT TEST_DATA_REPO_URL)
+ set(TEST_DATA_REPO_URL "https://github.com/organicmaps/world_feed_integration_tests_data.git")
+endif()
set(DESTINATION_FOLDER "${OMIM_DATA_DIR}/world_feed_integration_tests_data/")
add_custom_command(

View File

@@ -5,6 +5,18 @@ EAPI=8
inherit git-r3 xdg cmake
EGIT_REPO_URI="https://github.com/${PN}/${PN}.git"
# this URL is to make the tests compile since organicmaps usually dynamically clones the repo
# maybe a better way would be to skip the test
EGIT_WORLD_FEED_REPO_URI="https://github.com/${PN}/world_feed_integration_tests_data.git"
# organicmaps gets more and more system libraries, we use as many
# as currently possible, use submodules for the rest
EGIT_SUBMODULES=(
3party/harfbuzz/harfbuzz
3party/fast_double_parser
3party/just_gtfs
3party/protobuf/protobuf # wait for https://github.com/organicmaps/organicmaps/pull/6310
3party/fast_obj
)
DESCRIPTION="Offline maps and navigation using OpenStreetMap data"
HOMEPAGE="https://organicmaps.app"
@@ -12,38 +24,43 @@ HOMEPAGE="https://organicmaps.app"
LICENSE="Apache-2.0"
SLOT="0"
DEPEND="sys-devel/clang
>=dev-util/cmake-3.18.1
dev-util/ninja
media-libs/freetype
dev-libs/icu
>=dev-qt/qtpositioning-6
sys-libs/libstdc++-v3
dev-qt/qtcore
dev-qt/qtsvg
# depend on sys-libs/zlib[minizip] when it is not pulled in as subproject anymore
RDEPEND="
dev-cpp/gflags
dev-db/sqlite
sys-libs/zlib[minizip]"
RDEPEND=""
dev-lang/python
dev-libs/boost
dev-libs/icu
dev-qt/qtpositioning:6
dev-util/vulkan-headers
media-libs/freetype
sys-libs/zlib
"
DEPEND="${RDEPEND}"
src_prepare() {
eapply_user
PATCHES=( "${FILESDIR}"/more-3party.patch "${FILESDIR}"/no-dynamic-download.patch )
cmake_src_prepare
WORLD_FEED_TESTS_S="${WORKDIR}/world_feed_integration_tests_data-${PV}"
src_unpack () {
git-r3_fetch
git-r3_checkout
git-r3_fetch "${EGIT_WORLD_FEED_REPO_URI}"
git-r3_checkout "${EGIT_WORLD_FEED_REPO_URI}" "${WORLD_FEED_TESTS_S}"
}
src_configure() {
# organicmaps wants a ./configure.sh execution.
# However, this setups mainly stuff for Android and XCode builds that we don't need.
# We need just this line here
cp private_default.h private.h || die
CMAKE_BUILD_TYPE="RelWithDebInfo"
local mycmakeargs=(
-DBUILD_SHARED_LIBS=False
-DINSTALL_GTEST=off
-DUNITY_DISABLE=on
-DPLATFORM_DESKTOP=true
-DSKIP_TESTS=on
-DWITH_SYSTEM_PROVIDED_3PARTY=yes
-DBUILD_SHARED_LIBS=off
-DTEST_DATA_REPO_URL="${WORLD_FEED_TESTS_S}"
)
echo | ./configure.sh
cmake_src_configure
}