typesense/cmake/H2O.cmake
2022-12-18 20:49:51 +05:30

52 lines
1.9 KiB
CMake

# Download and build H2O
set(H2O_VERSION 1491a703195790278091fd7aee547fbba78e89af)
set(H2O_NAME h2o-${H2O_VERSION})
set(H2O_TAR_PATH ${DEP_ROOT_DIR}/${H2O_NAME}.tar.gz)
if(NOT EXISTS ${H2O_TAR_PATH})
message(STATUS "Downloading https://github.com/h2o/h2o/archive/${H2O_VERSION}.tar.gz")
file(DOWNLOAD https://github.com/h2o/h2o/archive/${H2O_VERSION}.tar.gz ${H2O_TAR_PATH})
endif()
if(NOT EXISTS ${DEP_ROOT_DIR}/${H2O_NAME})
message(STATUS "Extracting ${H2O_NAME}...")
execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf ${H2O_TAR_PATH} WORKING_DIRECTORY ${DEP_ROOT_DIR}/)
endif()
if(NOT EXISTS ${DEP_ROOT_DIR}/${H2O_NAME}/build/libh2o-evloop.a)
message("Configuring ${H2O_NAME}...")
file(MAKE_DIRECTORY ${DEP_ROOT_DIR}/${H2O_NAME}/build)
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory deps/picotls/include include/h2o
WORKING_DIRECTORY ${DEP_ROOT_DIR}/${H2O_NAME})
execute_process(COMMAND ${CMAKE_COMMAND} -E copy_directory deps/quicly/include include/h2o
WORKING_DIRECTORY ${DEP_ROOT_DIR}/${H2O_NAME})
execute_process(COMMAND ${CMAKE_COMMAND}
-DCMAKE_FIND_LIBRARY_SUFFIXES=.a
-DCMAKE_CXX_FLAGS="-DNDEBUG"
-DCMAKE_C_FLAGS="-DNDEBUG"
-DWITH_MRUBY=off
"-H${DEP_ROOT_DIR}/${H2O_NAME}"
"-B${DEP_ROOT_DIR}/${H2O_NAME}/build"
RESULT_VARIABLE
H2O_CONFIGURE)
if(NOT H2O_CONFIGURE EQUAL 0)
message(FATAL_ERROR "${H2O_NAME} configure failed!")
endif()
if(BUILD_DEPS STREQUAL "yes")
message("Building ${H2O_NAME} locally...")
execute_process(COMMAND ${CMAKE_COMMAND} --build
"${DEP_ROOT_DIR}/${H2O_NAME}/build"
--target libh2o-evloop
RESULT_VARIABLE
H2O_BUILD)
if(NOT H2O_BUILD EQUAL 0)
message(FATAL_ERROR "${H2O_NAME} build failed!")
endif()
endif()
endif()