60 lines
3.0 KiB
CMake
60 lines
3.0 KiB
CMake
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)
|