Skip to content

Commit

Permalink
CMake: Restore order-dependent header checks
Browse files Browse the repository at this point in the history
Revert commit 1269df2 (Cmake: Don't check for all headers each
time, 2014-08-15) and add a comment explaining the purpose of the
original code.

The check_include_file_concat macro is intended to be called multiple
times on a sequence of possibly dependent headers.  Later headers
may depend on earlier headers to provide declarations.  They cannot
be safely included independently on some platforms.

For example, many POSIX APIs document including sys/types.h before some
other headers.  Also on some OS X versions sys/socket.h must be included
before net/if.h or the check for the latter will fail.

Signed-off-by: Brad King <[email protected]>
  • Loading branch information
bradking authored and bagder committed Nov 13, 2014
1 parent 8bdecd3 commit 1ae06e0
Showing 1 changed file with 4 additions and 1 deletion.
5 changes: 4 additions & 1 deletion CMake/Macros.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,11 @@ macro(CHECK_LIBRARY_EXISTS_CONCAT LIBRARY SYMBOL VARIABLE)
endmacro(CHECK_LIBRARY_EXISTS_CONCAT)

# Check if header file exists and add it to the list.
# This macro is intended to be called multiple times with a sequence of
# possibly dependent header files. Some headers depend on others to be
# compiled correctly.
macro(CHECK_INCLUDE_FILE_CONCAT FILE VARIABLE)
check_include_file("${FILE}" ${VARIABLE})
check_include_files("${CURL_INCLUDES};${FILE}" ${VARIABLE})
if(${VARIABLE})
set(CURL_INCLUDES ${CURL_INCLUDES} ${FILE})
set(CURL_TEST_DEFINES "${CURL_TEST_DEFINES} -D${VARIABLE}")
Expand Down

0 comments on commit 1ae06e0

Please sign in to comment.