aboutsummaryrefslogtreecommitdiffstats
path: root/CMakeLists.txt
diff options
context:
space:
mode:
Diffstat (limited to 'CMakeLists.txt')
-rw-r--r--CMakeLists.txt101
1 files changed, 64 insertions, 37 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 8b51e1b3..674f0386 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -23,66 +23,93 @@ endif()
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} "${CMAKE_SOURCE_DIR}/cmake/Modules/")
option(ICNET "Link against Libicnet." ON)
-option(HICNET "Link against Libhicnet." OFF)
-if (HICNET)
- find_package(Libhicnet REQUIRED)
- set(TRANSPORT_LIBRARY HICNET)
- set(ICNET OFF)
- set(PREFIX "hicn-")
-else()
- find_package(Libicnet REQUIRED)
- set(TRANSPORT_LIBRARY ICNET)
- set(PREFIX "")
-endif()
+find_package(Libicnet REQUIRED)
+set(TRANSPORT_LIBRARY ICNET)
+set(PREFIX "")
configure_file("${PROJECT_SOURCE_DIR}/config.h.in"
"${CMAKE_BINARY_DIR}/config.h")
-include_directories(${LIB${TRANSPORT_LIBRARY}_INCLUDE_DIRS} http-server http-client)
-
-find_package(Threads REQUIRED)
-
-find_package(CURL REQUIRED)
-include_directories(${CURL_INCLUDE_DIRS})
+include_directories(${LIB${TRANSPORT_LIBRARY}_INCLUDE_DIRS})
+
+if(ANDROID_API)
+ find_package(Threads REQUIRED)
+ set(CURL_INCLUDE_DIRS "$ENV{DISTILLERY_ROOT_DIR}/external/libcurl_android/jni/libcurl/include")
+ set(CURL_LIBRARIES "$ENV{DISTILLERY_ROOT_DIR}/usr/lib/libcurl.a" "$ENV{DISTILLERY_ROOT_DIR}/usr/lib/libcurl-library.a")
+ find_package(Boost 1.53.0 COMPONENTS regex system filesystem REQUIRED)
+ include_directories(SYSTEM ${Boost_INCLUDE_DIR} ${CMAKE_BINARY_DIR} ${CURL_INCLUDE_DIRS} ${LIB${TRANSPORT_LIBRARY}_INCLUDE_DIR} http-server http-client)
+ include_directories(${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++/4.9/include)
+ include_directories(${ANDROID_NDK}/sources/cxx-stl/gnu-libstdc++/4.9/libs/armeabi/include)
+ set(ANDROID_LIBRARIES "${ANDROID_NDK}/platforms/android-24/arch-arm/usr/lib/libz.a" "${ANDROID_NDK}/platforms/android-24/arch-arm/usr/lib/liblog.so" "$ENV{NDK}/sources/cxx-stl/gnu-libstdc++/4.9/libs/$ENV{ABI}/libgnustl_shared.so")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CMAKE_C_FLAGS} ${ANDROID_C_FLAGS} -Wall")
+else()
+ find_package(Threads REQUIRED)
-find_package(Boost 1.53.0 COMPONENTS regex system filesystem REQUIRED)
-include_directories(SYSTEM ${Boost_INCLUDE_DIR} ${CMAKE_BINARY_DIR} ${CURL_INCLUDE_DIRS} ${LIB${TRANSPORT_LIBRARY}_INCLUDE_DIR})
+ find_package(CURL REQUIRED)
+ include_directories(${CURL_INCLUDE_DIRS})
-set(SOURCE_FILES
- main.cc
+ find_package(Boost 1.53.0 COMPONENTS regex system filesystem REQUIRED)
+ include_directories(SYSTEM ${Boost_INCLUDE_DIR} ${CMAKE_BINARY_DIR} ${CURL_INCLUDE_DIRS} ${LIB${TRANSPORT_LIBRARY}_INCLUDE_DIR} http-server http-client)
+endif()
+set(LIB_SOURCE_FILES
http-server/http_server.cc
- http-server/http_server.h
http-server/response.cc
- http-server/response.h
- http-server/common.h
http-server/socket_response.cc
- http-server/socket_response.h
http-server/icn_response.cc
- http-server/icn_response.h
http-server/content.cc
- http-server/content.h
http-server/request.cc
- http-server/request.h
http-server/icn_request.cc
- http-server/icn_request.h
http-server/socket_request.cc
- http-server/socket_request.h
http-server/configuration.cc
+ http-client/http_client_tcp.cc
+ http-client/http_client_icn.cc)
+
+set(LIB_SERVER_HEADER_FILES
+ http-server/http_server.h
+ http-server/response.h
+ http-server/common.h
+ http-server/socket_response.h
+ http-server/content.h
+ http-server/request.h
+ http-server/icn_request.h
+ http-server/socket_request.h
http-server/configuration.h
- http-client/http_client.cc
- http-client/http_client.h
- ${CMAKE_BINARY_DIR}/config.h)
+ ${CMAKE_BINARY_DIR}/config.h
+ http-server/icn_response.h)
+
+set(LIB_CLIENT_HEADER_FILES
+ http-client/http_client_tcp.h
+ http-client/http_client_icn.h
+ http-client/http_client.h)
+
+set(APP_SOURCE_FILES
+ main.cc)
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} ${CMAKE_CXX_FLAGS}")
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${CMAKE_CXX_FLAGS} -fpermissive")
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELEASE} ${CMAKE_CXX_FLAGS} -fpermissive")
set(CMAKE_CXX_FLAGS_MINSIZEREL "${CMAKE_CXX_FLAGS_RELEASE} ${CMAKE_CXX_FLAGS} -fpermissive")
-add_executable(${PREFIX}http-server ${SOURCE_FILES})
-target_link_libraries(${PREFIX}http-server ${LIB${TRANSPORT_LIBRARY}_LIBRARY} ${CURL_LIBRARY} ${Boost_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
+add_library(${PREFIX}httpserver ${LIB_SOURCE_FILES})
+
+if(ANDROID_API)
+ target_link_libraries(${PREFIX}httpserver ${LIB${TRANSPORT_LIBRARY}_LIBRARY} ${CURL_LIBRARY} ${Boost_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT} ${ANDROID_LIBRARIES} )
+ target_compile_definitions(${PREFIX}httpserver PRIVATE ${TRANSPORT_LIBRARY}=1)
+else()
+
+ target_link_libraries(${PREFIX}httpserver ${LIB${TRANSPORT_LIBRARY}_LIBRARY} ${CURL_LIBRARY} ${Boost_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT})
+
+ add_executable(${PREFIX}http-server ${APP_SOURCE_FILES})
+ target_link_libraries(${PREFIX}http-server ${PREFIX}httpserver)
+ install(TARGETS ${PREFIX}http-server DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
+endif()
+
+install(TARGETS ${PREFIX}httpserver DESTINATION ${CMAKE_INSTALL_PREFIX}/lib)
+
+install(FILES ${LIB_SERVER_HEADER_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/http-server)
+install(FILES ${LIB_CLIENT_HEADER_FILES} DESTINATION ${CMAKE_INSTALL_PREFIX}/include/http-client)
-install(TARGETS ${PREFIX}http-server DESTINATION ${CMAKE_INSTALL_PREFIX}/bin)
# Generate DEB / RPM packages
@@ -104,7 +131,7 @@ set(CPACK_PACKAGE_CONTACT ${CONTACT})
# Get the version
execute_process(COMMAND bash ${CMAKE_SOURCE_DIR}/scripts/version
OUTPUT_VARIABLE PACKAGE_VERSION)
-string(STRIP ${PACKAGE_VERSION} PACKAGE_VERSION)
+string(STRIP "${PACKAGE_VERSION}" PACKAGE_VERSION)
string(TOLOWER ${TRANSPORT_LIBRARY} TRANSPORT_DEPENDENCY)