代码之家  ›  专栏  ›  技术社区  ›  Jookia

CMake子目录

  •  1
  • Jookia  · 技术社区  · 15 年前

    我正在使用CMake,我想尝试使它成为一个子目录,而不是分散在我的项目或它的根目录中的文件。

    我有一个目录布局 project/cmake/CMakeLists.txt project/bin project/source project/cmake/bin/obtap.dir/home/jookia/Programming/obtap/source 文件夹。

    cmake_minimum_required(VERSION 2.6)
    project(obtap)
    add_definitions(-g -Wall)
    add_executable(../bin/obtap ../source/main.cpp)
    

    有没有办法去掉 project/cmake/bin 目录和可选的,有没有一种方法,不让所有的CMake东西,而只是生成一个makefile,这样我就有两个文件,CMakeLists.txt文件还有Makefile?

    2 回复  |  直到 10 年前
        1
  •  5
  •   tibur    15 年前

    按合同规定 CMake FAQ ,生成的makefile包含到库和源代码的完整路径,因此分发CMake生成的构建树并不容易。

        2
  •  1
  •   Fei    13 年前

    我相信你想要的应该是所谓的 源代码外生成 ,可以通过在单独的目录中生成中间文件来实现 ,对于您的情况,可以尝试以下命令:

    mkdir -p project/bld/
    cd project/bld/
    cmake project/cmake
    

    项目/bld 无论何时,只要运行以下命令即可删除所有这些内容:

    rm -fr project/bld/
    

    如果要控制生成的可执行输出路径,使其不隐藏在嵌套较深的cmake中间二叉树中,则可能会出现一个问题;答案是可以设置变量 CMAKE\当前\二进制\目录 自定义可执行输出绝对路径,或仅使用 cmake -E add_custom_command 命令将可执行文件复制出去。

    推荐文章