我正在考虑将跨平台项目从Visual C++,XCode和makefile中的单独构建管理系统切换到CMake.
我需要的一个基本功能是自动将目录中的所有文件添加到目标.虽然这很容易用make做,但使用Visual C++和XCode并不容易做到(如果我错了,请纠正我).是否可以直接在CMake中进行?怎么样?
在学习CMake之前,请随意添加我应该注意的任何其他事情,考虑到目前该项目是中等规模的(8个库,2个可执行文件,8个测试项目,它取决于大约8个外部库).
CMake提供了几种指定目标源文件的方法.一种是使用globbing(文档),例如:
FILE(GLOB MY_SRCS dir/*)
Run Code Online (Sandbox Code Playgroud)
另一个是单独指定每个文件.
哪种方式更喜欢?Globbing似乎很容易,但我听说它有一些缺点.
如何设置CMake以递归方式扫描给定目录并确定源文件列表?
我的项目是一个共享库.我有一个与此类似的文件夹结构:
/
src/ # Source files in an arbitrary tree
include/ # Headers, tree mirrors that of the src/ folder
examples/ # Executable code examples that link against the library
CMakeLists.txt
Run Code Online (Sandbox Code Playgroud)
我想避免:
src和include目录src/但是,每个示例都可以拥有自己的构建脚本.
我是CMake的新手,想问一下是否有人可以帮助解决以下问题.
我在各自的文件夹中有C++源代码和头文件,现在,我想制作一个递归搜索它们的CMake文本文件.
目前,我这样做:
CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
PROJECT(CarDetectorDAISY)
file(GLOB_RECURSE SRCS *.cpp)
file(GLOB_RECURSE HDRS *.h)
ADD_EXECUTABLE(stereo_framework ${SRCS} ${HDRS})
TARGET_LINK_LIBRARIES(stereo_framework)
Run Code Online (Sandbox Code Playgroud)
这将创建我的CarDetectorDAISY.sln解决方案文件,当我尝试构建它时,它会显示找不到头文件的错误(没有这样的文件或目录).
如果有人能帮助我,真的很感激.谢谢.