blob: 67a1b57df61de0c881521218a89976e9dd57d503 [file] [log] [blame]
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(dbcommon)
FIND_PACKAGE(Glog REQUIRED)
SET(dbcommon_VERSION_MAJOR 0)
SET(dbcommon_VERSION_MINOR 1)
SET(dbcommon_VERSION_PATCH 0)
SET(dbcommon_VERSION_API 1)
set(CMAKE_MACOSX_RPATH 1)
SET(dbcommon_ROOT_DIR ${CMAKE_CURRENT_SOURCE_DIR})
SET(dbcommon_SRC_DIR ${CMAKE_CURRENT_SOURCE_DIR}/dbcommon)
# cogapp generation
find_package(Cogapp)
SET(CODE_TEMPLATE_HEADERS
${dbcommon_SRC_DIR}/function/arith-cmp-func.h
${dbcommon_SRC_DIR}/function/typecast-func.h
${dbcommon_SRC_DIR}/function/func-kind.h
)
SET(CODE_TEMPLATE_SOURCES
${dbcommon_SRC_DIR}/function/arith-func.cc
${dbcommon_SRC_DIR}/function/cmp-func.cc
${dbcommon_SRC_DIR}/function/typecast-func.cc
${dbcommon_SRC_DIR}/function/func.cc
${dbcommon_SRC_DIR}/type/type-util.cc
)
COGAPP_GENERATE(TEMPLATE_GENERATED_HEADERS ${CODE_TEMPLATE_HEADERS})
COGAPP_GENERATE(TEMPLATE_GENERATED_SOURCES ${CODE_TEMPLATE_SOURCES})
set(thrift_SRC_DIR ${CMAKE_BINARY_DIR}/codegen/src/dbcommon/thrift)
set(thrift_HDRS
${thrift_SRC_DIR}/fb303_types.h
${thrift_SRC_DIR}/fb303_constants.h
${thrift_SRC_DIR}/FacebookService.h
${thrift_SRC_DIR}/hive_metastore_types.h
${thrift_SRC_DIR}/hive_metastore_constants.h
${thrift_SRC_DIR}/ThriftHiveMetastore.h)
set(thrift_SRCS
${thrift_SRC_DIR}/fb303_types.cpp
${thrift_SRC_DIR}/fb303_constants.cpp
${thrift_SRC_DIR}/FacebookService.cpp
${thrift_SRC_DIR}/hive_metastore_types.cpp
${thrift_SRC_DIR}/hive_metastore_constants.cpp
${thrift_SRC_DIR}/ThriftHiveMetastore.cpp)
file(MAKE_DIRECTORY ${thrift_SRC_DIR})
add_custom_command(
OUTPUT ${thrift_HDRS} ${thrift_SRCS}
COMMAND thrift --gen cpp --recurse
-out ${thrift_SRC_DIR}/
-I "${dbcommon_SRC_DIR}/filesystem/hive/"
"${dbcommon_SRC_DIR}/filesystem/hive/hive_metastore.thrift"
)
AUTO_SOURCES(log_SRC "*.cc" "RECURSE" "${dbcommon_SRC_DIR}/log")
AUTO_SOURCES(network_SRC "*.cc" "RECURSE" "${dbcommon_SRC_DIR}/network")
AUTO_SOURCES(nodes_SRC "*.cc" "RECURSE" "${dbcommon_SRC_DIR}/nodes")
AUTO_SOURCES(utils_SRC "*.cc" "RECURSE" "${dbcommon_SRC_DIR}/utils")
AUTO_SOURCES(function_SRC "*.cc" "RECURSE" "${dbcommon_SRC_DIR}/function")
AUTO_SOURCES(filesystem_SRC "*.cc" "RECURSE" "${dbcommon_SRC_DIR}/filesystem")
AUTO_SOURCES(type_SRC "*.cc" "RECURSE" "${dbcommon_SRC_DIR}/type")
AUTO_SOURCES(common_SRC "*.cc" "RECURSE" "${dbcommon_SRC_DIR}/common")
AUTO_SOURCES(thread_SRC "*.cc" "RECURSE" "${dbcommon_SRC_DIR}/thread")
AUTO_SOURCES(checksum_SRC "*.cc" "RECURSE" "${dbcommon_SRC_DIR}/checksum")
AUTO_SOURCES(hash_SRC "*.cc" "RECURSE" "${dbcommon_SRC_DIR}/hash")
LIST(APPEND dbcommon_SOURCES ${log_SRC})
LIST(APPEND dbcommon_SOURCES ${network_SRC})
LIST(APPEND dbcommon_SOURCES ${nodes_SRC})
LIST(APPEND dbcommon_SOURCES ${utils_SRC})
LIST(APPEND dbcommon_SOURCES ${function_SRC})
LIST(APPEND dbcommon_SOURCES ${filesystem_SRC})
LIST(APPEND dbcommon_SOURCES ${type_SRC})
LIST(APPEND dbcommon_SOURCES ${common_SRC})
LIST(APPEND dbcommon_SOURCES ${thread_SRC})
LIST(APPEND dbcommon_SOURCES ${checksum_SRC})
LIST(APPEND dbcommon_SOURCES ${hash_SRC})
LIST(REMOVE_ITEM dbcommon_SOURCES ${CODE_TEMPLATE_SOURCES})
AUTO_SOURCES(log_HEADER "*.h" "${dbcommon_SRC_DIR}/log")
AUTO_SOURCES(network_HEADER "*.h" "${dbcommon_SRC_DIR}/network")
AUTO_SOURCES(nodes_HEADER "*.h" "${dbcommon_SRC_DIR}/nodes")
AUTO_SOURCES(utils_HEADER "*.h" "${dbcommon_SRC_DIR}/utils")
AUTO_SOURCES(utils_mb_HEADER "*.h" "${dbcommon_SRC_DIR}/utils/mb")
AUTO_SOURCES(utils_comp_HEADER "*.h" "${dbcommon_SRC_DIR}/utils/comp")
AUTO_SOURCES(function_HEADER "*.h" "${dbcommon_SRC_DIR}/function")
AUTO_SOURCES(filesystem_HEADER "*.h" "${dbcommon_SRC_DIR}/filesystem")
AUTO_SOURCES(filesystem_hdfs_HEADER "*.h" "${dbcommon_SRC_DIR}/filesystem/hdfs")
AUTO_SOURCES(filesystem_hive_HEADER "*.h" "${dbcommon_SRC_DIR}/filesystem/hive")
AUTO_SOURCES(filesystem_local_HEADER "*.h" "${dbcommon_SRC_DIR}/filesystem/local")
AUTO_SOURCES(type_HEADER "*.h" "${dbcommon_SRC_DIR}/type")
AUTO_SOURCES(common_HEADER "*.h" "${dbcommon_SRC_DIR}/common")
AUTO_SOURCES(common_vector_HEADER "*.h" "${dbcommon_SRC_DIR}/common/vector")
AUTO_SOURCES(thread_HEADER "*.h" "${dbcommon_SRC_DIR}/thread")
AUTO_SOURCES(checksum_HEADER "*.h" "${dbcommon_SRC_DIR}/checksum")
AUTO_SOURCES(testutil_HEADER "*.h" "${dbcommon_SRC_DIR}/testutil")
AUTO_SOURCES(hash_HEADER "*.h" "${dbcommon_SRC_DIR}/hash")
LIST(REMOVE_ITEM function_HEADER ${CODE_TEMPLATE_HEADERS})
SET(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "")
SET(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "")
INCLUDE_DIRECTORIES(${dbcommon_ROOT_DIR})
INCLUDE_DIRECTORIES(${CMAKE_BINARY_DIR}/codegen/src)
INCLUDE_DIRECTORIES(${GLOG_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/include)
INCLUDE_DIRECTORIES(/usr/local/include)
LINK_DIRECTORIES(${DEPENDENCY_INSTALL_PREFIX}/lib)
LINK_DIRECTORIES(/usr/local/lib)
LINK_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/../../libhdfs3/build/install/usr/local/hawq/lib)
ADD_LIBRARY(dbcommon-shared SHARED
${TEMPLATE_GENERATED_HEADERS}
${TEMPLATE_GENERATED_SOURCES}
${thrift_SRCS}
${dbcommon_SOURCES}
)
# ADD_LIBRARY(dbcommon-static STATIC ${dbcommon_SOURCES} ${TEMPLATE_GENERATED_HEADERS} ${TEMPLATE_GENERATED_SOURCES})
TARGET_LINK_LIBRARIES(dbcommon-shared ${CLANG_LDFLAGS} ${GLOG_LIBRARIES} iconv pthread hdfs3 z lz4 thrift)
# TARGET_LINK_LIBRARIES(dbcommon-static ${CLANG_LDFLAGS} ${GLOG_LIBRARIES} iconv pthread hdfs3)
SET_TARGET_PROPERTIES(dbcommon-shared PROPERTIES OUTPUT_NAME "dbcommon")
# SET_TARGET_PROPERTIES(dbcommon-static PROPERTIES OUTPUT_NAME "dbcommon")
INSTALL(TARGETS dbcommon-shared
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
INSTALL(FILES ${log_HEADER} DESTINATION include/dbcommon/log)
INSTALL(FILES ${network_HEADER} DESTINATION include/dbcommon/network)
INSTALL(FILES ${nodes_HEADER} DESTINATION include/dbcommon/nodes)
INSTALL(FILES ${utils_HEADER} DESTINATION include/dbcommon/utils)
INSTALL(FILES ${common_HEADER} DESTINATION include/dbcommon/common)
INSTALL(FILES ${common_vector_HEADER} DESTINATION include/dbcommon/common/vector)
INSTALL(FILES ${function_HEADER} DESTINATION include/dbcommon/function)
INSTALL(FILES ${TEMPLATE_GENERATED_HEADERS} DESTINATION include/dbcommon/function)
INSTALL(FILES ${filesystem_HEADER} DESTINATION include/dbcommon/filesystem)
INSTALL(FILES ${filesystem_hdfs_HEADER} DESTINATION include/dbcommon/filesystem/hdfs)
INSTALL(FILES ${filesystem_hive_HEADER} DESTINATION include/dbcommon/filesystem/hive)
INSTALL(FILES ${filesystem_local_HEADER} DESTINATION include/dbcommon/filesystem/local)
INSTALL(FILES ${thread_HEADER} DESTINATION include/dbcommon/thread)
INSTALL(FILES ${checksum_HEADER} DESTINATION include/dbcommon/checksum)
INSTALL(FILES ${type_HEADER} DESTINATION include/dbcommon/type)
INSTALL(FILES ${utils_mb_HEADER} DESTINATION include/dbcommon/utils/mb)
INSTALL(FILES ${utils_comp_HEADER} DESTINATION include/dbcommon/utils/comp)
INSTALL(FILES ${testutil_HEADER} DESTINATION include/dbcommon/testutil)
INSTALL(FILES ${hash_HEADER} DESTINATION include/dbcommon/hash)
SET(dbcommon_ROOT_DIR ${dbcommon_ROOT_DIR} PARENT_SCOPE)