summaryrefslogtreecommitdiff
path: root/patches/monero/0019-drop-generate_translations_header.c-requirement.patch
blob: 0c4eba0ea75fb7d4c4461e07b1a0a00967f9c9cd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
From 31362e91fd086102e8a0f4bc90cfe707d60a8bc6 Mon Sep 17 00:00:00 2001
From: Czarek Nakamoto <cyjan@mrcyjanek.net>
Date: Fri, 20 Feb 2026 08:03:01 +0100
Subject: [PATCH] drop generate_translations_header.c requirement

---
 CMakeLists.txt              | 15 +++----
 translations/CMakeLists.txt | 79 +++++++++++++------------------------
 2 files changed, 33 insertions(+), 61 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f6e11ef56..eabe4bec7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -71,7 +71,7 @@ if (${CMAKE_VERSION} VERSION_GREATER "3.0.0" AND CMAKE_MAKE_PROGRAM MATCHES "nin
     set(CMAKE_JOB_POOL_LINK link_job_pool)
   endif ()
 endif ()
-  
+
 option (USE_CLANG_TIDY_C   "Lint the code with clang-tidy - variant C"   OFF)
 option (USE_CLANG_TIDY_CXX "Lint the code with clang-tidy - variant C++" OFF)
 if (USE_CLANG_TIDY_C AND USE_CLANG_TIDY_CXX)
@@ -359,7 +359,7 @@ if(NOT MANUAL_SUBMODULES)
         message(FATAL_ERROR "Submodule '${relative_path}' is not up-to-date. Please update all submodules with\ngit submodule update --init --force\nor run cmake with -DMANUAL_SUBMODULES=1\n")
       endif()
     endfunction ()
-    
+
     message(STATUS "Checking submodules")
 #    check_submodule(external/bc-ur)
     check_submodule(external/miniupnp)
@@ -666,16 +666,11 @@ endfunction ()
 # Generate header for embedded translations
 # Generate header for embedded translations, use target toolchain if depends, otherwise use the
 # lrelease and lupdate binaries from the host
-include(ExternalProject)
-ExternalProject_Add(generate_translations_header
-  SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/translations"
-  BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/translations"
-  STAMP_DIR ${LRELEASE_PATH}
-  CMAKE_ARGS -DLRELEASE_PATH=${LRELEASE_PATH}
-  INSTALL_COMMAND ${CMAKE_COMMAND} -E echo "")
+add_subdirectory(translations)
 include_directories("${CMAKE_CURRENT_BINARY_DIR}/translations")
 add_subdirectory(external)
 
+
 # Final setup for libunbound
 include_directories(${UNBOUND_INCLUDE_DIR})
 
diff --git a/translations/CMakeLists.txt b/translations/CMakeLists.txt
index 3b43360f8..d88a78ced 100644
--- a/translations/CMakeLists.txt
+++ b/translations/CMakeLists.txt
@@ -30,54 +30,31 @@ cmake_minimum_required(VERSION 3.5)
 
 project(translations)
 
-# when crosscompiling import the executable targets from a file
-IF(CMAKE_CROSSCOMPILING)
-  message(WARNING "CrossCompiling")
-  SET(IMPORT_EXECUTABLES "${CMAKE_CURRENT_BINARY_DIR}/ImportExecutables.cmake" CACHE FILEPATH "Point it to the export file from a native build")
-  INCLUDE(${IMPORT_EXECUTABLES})
-ENDIF(CMAKE_CROSSCOMPILING)
-
-# only build the generator if not crosscompiling
-IF(NOT CMAKE_CROSSCOMPILING)
-  add_executable(generate_translations_header generate_translations_header.c)
-ENDIF(NOT CMAKE_CROSSCOMPILING)
-
-if(LRELEASE_PATH STREQUAL "")
-  find_program(LRELEASE lrelease)
-else()
-  set(LRELEASE ${LRELEASE_PATH}/lrelease)
-endif()
-
-if(LRELEASE STREQUAL "LRELEASE-NOTFOUND")
-  set(ts_files "")
-  message(WARNING "lrelease program not found, translation files not built")
-else()
-  execute_process(COMMAND ${LRELEASE} -version
-    RESULT_VARIABLE lrelease_ret)
-  if(NOT lrelease_ret EQUAL "0")
-    set(ts_files "")
-    message(WARNING "lrelease program not working, translation files not built")
-  else()
-    file(GLOB ts_files RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}" *.ts)
-    foreach(ts_file ${ts_files})
-      string(REPLACE ".ts" ".qm" qm_file "${ts_file}")
-      add_custom_command(TARGET generate_translations_header
-        PRE_BUILD
-        COMMAND ${LRELEASE} "${CMAKE_CURRENT_SOURCE_DIR}/${ts_file}" -qm "${qm_file}"
-        WORKING_DIRECTORY "${CMAKE_CURRENT_BIN_DIR}")
-    endforeach()
-  endif()
-endif()
-
-string(REPLACE ".ts" ".qm" qm_files "${ts_files}")
-
-add_custom_command(TARGET generate_translations_header
-  POST_BUILD
-  COMMAND $<TARGET_FILE:generate_translations_header> ${qm_files}
-  WORKING_DIRECTORY "${CMAKE_CURRENT_BIN_DIR}"
-  COMMENT "Generating embedded translations header")
-
-# export the generator target to a file, so it can be imported (see above) by another build
-IF(NOT CMAKE_CROSSCOMPILING)
-  EXPORT(TARGETS generate_translations_header FILE ${CMAKE_CURRENT_BINARY_DIR}/ImportExecutables.cmake )
-ENDIF(NOT CMAKE_CROSSCOMPILING)
+add_custom_target(generate_translations_header)
+
+file(WRITE "${CMAKE_CURRENT_BINARY_DIR}/translation_files.h"
+"#ifndef TRANSLATION_FILES_H
+#define TRANSLATION_FILES_H
+
+#include <string>
+
+static const struct embedded_file {
+  const std::string *name;
+  const std::string *data;
+} embedded_files[] = {
+  {NULL, NULL}
+};
+
+static bool find_embedded_file(const std::string &name, std::string &data) {
+  const struct embedded_file *p;
+  for (p = embedded_files; p->name != NULL; p++) {
+    if (*p->name == name) {
+      data = *p->data;
+      return true;
+    }
+  }
+  return false;
+}
+
+#endif /* TRANSLATION_FILES_H */
+")
-- 
2.50.1 (Apple Git-155)