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
|
From f7ccb8ea7471edb2c5eed8d29b39f7112da7a450 Mon Sep 17 00:00:00 2001
From: Czarek Nakamoto <cyjan@mrcyjanek.net>
Date: Fri, 20 Feb 2026 08:03:01 +0100
Subject: [PATCH 16/16] drop generate_translations_header.c requirement
---
CMakeLists.txt | 11 ++----
translations/CMakeLists.txt | 79 +++++++++++++------------------------
2 files changed, 31 insertions(+), 59 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a620e8a37..6343a3066 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)
@@ -667,16 +667,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.51.0
|