[CMake] Anyone gotten OpenSSL to build as an external project?

kent williams nkwmailinglists at gmail.com
Fri Jan 7 17:03:18 EST 2011


That's kind of a solution, but as near as I can figure
CMAKE_SIZEOF_VOID_P doesn't change if I set CMAKE_OSX_ARCHITECTURE to
i386.

The following seems to work, but I explicitly test
CMAKE_OSX_ARCHITECTURE so that if I'm building i386 on a system with
x86_64 as the default, it correctly configures OpenSSL.

   enable_language(CXX)
    if(APPLE)
      if(CMAKE_SIZEOF_VOID_P EQUAL 8 AND
          NOT ${CMAKE_OSX_ARCHITECTURES} MATCHES "i386")
        set(OPENSSL_CONFIG_CMD
          ./Configure darwin64-x86_64-cc
--prefix=${CMAKE_CURRENT_BINARY_DIR}/OpenSSL)
      else()
        set(OPENSSL_CONFIG_CMD
          ./config --prefix=${CMAKE_CURRENT_BINARY_DIR}/OpenSSL)
      endif()
    else(APPLE)
      set(OPENSSL_CONFIG_CMD
        ./config --prefix=${CMAKE_CURRENT_BINARY_DIR}/OpenSSL)
    endif(APPLE)

    if(NOT ExternalProject_loaded)
      include(ExternalProject)
      set(ExternalProject_loaded 1)
    endif(NOT ExternalProject_loaded)

    ExternalProject_add(OpenSSL
      URL "http://www.openssl.org/source/openssl-1.0.0c.tar.gz"
      URL_MD5 ff8fb85610aef328315a9decbb2712e4
      CONFIGURE_COMMAND ${OPENSSL_CONFIG_CMD}
      BUILD_IN_SOURCE 1
      INSTALL_DIR "${CMAKE_CURRENT_BINARY_DIR}/OpenSSL"
      )
    set(OPENSSL_INCLUDE_DIR "${CMAKE_CURRENT_BINARY_DIR}/OpenSSL/include")
    link_directories("${CMAKE_CURRENT_BINARY_DIR}/OpenSSL/lib")
    set(OPENSSL_LIBRARIES ssl crypto)


More information about the CMake mailing list