cmake简单使用

CMakeLists.txt

# cmake version
cmake_minimum_required (VERSION 2.8)

# set variable
set(PROJECT_NAME test)

# set the project name
project(${PROJECT_NAME})

#add compile option
add_compile_options(-std=c++11)

# include other cmake files
include(cmake/common_settings.cmake)

# include other cmake files by system
if(MSVC)
	include(cmake/linux_environment_settings.cmake)
elseif(UNIX)
    	include(cmake/msvc_environment_settings.cmake)
endif()

#  include directories
include_directories(${INCLUDE_DIRECTORIES_LIST})

set_property(GLOBAL PROPERTY USE_FOLDERS ON)
# recurse find files
file(GLOB_RECURSE HEADER_LIST ${PROJECT_SOURCE_DIR}/include/*.h)
# print header files information
foreach(file ${HEADER_LIST})
	message(${file})
endforeach()

# add file filter
source_group(GROUP1 FILES ${HEADER_LIST})

# add difinitions
#add_definitions(-D _CRT_SECURE_NO_WARNINGS)
foreach(define ${DEFINATION_LIST})
	add_definitions(${define})
endforeach()

file(GLOB_RECURSE SOURCE_LIST ${PROJECT_SOURCE_DIR}/src/*.cpp)
# add source files
#aux_source_directory(src SOURCE_LIST)

# set link directories, it can't relative path
link_directories(${PROJECT_SOURCE_DIR}/lib)

# set exe target store path
set(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR/bin})

# set library store path
set(LIBRARY_OUTPUT_PATH ${PROJECT_BINARY_DIR/bin})

# set runtime directory
#set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/bin)
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${PROJECT_BINARY_DIR}/bin)
set(CMAKE_RUNTIME_OUTPUT_DIRECTORY  ${PROJECT_BINARY_DIR}/bin)

# set target
add_executable(${PROJECT_NAME} ${SOURCE_LIST})


## set link directories
#target_link_libraries(${PROJECT_NAME} libheatmap vld IvsVideoPlayer libpointmapping)
target_link_libraries(${PROJECT_NAME} ${LINK_LIBRARIES_LIST})

cmmon_settings.cmake

############################################################
# brief	common setting
# date	2019/04/25
############################################################


# list include directories
set(INCLUDE_DIRECTORIES_LIST
	utils
	include
	conf
)

# list all libraries that include
set(LINK_LIBRARIES_LIST
	libheatmap 
	vld 
	IvsVideoPlayer 
	libpointmapping
) 

# set exe run linke path
SET(CMAKE_EXE_LINKER_FLAGS '-Wl,-rpath=.')

# precompil defines
set(DEFINATION_LIST
	-D _CRT_SECURE_NO_WARNINGS
	-D WITH_NONAMESPACES
	-D WIN32_LEAN_AND_MEAN
	-D ELPP_THREAD_SAFE
	-D ELPP_WINSOCK2
)

set(HEADER_FILE_LIST
	src/*.h
	include/*.h
	include/*.cpp
)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值