# use the first path that has Thrift.h included, if found FIND_PATH(Thrift_INCLUDE_DIRS Thrift.h PATHS $ENV{THRIFT_INCLUDE} # environment variable to be used optionally ${Thrift_INCLUDE_DIR} # this may be set /usr/local/include/thrift # list of additional directories to look from /opt/local/include/thrift /usr/include/thrift /opt/include/thrift ) # Verify that thrift linking library is found SET(Thrift_LIB_PATHS ${Thrift_LIB_PATHS} /usr/local/lib /opt/local/lib /opt/lib) FIND_LIBRARY(Thrift_LIBS NAMES thrift PATHS ${Thrift_LIB_PATHS} ${Thrift_LIB}) MARK_AS_ADVANCED(Thrift_LIBS Thrift_INCLUDE_DIRS) IF(EXISTS ${Thrift_LIBS}) GET_FILENAME_COMPONENT(LINK_DIR ${Thrift_LIBS} PATH ABSOLUTE) INCLUDE_DIRECTORIES(AFTER ${Thrift_INCLUDE_DIRS}/..) SET(CMAKE_REQUIRED_INCLUDES ${Thrift_INCLUDE_DIRS}) STRING(REPLACE "-fno-exceptions" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}") SET(CMAKE_REQUIRED_INCLUDES "${Thrift_INCLUDE_DIRS}/..") CHECK_CXX_SOURCE_COMPILES( " #include #include int main() { boost::shared_ptr p(new char(10)); return 0; } " CASSANDRASE_OK) ENDIF() SET(cassandra_sources ha_cassandra.cc ha_cassandra.h cassandra_se.h cassandra_se.cc gen-cpp/Cassandra.cpp gen-cpp/cassandra_types.h gen-cpp/cassandra_types.cpp gen-cpp/cassandra_constants.h gen-cpp/cassandra_constants.cpp gen-cpp/Cassandra.h) LINK_DIRECTORIES(${LINK_DIR}) IF(CASSANDRASE_OK) MYSQL_ADD_PLUGIN(cassandra ${cassandra_sources} STORAGE_ENGINE MODULE_ONLY LINK_LIBRARIES thrift COMPONENT cassandra-engine DISABLED) ENDIF(CASSANDRASE_OK)