使用cmake建立简单的项目

时间:2019-05-03 08:40:52

标签: c++ cmake

由于我以前从未使用过CMake,而且我目前有一个相对简单的项目,因此我想开始使用它(目前仅使用VS项目)。我的项目使用了我需要构建的第三方库(sqlite),该函数使用此外部库访问sqlite数据库,该库具有一些使用catch2进行的单元测试以及主要的可执行文件(该数据库函数的CLI)(稍后再进行一些测试)。整个项目的文档应使用Doxygen构建。 但是,即使使用这个很小的项目,CMake还是让我有些不知所措,因为我设法使用cmake构建了一个静态库,或者使用cmake使用catch2构建了一个测试。 我当前的目录布局如下:

root
|-3rdParty
   |-catch2
|-build
|-documentation
|-include
   |-sqlite3.h
|-lib
   |-sqlite3.a
|-modules
   |-database
      |-header and source files for database function
   |-CLI
      |-header and source files for CLI
|-src
   |-main.cpp
|-tests
   |-test.cpp

构建模块后,如何将模块的静态库添加到lib并包含目录?

我设法使用构建静态库

set_target_properties( modulename
  PROPERTIES
  ARCHIVE_OUTPUT_DIRECTORY ${PROJECT_SOURCE_DIR}/lib/
)

并使用

添加头文件
set( MY_PUBLIC_HEADERS
  ${CMAKE_CURRENT_SOURCE_DIR}/include/<header.h>
)
file(
  COPY ${MY_PUBLIC_HEADERS} 
  DESTINATION ${CMAKE_SOURCE_DIR}/include/)

唯一的问题是,当我删除包含cmake中的头文件时,不会再次复制它

0 个答案:

没有答案