initial commit
This commit is contained in:
59
cmake/libhttpserver.cmake
Normal file
59
cmake/libhttpserver.cmake
Normal file
@@ -0,0 +1,59 @@
|
||||
set(LIBHTTPSERVER_PROJECT_NAME libhttpserver_${LIBHTTPSERVER_VERSION})
|
||||
set(LIBHTTPSERVER_BUILD_ROOT ${EXTERNAL_BUILD_ROOT}/builds/${LIBHTTPSERVER_PROJECT_NAME})
|
||||
|
||||
if (MSVC)
|
||||
add_custom_target(libhttpserver_project DEPENDS libmicrohttpd_project)
|
||||
|
||||
include_directories(SYSTEM
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/3rd_party/glue
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/3rd_party/libhttpserver-${LIBHTTPSERVER_VERSION}/src
|
||||
)
|
||||
set(REPERTORY_HEADERS
|
||||
${REPERTORY_HEADERS}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/3rd_party/glue/pthread.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/3rd_party/glue/strings.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/3rd_party/glue/unistd.h
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/3rd_party/glue/sys/time.h
|
||||
)
|
||||
set(REPERTORY_SOURCES
|
||||
${REPERTORY_SOURCES}
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/3rd_party/libhttpserver-${LIBHTTPSERVER_VERSION}/src/details/http_endpoint.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/3rd_party/libhttpserver-${LIBHTTPSERVER_VERSION}/src/string_utilities.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/3rd_party/libhttpserver-${LIBHTTPSERVER_VERSION}/src/string_response.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/3rd_party/libhttpserver-${LIBHTTPSERVER_VERSION}/src/http_utils.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/3rd_party/libhttpserver-${LIBHTTPSERVER_VERSION}/src/http_resource.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/3rd_party/libhttpserver-${LIBHTTPSERVER_VERSION}/src/http_request.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/3rd_party/libhttpserver-${LIBHTTPSERVER_VERSION}/src/http_response.cpp
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/3rd_party/libhttpserver-${LIBHTTPSERVER_VERSION}/src/webserver.cpp
|
||||
)
|
||||
add_definitions(-DHTTPSERVER_COMPILATION)
|
||||
else()
|
||||
set (LIBHTTPSERVER_CXX_FLAGS "${CMAKE_CXX_FLAGS} -I${EXTERNAL_BUILD_ROOT}/include")
|
||||
set (LIBHTTPSERVER_LDFLAGS "-L${EXTERNAL_BUILD_ROOT}/lib")
|
||||
set(LIBHTTPSERVER_MAKE make)
|
||||
set(LIBHTTPSERVER_SED "sed -i -e s/have_gnutls=\"yes\"/have_gnutls=\"no\"/g ./configure")
|
||||
|
||||
if (MACOS)
|
||||
set (LIBHTTPSERVER_CXX g++)
|
||||
set (LIBHTTPSERVER_CC gcc)
|
||||
set(LIBHTTPSERVER_CXX_FLAGS "${LIBHTTPSERVER_CXX_FLAGS} -fvisibility=hidden")
|
||||
else()
|
||||
set (LIBHTTPSERVER_CXX ${CMAKE_CXX_COMPILER})
|
||||
set (LIBHTTPSERVER_CC ${CMAKE_C_COMPILER})
|
||||
endif()
|
||||
|
||||
ExternalProject_Add(libhttpserver_project
|
||||
DOWNLOAD_NO_PROGRESS 1
|
||||
BUILD_IN_SOURCE 1
|
||||
URL https://github.com/etr/libhttpserver/archive/${LIBHTTPSERVER_VERSION}.tar.gz
|
||||
PREFIX ${LIBHTTPSERVER_BUILD_ROOT}
|
||||
CONFIGURE_COMMAND ./bootstrap && sh -c "${LIBHTTPSERVER_SED}"
|
||||
BUILD_COMMAND mkdir -p build && cd build && ../configure MAKE=${LIBHTTPSERVER_MAKE}
|
||||
CXX=${LIBHTTPSERVER_CXX} CC=${LIBHTTPSERVER_CC} CXXFLAGS=${LIBHTTPSERVER_CXX_FLAGS}
|
||||
LDFLAGS=${LIBHTTPSERVER_LDFLAGS} CPPFLAGS=-fpermissive --prefix=${EXTERNAL_BUILD_ROOT}
|
||||
--enable-static=yes --enable-shared=yes --disable-examples --disable-doxygen-doc && ${LIBHTTPSERVER_MAKE}
|
||||
INSTALL_COMMAND cd build && ${LIBHTTPSERVER_MAKE} install
|
||||
)
|
||||
set(LIBHTTPSERVER_LIBRARIES ${EXTERNAL_BUILD_ROOT}/lib/libhttpserver.a)
|
||||
endif()
|
||||
add_dependencies(libhttpserver_project libmicrohttpd_project)
|
||||
Reference in New Issue
Block a user