From 9f8bd77d7b62b8f642fd8a8d3fd3a73b183cfdf4 Mon Sep 17 00:00:00 2001 From: James McCoy Date: Tue, 10 Jul 2018 23:16:13 -0400 Subject: test/includes: Use ${gen_cdefs} when pre-processing headers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Now that uv.h is directly being included, pre-processing of test/includes/pre/uv.h fails on Linux with In file included from «SRCDIR»/neovim/test/includes/pre/uv.h:1: In file included from /usr/include/uv.h:62: /usr/include/uv/unix.h:72:11: fatal error: 'uv/pthread-barrier.h' file not found # include "uv/pthread-barrier.h" ^~~~~~~~~~~~~~~~~~~~~~ 1 error generated. This happens because we're missing -D_GNU_SOURCE (part of ${gen_cdefs}), which makes the pthread_barrier_* functionality visible. --- test/includes/CMakeLists.txt | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'test/includes') diff --git a/test/includes/CMakeLists.txt b/test/includes/CMakeLists.txt index 2846df0e37..4d7e962fbd 100644 --- a/test/includes/CMakeLists.txt +++ b/test/includes/CMakeLists.txt @@ -7,6 +7,13 @@ foreach(gen_include ${CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES}) list(APPEND gen_cflags ${CMAKE_INCLUDE_FLAG_C}${gen_include}) endforeach() +get_directory_property(gen_cdefs COMPILE_DEFINITIONS) +foreach(gen_cdef ${gen_cdefs}) + if(NOT ${gen_cdef} MATCHES "INCLUDE_GENERATED_DECLARATIONS") + list(APPEND gen_cflags "-D${gen_cdef}") + endif() +endforeach() + foreach(hfile ${PRE_HEADERS}) string(REGEX REPLACE ^pre/ post/ post_hfile ${hfile}) get_filename_component(hdir ${CMAKE_CURRENT_BINARY_DIR}/${post_hfile} PATH) -- cgit