【问题标题】:Multiple CMakeLists.txt in a project一个项目中有多个 CMakeLists.txt
【发布时间】:2018-11-02 02:33:49
【问题描述】:

我有一个包含两个 CMakeLists.txt 文件的项目:CMakeLists.txt(默认)和 CMakeLists.2.txt。所以我的目录树看起来像 project |---- CMakeLists.txt |---- CMakeLists.2.txt |---- main.cpp |---- otherfile.cpp 我像这样构建: mkdir build cd build cmake .. make

这使用默认的 CMakeLists.txt 文件。如何指定使用 CMakeLists.2.txt cmake 文件进行构建?

【问题讨论】:

    标签: cmake


    【解决方案1】:

    您不能更改“CMakeLists.txt”的文件名。

    但是,如果您需要为一个项目使用不同的构建配置,您应该在 cmake 中使用option

    option(BUILD_STATIC_LIBS "Build the static library" ON)
    option(BUILD_SHARED_LIBS "Build the shared library" ON)
    option(BUILD_TESTS "Build test programs" OFF)
    

    然后像这样构建:

    cmake -D DBUILD_SHARED_LIBS=ON DBUILD_STATIC_LIBS=OFF DBUILD_TESTS=ON ..
    

    【讨论】:

    • 你的意思是有单独的 Cmakefiles 并用 IF 调用每个文件?
    • 不,我的意思是一个 CMakeLists.txt 并用 cmake option cmd 分隔不同的配置。像这样使用:stackoverflow.com/questions/22481647/cmake-if-else-with-option。而且,当然,你也可以结合这两种方法:option1, include(CMakeList1.txt); option2,在 CMakeLists.txt 中包含(CMakeList2.txt)。
    • 我认为应该是“cmake -DBUILD_SHARED_LIBS=ON...”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2010-11-20
    • 2015-11-21
    • 2023-03-11
    • 2022-12-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多