我是cmake文件创建的新手。我在目录列表中有c ++代码,每个目录都有自己的CMakeLists.txt
文件。为了在每个目录中编译和创建可执行文件,我必须进入内部目录并在终端上执行以下两个命令。
$ cmake .
$ make
每个目录1,2 ... 41都有自己的`CMakeLists.txt'。
为了在每个目录中编译和创建可执行文件,我必须遵循这些tow命令。
但是现在我必须编写python脚本/ cmake脚本来在每个目录中执行此操作并捕获输出并存储在日志文件中。
请有人指导我解决我的问题。提前谢谢。
我的每个目录CMakeLists.txt都是这样的:
project(foundations)
cmake_minimum_required(VERSION 2.6)
include_directories($ENV{GMOCK_HOME}/include $ENV{GMOCK_HOME}/gtest/include)
link_directories($ENV{GMOCK_HOME}/mybuild $ENV{GMOCK_HOME}/gtest/mybuild)
add_definitions(-std=c++11)
set(sources main.cpp RetweetCollectionTest.cpp)
add_executable(test ${sources})
target_link_libraries(test pthread)
target_link_libraries(test gmock)
target_link_libraries(test gtest)
答案 0 :(得分:3)
add_subdirectory https://cmake.org/cmake/help/v3.0/command/add_subdirectory.html正是您所需要的。
编辑:
例如:
add_subdirectory(1 1)
第一个参数是source dir,第二个参数是二进制dir。因此,名称不应重叠。
另外,请检查:https://stackoverflow.com/a/7788165/934691
但是,如果您不想重写CMakeLists,可以使用简单的bash脚本,例如
for dir in
ls
; do cd $dir; cmake . && make; cd ..; done
会更适合你。