blob: 9fe2fcb0ee4c477565eca128e805bd02d7471867 [file] [log] [blame]
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
SET(libyarn_VERSION_MAJOR 0)
SET(libyarn_VERSION_MINOR 1)
SET(libyarn_VERSION_PATCH 17)
SET(libyarn_VERSION_STRING "${libyarn_VERSION_MAJOR}.${libyarn_VERSION_MINOR}.${libyarn_VERSION_PATCH}")
SET(libyarn_VERSION_API 1)
SET(libyarn_ROOT_SOURCES_DIR ${CMAKE_SOURCE_DIR}/src)
SET(libyarn_COMMON_SOURCES_DIR ${libyarn_ROOT_SOURCES_DIR}/common)
IF(ENABLE_DEBUG)
SET(libyarn_VERSION_STRING "${libyarn_VERSION_STRING}d")
ENDIF(ENABLE_DEBUG)
CONFIGURE_FILE(platform.h.in platform.h)
CONFIGURE_FILE(doxyfile.in doxyfile)
AUTO_SOURCES(files "*.cpp" "RECURSE" "${CMAKE_CURRENT_SOURCE_DIR}")
LIST(APPEND libyarn_SOURCES ${files})
AUTO_SOURCES(files "*.cc" "RECURSE" "${CMAKE_CURRENT_SOURCE_DIR}")
LIST(APPEND libyarn_SOURCES ${files})
AUTO_SOURCES(files "*.c" "RECURSE" "${CMAKE_CURRENT_SOURCE_DIR}")
LIST(APPEND libyarn_SOURCES ${files})
AUTO_SOURCES(files "*.h" "RECURSE" "${CMAKE_CURRENT_SOURCE_DIR}")
LIST(APPEND libyarn_SOURCES ${files})
AUTO_SOURCES(libyarn_PROTO_FILES "proto/*.proto" "RECURSE" "${CMAKE_CURRENT_SOURCE_DIR}")
SET(libyarn_PROTO_FILES ${libyarn_PROTO_FILES} PARENT_SCOPE)
PROTOBUF_GENERATE_CPP(libyarn_PROTO_SOURCES libyarn_PROTO_HEADERS ${libyarn_PROTO_FILES})
SET(HEADER
common/Exception.h
common/XmlConfig.h
libyarnclient/ApplicationClient.h
libyarnclient/ApplicationMaster.h
libyarnserver/ApplicationClientProtocol.h
libyarnserver/ApplicationMasterProtocol.h
protocolrecords/GetApplicationReportRequest.h
protocolrecords/GetApplicationReportResponse.h
protocolrecords/GetNewApplicationRequest.h
protocolrecords/GetNewApplicationResponse.h
protocolrecords/SubmitApplicationRequest.h
protocolrecords/SubmitApplicationResponse.h
protocolrecords/RegisterApplicationMasterRequest.h
protocolrecords/RegisterApplicationMasterResponse.h
protocolrecords/FinishApplicationMasterRequest.h
protocolrecords/FinishApplicationMasterResponse.h
protocolrecords/AllocateRequest.h
protocolrecords/AllocateResponse.h
protocolrecords/StartContainerRequest.h
protocolrecords/StartContainerResponse.h
protocolrecords/StartContainersRequest.h
protocolrecords/StopContainersRequest.h
protocolrecords/GetClusterNodesRequest.h
protocolrecords/GetClusterNodesResponse.h
protocolrecords/GetContainersRequest.h
protocolrecords/GetContainersResponse.h
protocolrecords/GetQueueInfoRequest.h
protocolrecords/GetQueueInfoResponse.h
protocolrecords/KillApplicationRequest.h
protocolrecords/KillApplicationResponse.h
protocolrecords/GetClusterMetricsRequest.h
protocolrecords/GetClusterMetricsResponse.h
protocolrecords/GetApplicationsRequest.h
protocolrecords/GetApplicationsResponse.h
protocolrecords/GetQueueUserAclsInfoRequest.h
protocolrecords/GetQueueUserAclsInfoResponse.h
libyarnclient/LibYarnClient.h
libyarnclient/LibYarnClientC.h
libyarnclient/LibYarnConstants.h
)
SET(RECORDS_HEADER
records/ApplicationAttemptId.h
records/ApplicationId.h
records/ApplicationReport.h
records/ApplicationResourceUsageReport.h
records/FinalApplicationStatus.h
records/Resource.h
records/YarnApplicationState.h
records/ApplicationSubmissionContext.h
records/ContainerLaunchContext.h
records/Priority.h
records/AMCommand.h
records/Container.h
records/ContainerId.h
records/ContainerStatus.h
records/ContainerExitStatus.h
records/ContainerReport.h
records/NMToken.h
records/NodeId.h
records/ResourceBlacklistRequest.h
records/ResourceRequest.h
records/NodeReport.h
records/NodeState.h
records/FunctionResult.h
records/PreemptionMessage.h
records/StrictPreemptionContract.h
records/PreemptionContract.h
records/PreemptionResourceRequest.h
records/PreemptionContainer.h
records/ContainerState.h
records/Token.h
records/StringBytesMap.h
records/QueueInfo.h
records/QueueState.h
records/YarnClusterMetrics.h
records/QueueUserACLInfo.h
records/QueueACL.h
)
SET(libyarncommon_HEADER
libyarncommon/Token.h
)
ADD_LIBRARY(libyarn-static STATIC ${libyarn_SOURCES} ${libyarn_PROTO_SOURCES} ${libyarn_PROTO_HEADERS})
ADD_LIBRARY(libyarn-shared SHARED ${libyarn_SOURCES} ${libyarn_PROTO_SOURCES} ${libyarn_PROTO_HEADERS})
ADD_CUSTOM_COMMAND(
TARGET libyarn-shared libyarn-static
PRE_BUILD
COMMAND echo ${libyarn_VERSION_STRING} > version
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
)
TARGET_LINK_LIBRARIES(libyarn-static pthread)
TARGET_LINK_LIBRARIES(libyarn-shared pthread)
IF(NEED_BOOST)
INCLUDE_DIRECTORIES(${Boost_INCLUDE_DIR})
TARGET_LINK_LIBRARIES(libyarn-static boost_thread)
TARGET_LINK_LIBRARIES(libyarn-static boost_chrono)
TARGET_LINK_LIBRARIES(libyarn-static boost_system)
TARGET_LINK_LIBRARIES(libyarn-static boost_atomic)
TARGET_LINK_LIBRARIES(libyarn-shared boost_thread)
TARGET_LINK_LIBRARIES(libyarn-shared boost_chrono)
TARGET_LINK_LIBRARIES(libyarn-shared boost_system)
TARGET_LINK_LIBRARIES(libyarn-shared boost_atomic)
ENDIF(NEED_BOOST)
IF(NEED_GCCEH)
TARGET_LINK_LIBRARIES(libyarn-static gcc_eh)
TARGET_LINK_LIBRARIES(libyarn-shared gcc_eh)
ENDIF(NEED_GCCEH)
IF(OS_LINUX)
TARGET_LINK_LIBRARIES(libyarn-static uuid)
TARGET_LINK_LIBRARIES(libyarn-shared uuid)
ENDIF(OS_LINUX)
INCLUDE_DIRECTORIES(${libyarn_ROOT_SOURCES_DIR})
INCLUDE_DIRECTORIES(${libyarn_COMMON_SOURCES_DIR})
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_BINARY_DIR})
INCLUDE_DIRECTORIES(${PROTOBUF_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${KERBEROS_INCLUDE_DIRS})
INCLUDE_DIRECTORIES(${GSASL_INCLUDE_DIR})
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/mock)
TARGET_LINK_LIBRARIES(libyarn-static ${PROTOBUF_LIBRARIES})
TARGET_LINK_LIBRARIES(libyarn-static ${LIBXML2_LIBRARIES})
TARGET_LINK_LIBRARIES(libyarn-static ${KERBEROS_LIBRARIES})
TARGET_LINK_LIBRARIES(libyarn-static ${GSASL_LIBRARIES})
TARGET_LINK_LIBRARIES(libyarn-shared ${PROTOBUF_LIBRARIES})
TARGET_LINK_LIBRARIES(libyarn-shared ${LIBXML2_LIBRARIES})
TARGET_LINK_LIBRARIES(libyarn-shared ${KERBEROS_LIBRARIES})
TARGET_LINK_LIBRARIES(libyarn-shared ${GSASL_LIBRARIES})
SET_TARGET_PROPERTIES(libyarn-static PROPERTIES OUTPUT_NAME "yarn")
SET_TARGET_PROPERTIES(libyarn-shared PROPERTIES OUTPUT_NAME "yarn")
IF(NEED_BOOST)
SET_TARGET_PROPERTIES(libyarn-shared libyarn-static PROPERTIES LINK_FLAGS "-L${Boost_LIBRARY_DIRS}")
ENDIF(NEED_BOOST)
SET_TARGET_PROPERTIES(libyarn-shared PROPERTIES
VERSION ${libyarn_VERSION_MAJOR}.${libyarn_VERSION_MINOR}.${libyarn_VERSION_PATCH}
SOVERSION ${libyarn_VERSION_API})
INSTALL(TARGETS libyarn-static libyarn-shared
RUNTIME DESTINATION bin
LIBRARY DESTINATION lib
ARCHIVE DESTINATION lib)
INSTALL(FILES ${HEADER} DESTINATION include/libyarn)
INSTALL(FILES ${RECORDS_HEADER} DESTINATION include/libyarn/records)
INSTALL(FILES ${libyarn_PROTO_HEADERS} DESTINATION include/libyarn/records)
INSTALL(FILES ${libyarncommon_HEADER} DESTINATION include/libyarn/libyarncommon)
SET(libyarn_SOURCES ${libyarn_SOURCES} PARENT_SCOPE)
SET(libyarn_PLATFORM_HEADER_DIR ${CMAKE_CURRENT_BINARY_DIR} PARENT_SCOPE)
SET(libyarn_ROOT_SOURCES_DIR ${libyarn_ROOT_SOURCES_DIR} PARENT_SCOPE)
SET(libyarn_COMMON_SOURCES_DIR ${libyarn_COMMON_SOURCES_DIR} PARENT_SCOPE)