From f9a3aa72c2bf15726bcdafd140fd21f790de555d Mon Sep 17 00:00:00 2001 From: Bartosz Golaszewski 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 --- 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