一条cmake的写法

 CMAKE_MINIMUM_REQUIRED (VERSION 2.6)
PROJECT (talk)
#SET(CMAKE_BUILD_TYPE Debug)
SET (CMAKE_BUILD_TYPE Release)
#SET (CMAKE_CXX_FLAGS_DEBUG "$ENV{CXXFLAGS} -O0 -Wall -g -ggdb -pg")
SET (CMAKE_CXX_FLAGS_RELEASE "$ENV{CXXFLAGS} -fPIC  -Wall -fno-strict-aliasing" )
  #SET (LINK_FLAGS "-pg")

INCLUDE_DIRECTORIES ("${PROJECT_BINARY_DIR}")

#SET (BOOST_DIR /opt/boost)
SET (BOOST_DIR /data/boost_1.53/boost)    
SET (LOG4CPLUS_DIR /opt/log4cplus)
SET (LIBMEMCACHED_DIR /opt/libmemcached)
SET (ICE_DIR /opt/Ice-3.3)
SET (TOKYO_CABINET_DIR /opt/tokyocabinet)
SET (TOKYO_TYRANT_DIR /opt/tokyotyrant)
SET (ZOOKEEPER_DIR /opt/zookeeper3.3.3)
SET (HIREDIS_DIR /opt/hiredis)
SET (XERCES_DIR /opt/xerces-3.1.1)
SET (PRJ_DIR /opt/talk) #im的那个feed adapter库

SET (ICE_GEN_SRC_DIR ice_src)
SET (UTILS_DIR utils)
SET (JWSMTP_DIR jwsmtp)
SET (BOSH_DIR bosh)
#SET (IM_DIR im_)
SET (PROTOCOL_CHANGER_DIR protocolChanger)
SET (XMPP_DIR xmpp)
SET (PUGI_XML_DIR pugixml)
SET (ENDPOINT_DIR endpoint)
SET (ENDPOINT2_DIR endpoint2)
SET (SOCKET_DIR socket)
SET (IM_ADAPTER_DIR imAdapter)
#SET (MSG_WAIT_DIR msgwait)
SET (TALK_SERVICE_PROXY_DIR talkservice)

SET (PROXY_DIR proxy)
SET (TALK_DIR talk)
SET (MUC_DIR muc)
SET (NET_DIR net)
SET (ZK_DIR zk)
SET (REDIS_DIR redis)
#SET (IM_FEED_DIR im/imFeedHead)
SET (THIRDPARTY_DIR  ../thirdParty)
#ADD_DEFINITIONS(-DINTERNATIONAL)

INCLUDE_DIRECTORIES (".")
INCLUDE_DIRECTORIES ("${ICE_GEN_SRC_DIR}")

INCLUDE_DIRECTORIES ("${BOOST_DIR}/include")
INCLUDE_DIRECTORIES ("${LOG4CPLUS_DIR}/include")
INCLUDE_DIRECTORIES ("${LIBMEMCACHED_DIR}/include")
INCLUDE_DIRECTORIES ("${ICE_DIR}/include")
INCLUDE_DIRECTORIES ("${TOKYO_TYRANT_DIR}/include")
INCLUDE_DIRECTORIES ("${TOKYO_CABINET_DIR}/include")
INCLUDE_DIRECTORIES ("${ZOOKEEPER_DIR}/include")
INCLUDE_DIRECTORIES ("${HIREDIS_DIR}/include")
INCLUDE_DIRECTORIES ("${XERCES_DIR}/include")
INCLUDE_DIRECTORIES ("${THIRDPARTY_DIR}/UserNameClient/include")
INCLUDE_DIRECTORIES ("${THIRDPARTY_DIR}/antispam/include")


LINK_DIRECTORIES ("${BOOST_DIR}/lib")
LINK_DIRECTORIES ("${LOG4CPLUS_DIR}/lib")
LINK_DIRECTORIES ("${LIBMEMCACHED_DIR}/lib")
LINK_DIRECTORIES ("${ICE_DIR}/lib64")
LINK_DIRECTORIES ("${TOKYO_TYRANT_DIR}/lib")
LINK_DIRECTORIES ("${TOKYO_CABINET_DIR}/lib")
LINK_DIRECTORIES ("${ZOOKEEPER_DIR}/lib")
LINK_DIRECTORIES ("${HIREDIS_DIR}/lib")
LINK_DIRECTORIES ("${XERCES_DIR}/lib")
LINK_DIRECTORIES ("${PRJ_DIR}/lib")
LINK_DIRECTORIES ("${THIRDPARTY_DIR}/UserNameClient/lib")
LINK_DIRECTORIES ("${THIRDPARTY_DIR}/antispam/lib")
LINK_DIRECTORIES ("${THIRDPARTY_DIR}/lib")

SET (EXTRA_LIBS ${EXTRA_LIBS} libxerces-c.a libboost_date_time.a  libboost_thread.a libboost_system.a
libboost_program_options.a libboost_filesystem.a libhiredis.a
liblog4cplus.a libzookeeper_mt.a libmemcached.a
Ice IceUtil IceStorm IceGrid IceBox)

SET (EXTRA_LIBS ${EXTRA_LIBS} libtokyotyrant.a libtokyocabinet.a z bz2 resolv
nsl dl rt pthread m c  ssl curl)
SET (EXTRA_LIBS_TALK ${EXTRA_LIBS} libFeedViewClient.a )
SET (EXTRA_LIBS_TALK ${EXTRA_LIBS_TALK} libUserClient3G.a libAntispamClient.a )

AUX_SOURCE_DIRECTORY (. TALK_EXE_SRCS)
AUX_SOURCE_DIRECTORY (${ICE_GEN_SRC_DIR} ICE_GEN_SRCS)
AUX_SOURCE_DIRECTORY (${BOSH_DIR} BOSH_SRCS)
AUX_SOURCE_DIRECTORY (${UTILS_DIR} UTILS_SRCS)
AUX_SOURCE_DIRECTORY (${JWSMTP_DIR} JWSMTP_SRCS)
#AUX_SOURCE_DIRECTORY (${IM_DIR} IM_SRCS)
AUX_SOURCE_DIRECTORY (${XMPP_DIR} XMPP_SRCS)
AUX_SOURCE_DIRECTORY (${PROTOCOL_CHANGER_DIR} PROTOCOL_CHANGER_SRCS)
AUX_SOURCE_DIRECTORY (${PUGI_XML_DIR} PUGI_XML_SRCS)
AUX_SOURCE_DIRECTORY (${ENDPOINT_DIR} ENDPOINT_SRCS)
AUX_SOURCE_DIRECTORY (${ENDPOINT2_DIR} ENDPOINT2_SRCS)
AUX_SOURCE_DIRECTORY (${IM_ADAPTER_DIR} IM_ADAPTER_SRCS)
AUX_SOURCE_DIRECTORY (${SOCKET_DIR} SOCKET_SRCS)
#AUX_SOURCE_DIRECTORY (${MSG_WAIT_DIR} MSG_WAIT_SRCS)

AUX_SOURCE_DIRECTORY (${PROXY_DIR} PROXY_SRCS)
AUX_SOURCE_DIRECTORY (${TALK_DIR} TALK_SRCS)
AUX_SOURCE_DIRECTORY (${NET_DIR} NET_SRCS)
AUX_SOURCE_DIRECTORY (${ZK_DIR} ZK_SRCS)
AUX_SOURCE_DIRECTORY (${REDIS_DIR} REDIS_SRCS)
#AUX_SOURCE_DIRECTORY (${IM_FEED_DIR} IM_FEED_SRCS)
AUX_SOURCE_DIRECTORY (${MUC_DIR} MUC_SRCS)

ADD_LIBRARY (talk_exe STATIC ${TALK_EXE_SRCS})
ADD_LIBRARY (ice_gen STATIC ${ICE_GEN_SRCS})
ADD_LIBRARY (muc_exe STATIC ${MUC_SRCS})
ADD_LIBRARY (bosh STATIC ${BOSH_SRCS})
ADD_LIBRARY (utils STATIC ${UTILS_SRCS})
#ADD_LIBRARY (im STATIC ${IM_SRCS}${IM_FEED_SRCS})
ADD_LIBRARY (xmpp STATIC ${XMPP_SRCS})
ADD_LIBRARY (protocolChanger STATIC ${PROTOCOL_CHANGER_SRCS})
ADD_LIBRARY (pugi_xml STATIC ${PUGI_XML_SRCS})
ADD_LIBRARY (jwsmtp STATIC ${JWSMTP_SRCS})
ADD_LIBRARY (endpoint_common STATIC ${ENDPOINT_SRCS})
ADD_LIBRARY (endpoint2_common STATIC ${ENDPOINT2_SRCS})
#ADD_LIBRARY (msgwait STATIC ${MSG_WAIT_SRCS})

ADD_LIBRARY (proxy STATIC ${PROXY_SRCS})
ADD_LIBRARY (socket STATIC ${SOCKET_SRCS})
ADD_LIBRARY (im_adapter STATIC ${IM_ADAPTER_SRCS})
ADD_LIBRARY (talk_common STATIC ${TALK_SRCS})
ADD_LIBRARY (net STATIC ${NET_SRCS})
ADD_LIBRARY (zk STATIC ${ZK_SRCS})
ADD_LIBRARY (redis STATIC ${REDIS_SRCS})

SET (TALK_SRC_LIST Talk.cpp)
SET (MSGWAIT_SRC_LIST MsgWaitManager.cpp)

SET (ENDPOINT_SRC_LIST Endpoint.cpp)
SET (ENDPOINT4SOCKET_SRC_LIST Endpoint4Socket.cpp)
SET (MUC_SRC_LIST Muc.cpp)
#SET (TEST_SRC_LIST Test.cpp)
SET (IMADAPTER_SRC_LIST ImAdapter.cpp)

LINK_LIBRARIES (talk_exe)
LINK_LIBRARIES (endpoint_common)
LINK_LIBRARIES (endpoint2_common)
LINK_LIBRARIES (muc_exe)
LINK_LIBRARIES (im_adapter)
LINK_LIBRARIES (talk_common)
LINK_LIBRARIES (net)
LINK_LIBRARIES (socket)
LINK_LIBRARIES (bosh)
#LINK_LIBRARIES (im)
#LINK_LIBRARIES (msgwait)

LINK_LIBRARIES (protocolChanger)
LINK_LIBRARIES (proxy)
LINK_LIBRARIES (xmpp)
LINK_LIBRARIES (zk)
LINK_LIBRARIES (utils)
LINK_LIBRARIES (net)
LINK_LIBRARIES (protocolChanger)
LINK_LIBRARIES (redis)
LINK_LIBRARIES (ice_gen)
LINK_LIBRARIES (pugi_xml)
LINK_LIBRARIES (jwsmtp)


ADD_EXECUTABLE (endpoint4Socket ${ENDPOINT4SOCKET_SRC_LIST})
TARGET_LINK_LIBRARIES (endpoint4Socket ${EXTRA_LIBS})

ADD_EXECUTABLE (endpoint ${ENDPOINT_SRC_LIST})
TARGET_LINK_LIBRARIES (endpoint ${EXTRA_LIBS})

#ADD_EXECUTABLE (msgWait ${MSGWAIT_SRC_LIST})
#TARGET_LINK_LIBRARIES (msgWait ${EXTRA_LIBS})

ADD_EXECUTABLE (talk ${TALK_SRC_LIST})
TARGET_LINK_LIBRARIES (talk ${EXTRA_LIBS_TALK})

ADD_EXECUTABLE (imAdapter ${IMADAPTER_SRC_LIST})
TARGET_LINK_LIBRARIES (imAdapter ${EXTRA_LIBS_TALK})

ADD_EXECUTABLE (muc ${MUC_SRC_LIST})
TARGET_LINK_LIBRARIES (muc ${EXTRA_LIBS_TALK})

#ADD_EXECUTABLE (test ${TEST_SRC_LIST})
#TARGET_LINK_LIBRARIES (test ${EXTRA_LIBS_TALK})


SET (CMAKE_INSTALL_PREFIX /opt/talk)

INSTALL (TARGETS talk endpoint endpoint4Socket RUNTIME DESTINATION bin)

INSTALL (PROGRAMS ${PROJECT_SOURCE_DIR}/../script/svc/endpoint/run
    DESTINATION svc/endpoint)

INSTALL (PROGRAMS ${PROJECT_SOURCE_DIR}/../script/svc/endpoint/run
    DESTINATION svc/endpoint4Socket)

INSTALL (PROGRAMS ${PROJECT_SOURCE_DIR}/../script/svc/talk/run
    DESTINATION svc/talk)

INSTALL (DIRECTORY ${PROJECT_SOURCE_DIR}/../conf DESTINATION .
    PATTERN ".svn" EXCLUDE)

你可能感兴趣的:(一条cmake的写法)