CMake

http://sewm.pku.edu.cn/src/paradise/reference/CMake%20Practice.pdf 


simple example:  source全部在当前目录
project(hello)

aux_source_directory(. SRC_FILE)

message(STATUS "This is BINARY dir" ${PROJECT_BINARY_DIR})
message(STATUS "This is SOURCE dir" ${PROJECT_SOURCE_DIR})

add_executable(hello ${SRC_FILE})



t2: 一个项目,两个文件夹,生成两个exe
root:       folder1: src       folder2:lib
root CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(hello)

message(STATUS "This is BINARY dir" ${PROJECT_BINARY_DIR})
message(STATUS "This is SOURCE dir" ${PROJECT_SOURCE_DIR})

add_subdirectory(src bin)
add_subdirectory(lib hellobin)


install( FILES README DESTINATION share/doc/cmake/t2)
install( PROGRAMS runhello.sh DESTINATION bin)
install(DIRECTORY doc/ DESTINATION share/doc/cmake/t2)

src/CMakeLists.txt

set(TARGET_NAME hello)

set(SRC_FILE  hello.cpp)

add_executable(${TARGET_NAME} ${SRC_FILE})

install( TARGETS ${TARGET_NAME}
                RUNTIME DESTINATION bin
                LIBRARY DESTINATION lib
                ARCHIVE DESTINATION libstatic
                )

lib/ CMakeLists.txt

set(TARGET_NAME hello1)

set(SRC_FILE  hello.cpp)

add_executable(${TARGET_NAME} ${SRC_FILE})

install( TARGETS ${TARGET_NAME}
                RUNTIME DESTINATION bin
                LIBRARY DESTINATION lib
                ARCHIVE DESTINATION libstatic
                )






t3-----------------  一个项目,两个文件夹, 一个是lib,另外一个依赖这个lib生成exe
root /CMakeLists.txt
cmake_minimum_required(VERSION 2.8)
project(hello)

message(STATUS "This is BINARY dir" ${PROJECT_BINARY_DIR})
message(STATUS "This is SOURCE dir" ${PROJECT_SOURCE_DIR})

add_subdirectory(src bin)
add_subdirectory(lib lib)


install( FILES README DESTINATION share/doc/cmake/t2)
install( PROGRAMS runhello.sh DESTINATION bin)
install(DIRECTORY doc/ DESTINATION share/doc/cmake/t2)

lib/CMakeLists.txt  -----------------

aux_source_directory(. SRC_FILE)
#set(SRC_FILE  hello.cpp)

set(TARGET_NAME hellolib)

add_library(${TARGET_NAME} SHARED ${SRC_FILE})


set(STATIC_NAME hello_static)
add_library( ${STATIC_NAME} STATIC ${SRC_FILE})
set_target_properties(${STATIC_NAME} PROPERTIES OUTPUT_NAME ${TARGET_NAME})



install( TARGETS ${TARGET_NAME} ${STATIC_NAME}
                RUNTIME DESTINATION bin
                LIBRARY DESTINATION lib
                ARCHIVE DESTINATION libstatic
                )



src/CMakeLists.txt  --------

set(TARGET_NAME hello)

aux_source_directory(. SRC_FILE)

add_executable(${TARGET_NAME} ${SRC_FILE})

include_directories(${PROJECT_SOURCE_DIR}/lib)

link_directories(${PROJECT_BINARY_DIR}/lib)
target_link_libraries(hello hellolib)


install( TARGETS ${TARGET_NAME}
                RUNTIME DESTINATION bin
                LIBRARY DESTINATION lib
                ARCHIVE DESTINATION libstatic
                )


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值