view Resources/CMake/LibCurlConfiguration.cmake @ 29:042ac60f5bf9

simplified build of curl
author Sebastien Jodogne <s.jodogne@gmail.com>
date Wed, 29 Aug 2012 15:27:13 +0200
parents 6ba765ecf3db
children 89383427856a
line wrap: on
line source

if (${STATIC_BUILD})
  SET(CURL_SOURCES_DIR ${CMAKE_BINARY_DIR}/curl-7.26.0)
  DownloadPackage("http://curl.haxx.se/download/curl-7.26.0.tar.gz" "${CURL_SOURCES_DIR}" "" "")

  if (0)
    if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
      if ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
        SET(SOURCE_CONFIG ${CMAKE_SOURCE_DIR}/Resources/libcurl/WithSsl/x86_64-linux)
      elseif ("${CMAKE_SIZEOF_VOID_P}" EQUAL "4")
        SET(SOURCE_CONFIG ${CMAKE_SOURCE_DIR}/Resources/libcurl/i686-pc-linux-gnu)
      else()
        message(FATAL_ERROR "Support your platform here")
      endif()
    elseif(${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
      if (${MSVC})
        SET(SOURCE_CONFIG ${CMAKE_SOURCE_DIR}/Resources/libcurl/msvc)
      else()
        SET(SOURCE_CONFIG ${CMAKE_SOURCE_DIR}/Resources/libcurl/i586-mingw32msvc)
      endif()
    else()
      message(FATAL_ERROR "Support your platform here")
    endif()

    if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
      configure_file("${SOURCE_CONFIG}/curl_config.h" "${CURL_SOURCES_DIR}/lib/curl_config.h" COPYONLY)
      configure_file("${SOURCE_CONFIG}/curlbuild.h" "${CURL_SOURCES_DIR}/include/curl/curlbuild.h" COPYONLY)
    elseif (${CMAKE_SYSTEM_NAME} STREQUAL "Windows")
      configure_file("${SOURCE_CONFIG}/curlbuild.h" "${CURL_SOURCES_DIR}/include/curl/curlbuild.h" COPYONLY)
    endif()
  endif()

  include_directories(${CURL_SOURCES_DIR}/include)

  AUX_SOURCE_DIRECTORY(${CURL_SOURCES_DIR}/lib CURL_SOURCES)
  source_group(ThirdParty\\LibCurl REGULAR_EXPRESSION ${CURL_SOURCES_DIR}/.*)

  #list(APPEND THIRD_PARTY_SOURCES ${CURL_SOURCES})
  add_library(Curl STATIC ${CURL_SOURCES})
  link_libraries(Curl)  

  add_definitions(
    -DCURL_STATICLIB=1
    -DBUILDING_LIBCURL=1
    -DCURL_DISABLE_LDAPS=1
    -DCURL_DISABLE_LDAP=1
    -D_WIN32_WINNT=0x0501

    -DCURL_DISABLE_DICT=1
    -DCURL_DISABLE_FILE=1
    -DCURL_DISABLE_FTP=1
    -DCURL_DISABLE_GOPHER=1
    -DCURL_DISABLE_LDAP=1
    -DCURL_DISABLE_LDAPS=1
    -DCURL_DISABLE_POP3=1
    -DCURL_DISABLE_PROXY=1
    -DCURL_DISABLE_RTSP=1
    -DCURL_DISABLE_TELNET=1
    -DCURL_DISABLE_TFTP=1
    )

  if (${ENABLE_SSL})
    add_definitions(
      #-DHAVE_LIBSSL=1
      -DUSE_OPENSSL=1
      -DUSE_SSLEAY=1
      )
  endif()

  if (${CMAKE_SYSTEM_NAME} STREQUAL "Linux")
    #set_property(
    #  SOURCE ${CURL_SOURCES}
    #  PROPERTY COMPILE_DEFINITIONS HAVE_CONFIG_H)
    if ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
      SET(TMP_OS "x86_64")
    else()
      SET(TMP_OS "x86")
    endif()

    set_property(
      SOURCE ${CURL_SOURCES}
      PROPERTY COMPILE_DEFINITIONS "HAVE_TIME_H;HAVE_STRUCT_TIMEVAL;HAVE_SYS_STAT_H;HAVE_SOCKET;HAVE_STRUCT_SOCKADDR_STORAGE;HAVE_SYS_SOCKET_H;HAVE_SOCKET;HAVE_SYS_SOCKET_H;HAVE_NETINET_IN_H;HAVE_NETDB_H;HAVE_FCNTL_O_NONBLOCK;HAVE_FCNTL_H;HAVE_SELECT;HAVE_ERRNO_H;HAVE_SEND;HAVE_RECV;OS=\"${TMP_OS}\"")
    if ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8")
      add_definitions(
        -DRECV_TYPE_ARG1=int
        -DRECV_TYPE_ARG2=void*
        -DRECV_TYPE_ARG3=size_t
        -DRECV_TYPE_ARG4=int
        -DRECV_TYPE_RETV=ssize_t
        -DSEND_TYPE_ARG1=int
        -DSEND_TYPE_ARG2=void*
        -DSEND_QUAL_ARG2=const
        -DSEND_TYPE_ARG3=size_t
        -DSEND_TYPE_ARG4=int
        -DSEND_TYPE_RETV=ssize_t
        -DSIZEOF_SHORT=2
        -DSIZEOF_INT=4
        -DSIZEOF_SIZE_T=8
        )
    elseif ("${CMAKE_SIZEOF_VOID_P}" EQUAL "4")
      add_definitions(
        -DRECV_TYPE_ARG1=SOCKET
        -DRECV_TYPE_ARG2=char*
        -DRECV_TYPE_ARG3=int
        -DRECV_TYPE_ARG4=int
        -DRECV_TYPE_RETV=int
        -DSEND_TYPE_ARG1=SOCKET
        -DSEND_TYPE_ARG2=char*
        -DSEND_QUAL_ARG2=const
        -DSEND_TYPE_ARG3=int
        -DSEND_TYPE_ARG4=int
        -DSEND_TYPE_RETV=int
        -DSIZEOF_SHORT=2
        -DSIZEOF_INT=4
        -DSIZEOF_SIZE_T=4
        )
    else()
      message(FATAL_ERROR "Support your platform here")
    endif()
  endif()

else()
  include(FindCURL)
  include_directories(${CURL_INCLUDE_DIRS})
  link_libraries(${CURL_LIBRARIES})

  if (NOT ${CURL_FOUND})
    message(FATAL_ERROR "Unable to find LibCurl")
  endif()
endif()