CMakeLists.txt简单项目模板

1,环境

     Windows 10: VS2019, VS Code,CMake

     Ubuntu 22.04: GCC 11, VS Code, CMake

     OpenCV 4.5.5

2,简单CMakeLists.txt项目模板

CMAKE_MINIMUM_REQUIRED(VERSION 3.0.0)
PROJECT(demo VERSION 0.1.0)

###
### local script
### 
ADD_DEFINITIONS(-DUSE_CXX)
INCLUDE_DIRECTORIES(${CMAKE_SOURCE_DIR}/include)
FILE(GLOB SRC_HEADER_LIST ${CMAKE_SOURCE_DIR}/include/*.h ${CMAKE_SOURCE_DIR}/include/*.hpp)
FILE(GLOB SRC_SOURCE_LIST ${CMAKE_SOURCE_DIR}/sources/*.c ${CMAKE_SOURCE_DIR}/sources/*.cc ${CMAKE_SOURCE_DIR}/sources/*.cpp ${CMAKE_SOURCE_DIR}/sources/*.cxx)
SET(SRC_LIST ${SRC_HEADER_LIST} ${SRC_SOURCE_LIST})
SOURCE_GROUP("Headers"  FILES ${SRC_HEADER_LIST})
SOURCE_GROUP("Sources" FILES ${SRC_SOURCE_LIST})

###
### 3rdparty
### 
INCLUDE_DIRECTORIES("${CMAKE_SOURCE_DIR}/3rdparty/include")
LINK_DIRECTORIES("${CMAKE_SOURCE_DIR}/3rdparty/lib")
SET(CMAKE_EXE_LINKER_FLAGS "-Wl,-rpath-link=${CMAKE_SOURCE_DIR}/3rdparty/lib")
#SET(EXTRA_LIBS )

###
### opencv
### 
if (WIN32)
    #MESSAGE(STATUS "Windows: ")
    SET(OpenCV_DIR "D:/ENV/opencv-4.5.5")
elseif(APPLE)
    MESSAGE(STATUS "Apple: ")
else ()
    #MESSAGE(STATUS "Linux: ")
    SET(OpenCV_DIR "/usr/lib/cmake/opencv4")
endif ()
FIND_PACKAGE(OpenCV REQUIRED)
INCLUDE_DIRECTORIES( ${OpenCV_INCLUDE_DIRS} )

SET(EXTRA_LIBS ${EXTRA_LIBS} ${OpenCV_LIBS})

###
### target: 
### 
# ADD_LIBRARY( demo SHARED ${SRC_LIST} ${CMAKE_SOURCE_DIR}/demo/main.cpp)
# SET(EXTRA_LIBS ${EXTRA_LIBS} demo)
ADD_EXECUTABLE( demo ${SRC_LIST} ${CMAKE_SOURCE_DIR}/demo/main.cpp)
TARGET_LINK_LIBRARIES( demo ${EXTRA_LIBS} )
TARGET_COMPILE_DEFINITIONS( demo PRIVATE API_EXPORTS)
SET_TARGET_PROPERTIES(demo PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_BINARY_DIR}/bin" )

模板目录结构下载:

3,CMake的关键字简要介绍

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值