一条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)

引用中的CMakeList文件展示了一个CUDA项目的CMake配置文件。首先,指定了所需的CMake版本,并命名了项目为test_cuda。然后通过find_package命令找到CUDA包。接下来设置了nvcc编译器的相关标志,包括设备架构和编译选项。使用file命令找到所有的头文件和源文件,并使用source_group命令将它们分组。最后,使用CUDA_ADD_EXECUTABLE命令将当前的源文件添加到项目中。 引用中的main.cpp文件展示了一个CUDA工程中调用C++的示例。首先包含了stdio.h、cuda_runtime.h和device_launch_parameters.h这三个头文件。然后定义了一个extern "C"函数addWithCuda,该函数用于在CUDA中进行向量相加。在main函数中,定义了一个数组a和b,以及一个用于保存结果的数组c。调用addWithCuda函数并检查调用是否成功,最后输出结果和一条成功信息。最后,调用cudaDeviceReset函数对CUDA设备进行重置。 引用中的CMakeLists.txt文件展示了另一个CUDA项目的CMake配置文件。与引用中的文件类似,首先指定了所需的CMake版本和项目名称。然后通过find_package命令找到CUDA包。接下来设置了nvcc编译器的相关标志。使用file命令找到所有的头文件和源文件,并使用source_group命令将它们分组。最后,使用CUDA_ADD_EXECUTABLE命令将当前的源文件添加到项目中。 综上所述,引用和引用展示了两个不同CUDA项目的CMake配置文件,用于编译和构建CUDA程序。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [C++ 与 Cuda 混合编程的CMakeList 写法 与例子](https://blog.youkuaiyun.com/comedate/article/details/109347874)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *3* [CMake构建CUDA项目中使用的CMakeLists.txt配置](https://blog.youkuaiyun.com/baobei0112/article/details/123598794)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值