INCLUDE(CheckIncludeFile) IF (NOT ENDIAN_H_PATH) SET(COMPAT_ENDIAN_H "${LIGHTSD_SOURCE_DIR}/compat/${CMAKE_SYSTEM_NAME}/endian.h") SET(GENERIC_ENDIAN_H "${LIGHTSD_SOURCE_DIR}/compat/generic/endian.h") SET(CMAKE_REQUIRED_QUIET TRUE) MESSAGE(STATUS "Looking for endian.h") CHECK_INCLUDE_FILE("endian.h" HAVE_ENDIAN_H) UNSET(CMAKE_REQUIRED_QUIET) IF (HAVE_ENDIAN_H) MESSAGE(STATUS "Looking for endian.h - found") SET(ENDIAN_H_PATH "using native headers" CACHE INTERNAL "endian.h path") ELSEIF (EXISTS "${COMPAT_ENDIAN_H}" OR EXISTS "${COMPAT_ENDIAN_H}.in") MESSAGE(STATUS "Looking for endian.h - not found, using built-in compatibility file") IF (EXISTS "${COMPAT_ENDIAN_H}") FILE(COPY "${COMPAT_ENDIAN_H}" DESTINATION "${LIGHTSD_BINARY_DIR}/compat/") SET(ENDIAN_H_PATH "${COMPAT_ENDIAN_H}" CACHE INTERNAL "endian.h path") ELSE () CONFIGURE_FILE("${COMPAT_ENDIAN_H}.in" "${LIGHTSD_BINARY_DIR}/compat/endian.h") SET(ENDIAN_H_PATH "${COMPAT_ENDIAN_H}.in" CACHE INTERNAL "endian.h path") ENDIF () ELSE () MESSAGE(STATUS "Looking for endian.h - not found") ENDIF () ENDIF () FIND_PACKAGE_HANDLE_STANDARD_ARGS(Endian DEFAULT_MSG ENDIAN_H_PATH)