# CMakeFiles for 3rd vendor library include(ExternalProject) ### OpenSSL 1.1.1 ExternalProject_Add(OpenSSL PREFIX openssl URL ${CMAKE_CURRENT_SOURCE_DIR}/openssl-1.1.1.tar.gz URL_MD5 d65944e4aa4de6ad9858e02c82d85183 CONFIGURE_COMMAND ./Configure linux-x86_64 --prefix= --openssldir=/lib/ssl no-weak-ssl-ciphers enable-ec_nistp_64_gcc_128 shared BUILD_COMMAND ${MAKE_COMMAND} INSTALL_COMMAND make install_sw BUILD_IN_SOURCE 1) ExternalProject_Get_Property(OpenSSL INSTALL_DIR) set(OPENSSL_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) set(OPENSSL_LINK_DIRECTORIES ${INSTALL_DIR}/lib) set(OPENSSL_PKGCONFIG_PATH ${INSTALL_DIR}/lib/pkgconfig/) set(OPENSSL_INSTALLED_PATH ${INSTALL_DIR}) file(MAKE_DIRECTORY ${INSTALL_DIR}/include) add_library(openssl-crypto-static STATIC IMPORTED GLOBAL) add_dependencies(openssl-crypto-static OpenSSL) set_property(TARGET openssl-crypto-static PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libcrypto.a) set_property(TARGET openssl-crypto-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) add_library(openssl-ssl-static STATIC IMPORTED GLOBAL) add_dependencies(openssl-ssl-static OpenSSL) set_property(TARGET openssl-ssl-static PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libssl.a) set_property(TARGET openssl-ssl-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) add_library(openssl-crypto-dynamic SHARED IMPORTED GLOBAL) add_dependencies(openssl-crypto-dynamic OpenSSL) set_property(TARGET openssl-crypto-dynamic PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libcrypto.so) set_property(TARGET openssl-crypto-dynamic PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) add_library(openssl-ssl-dynamic SHARED IMPORTED GLOBAL) add_dependencies(openssl-ssl-dynamic OpenSSL) set_property(TARGET openssl-ssl-dynamic PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libssl.so) set_property(TARGET openssl-ssl-dynamic PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) ### Libevent 2.1.8 ### Use openssl 1.1.1 ExternalProject_Add(libevent PREFIX libevent URL ${CMAKE_CURRENT_SOURCE_DIR}/libevent-2.1.8-stable.tar.gz URL_MD5 bf4d71806cb1cbc797a39625dbdd721f CONFIGURE_COMMAND PKG_CONFIG_PATH=${OPENSSL_PKGCONFIG_PATH} ./configure --prefix= --disable-samples CFLAGS=-fPIC BUILD_COMMAND make LDFLAGS="-ldl" BUILD_IN_SOURCE 1 DEPENDS OpenSSL) ExternalProject_Get_Property(libevent INSTALL_DIR) file(MAKE_DIRECTORY ${INSTALL_DIR}/include) add_library(libevent-dynamic SHARED IMPORTED GLOBAL) add_dependencies(libevent-dynamic libevent) set_property(TARGET libevent-dynamic PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libevent.so) set_property(TARGET libevent-dynamic PROPERTY IMPORTED_INTERFACE_LINK_LIBRARIES pthread crypto) set_property(TARGET libevent-dynamic PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) add_library(libevent-static STATIC IMPORTED GLOBAL) add_dependencies(libevent-static libevent) set_property(TARGET libevent-static PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libevent.a) set_property(TARGET libevent-static PROPERTY IMPORTED_INTERFACE_LINK_LIBRARIES pthread crypto) set_property(TARGET libevent-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) add_library(libevent-pthreads-static STATIC IMPORTED GLOBAL) add_dependencies(libevent-pthreads-static libevent) set_property(TARGET libevent-pthreads-static PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libevent_pthreads.a) set_property(TARGET libevent-pthreads-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) add_library(libevent-openssl-dynamic SHARED IMPORTED GLOBAL) add_dependencies(libevent-openssl-dynamic libevent) set_property(TARGET libevent-openssl-dynamic PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libevent_openssl.so) set_property(TARGET libevent-openssl-dynamic PROPERTY IMPORTED_INTERFACE_LINK_LIBRARIES pthread crypto) set_property(TARGET libevent-openssl-dynamic PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) add_library(libevent-openssl-static STATIC IMPORTED GLOBAL) add_dependencies(libevent-openssl-static libevent) set_property(TARGET libevent-openssl-static PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libevent_openssl.a) set_property(TARGET libevent-openssl-static PROPERTY IMPORTED_INTERFACE_LINK_LIBRARIES pthread crypto) set_property(TARGET libevent-openssl-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) ### libcurl ExternalProject_Add(libcurl PREFIX libcurl URL ${CMAKE_CURRENT_SOURCE_DIR}/curl-7.71.1.tar.gz URL_MD5 39bc8d8ae8d59587e863abab739ce7b4 CONFIGURE_COMMAND ./configure --prefix= --with-ssl=${OPENSSL_INSTALLED_PATH} --disable-ldap --disable-ldaps CFLAGS=-fPIC BUILD_IN_SOURCE 1 DEPENDS OpenSSL) ExternalProject_Get_Property(libcurl INSTALL_DIR) file(MAKE_DIRECTORY ${INSTALL_DIR}/include) add_library(libcurl-static STATIC IMPORTED GLOBAL) add_dependencies(libcurl-static libcurl) set_property(TARGET libcurl-static PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libcurl.a) set_property(TARGET libcurl-static PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) add_library(libcurl-dynamic SHARED IMPORTED GLOBAL) add_dependencies(libcurl-dynamic libcurl) set_property(TARGET libcurl-dynamic PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libcurl.so) set_property(TARGET libcurl-dynamic PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) ### cJSON ExternalProject_Add(cJSON PREFIX cJSON URL ${CMAKE_CURRENT_SOURCE_DIR}/cJSON-1.7.7.tar.gz URL_MD5 9a9d914540ad2cae2114296c623127e6 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX= -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DENABLE_LOCALES=Off -DBUILD_SHARED_AND_STATIC_LIBS=1) ExternalProject_Get_Property(cJSON INSTALL_DIR) file(MAKE_DIRECTORY ${INSTALL_DIR}/include) add_library(cjson SHARED IMPORTED GLOBAL) add_dependencies(cjson cJSON) set_property(TARGET cjson PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib64/libcjson.a) set_property(TARGET cjson PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) INSTALL (DIRECTORY ${INSTALL_DIR}/include/ DESTINATION include) add_library(cjson-dynamic SHARED IMPORTED GLOBAL) add_dependencies(cjson-dynamic cJSON) set_property(TARGET cjson-dynamic PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib64/libcjson.so) set_property(TARGET cjson-dynamic PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) ### MESA Monitor ExternalProject_Add(MesaMonitor PREFIX MesaMonitor URL ${CMAKE_CURRENT_SOURCE_DIR}/libmesa_monitor-master.tar.gz URL_MD5 91fa5666594a4db41def53c461652f19 CMAKE_ARGS -DCMAKE_INSTALL_PREFIX= -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} -DBUILD_SHARED_AND_STATIC_LIBS=1) ExternalProject_Get_Property(MesaMonitor INSTALL_DIR) file(MAKE_DIRECTORY ${INSTALL_DIR}/include) add_library(libMesaMonitor STATIC IMPORTED GLOBAL) add_dependencies(libMesaMonitor MesaMonitor) set_property(TARGET libMesaMonitor PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib/libMESA_Monitor.a) set_property(TARGET libMesaMonitor PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include) #### leveldb #ExternalProject_Add(LevelDB PREFIX leveldb # URL ${CMAKE_CURRENT_SOURCE_DIR}/leveldb-1.22.tar.gz # URL_MD5 ada425fbd00dc0d3d892774bf71f6692 # CMAKE_ARGS -DCMAKE_INSTALL_PREFIX= # -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} # -DBUILD_SHARED_AND_STATIC_LIBS=1) # #ExternalProject_Get_Property(LevelDB INSTALL_DIR) #file(MAKE_DIRECTORY ${INSTALL_DIR}/include) # #add_library(libLevelDB STATIC IMPORTED GLOBAL) #add_dependencies(libLevelDB LevelDB) #set_property(TARGET libLevelDB PROPERTY IMPORTED_LOCATION ${INSTALL_DIR}/lib64/libleveldb.a) #set_property(TARGET libLevelDB PROPERTY INTERFACE_INCLUDE_DIRECTORIES ${INSTALL_DIR}/include)