hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
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
From f9a3aa72c2bf15726bcdafd140fd21f790de555d Mon Sep 17 00:00:00 2001
From: Bartosz Golaszewski <brgl@bgdev.pl>
Date: Wed, 21 Jun 2017 14:32:25 +0200
Subject: [PATCH] build: fix the way lang_cfg.h is generated
 
This header is generated by running cmake/lang_cfg.cmake and
redirecting its stderr. If any warning is emitted by this script, it
ends up in the generated header and breaks the build.
 
To avoid such problems: pass the path to the header as an argument to
the cmake script and use the cmake 'file' command instead of 'message'.
 
We can't even use message(STATUS...) as - although it prints to stdout
as opposed to other types of messages - it prepends all output with
a double hyphen.
 
Signed-off-by: Bartosz Golaszewski <brgl@bgdev.pl>
---
 cmake/lang_cfg.cmake | 10 +++++-----
 src/CMakeLists.txt   |  2 +-
 2 files changed, 6 insertions(+), 6 deletions(-)
 
diff --git a/cmake/lang_cfg.cmake b/cmake/lang_cfg.cmake
index c57d3ed..86c2d9a 100644
--- a/cmake/lang_cfg.cmake
+++ b/cmake/lang_cfg.cmake
@@ -1,10 +1,10 @@
-if(${CMAKE_ARGC} GREATER 1)
-    if ("${CMAKE_ARGV3}" STREQUAL "ENONLY")
-        message("#define ENGLISH_ONLY")
+if(${CMAKE_ARGC} GREATER 2)
+    if ("${CMAKE_ARGV4}" STREQUAL "ENONLY")
+        file(APPEND ${CMAKE_ARGV3} " #define ENGLISH_ONLY")
     else()
         math(EXPR UPTO ${CMAKE_ARGC}-1)
-        foreach(i RANGE 3 ${UPTO})
-            message("#define LANG_${CMAKE_ARGV${i}}")
+        foreach(i RANGE 4 ${UPTO})
+            file(APPEND ${CMAKE_ARGV3} " #define LANG_${CMAKE_ARGV${i}}")
         endforeach()
     endif()
 endif()
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 08c8439..dcf4ef8 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -73,7 +73,7 @@ set_source_files_properties(${GENERATED_SRC}/ce_parse.h PROPERTIES GENERATED 1)
 # lang_cfg.h
 add_custom_command(
     COMMENT  "Generating ${GENERATED_SRC}/lang_cfg.h"
-    COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/cmake/lang_cfg.cmake ${LANG_CODES} 2> ${GENERATED_SRC}/lang_cfg.h
+    COMMAND ${CMAKE_COMMAND} -P ${CMAKE_SOURCE_DIR}/cmake/lang_cfg.cmake ${GENERATED_SRC}/lang_cfg.h ${LANG_CODES}
     DEPENDS ${LANGUAGE_FILES}
     OUTPUT ${GENERATED_SRC}/lang_cfg.h
 )
-- 
2.9.3