odyssey/cmake/BuildLIBUV.cmake

31 lines
1.4 KiB
CMake

macro(build_libuv)
set(LIBUV_INCLUDE_DIRS ${PROJECT_SOURCE_DIR}/lib/libuv/include)
set(LIBUV_OPTS CFLAGS="${CMAKE_C_FLAGS}" LDFLAGS="${CMAKE_STATIC_LINKER_FLAGS}")
separate_arguments(LIBUV_OPTS)
if (${PROJECT_BINARY_DIR} STREQUAL ${PROJECT_SOURCE_DIR})
add_custom_command(
OUTPUT ${PROJECT_BINARY_DIR}/lib/libuv/.libs/libuv${CMAKE_STATIC_LIBRARY_SUFFIX}
COMMAND cd ${PROJECT_BINARY_DIR}/lib/libuv && ./autogen.sh
COMMAND cd ${PROJECT_BINARY_DIR}/lib/libuv && ./configure
COMMAND ${CMAKE_MAKE_PROGRAM} ${LIBUV_OPTS} -C ${PROJECT_BINARY_DIR}/lib/libuv
)
else()
add_custom_command(
OUTPUT ${PROJECT_BINARY_DIR}/lib/libuv/.libs/libuv${CMAKE_STATIC_LIBRARY_SUFFIX}
COMMAND ${CMAKE_COMMAND} -E make_directory ${PROJECT_BINARY_DIR}/lib/libuv
COMMAND ${CMAKE_COMMAND} -E copy_directory ${PROJECT_SOURCE_DIR}/lib/libuv ${PROJECT_BINARY_DIR}/lib/libuv
COMMAND cd ${PROJECT_BINARY_DIR}/lib/libuv && ./autogen.sh
COMMAND cd ${PROJECT_BINARY_DIR}/lib/libuv && ./configure
COMMAND ${CMAKE_MAKE_PROGRAM} ${LIBUV_OPTS} -C ${PROJECT_BINARY_DIR}/lib/libuv
)
endif()
add_custom_target(libuv ALL
DEPENDS ${PROJECT_BINARY_DIR}/lib/libuv/.libs/libuv${CMAKE_STATIC_LIBRARY_SUFFIX}
)
message(STATUS "Use shipped libuv: ${PROJECT_SOURCE_DIR}/lib/libuv")
set (LIBUV_LIBRARIES "${PROJECT_BINARY_DIR}/lib/libuv/.libs/libuv${CMAKE_STATIC_LIBRARY_SUFFIX}")
set (LIBUV_FOUND 1)
add_dependencies(build_libs libuv)
endmacro(build_libuv)