簡體   English   中英

如何防止 CMake 在生成項目的根目錄添加 CMakeLists.txt?

[英]How to prevent CMake adding CMakeLists.txt at root of generated project?

我有以下CMakeLists.txt

cmake_minimum_required(VERSION 3.15.5)

project(REminiscence VERSION 0.4.5)

set(CMAKE_CXX_STANDARD 11)
set(CMAKE_CXX_STANDARD_REQUIRED True)

configure_file(REminiscenceConfig.h.in REminiscenceConfig.h)

add_definitions(-DUSE_MODPLUG -DUSE_STATIC_SCALER -DUSE_TREMOR -DUSE_ZLIB)

set_property(GLOBAL PROPERTY USE_FOLDERS ON)

set(RE_SRC
    "collision.cpp"
    "cpc_player.cpp"
    "cutscene.cpp"
    "decode_mac.cpp"
    "dynlib.cpp"
    "file.cpp"
    "fs.cpp"
    "game.cpp"
    "graphics.cpp"
    "main.cpp"
    "menu.cpp"
    "mixer.cpp"
    "mod_player.cpp"
    "ogg_player.cpp"
    "piege.cpp"
    "protection.cpp"
    "resource.cpp"
    "resource_aba.cpp"
    "resource_mac.cpp"
    "scaler.cpp"
    "screenshot.cpp"
    "seq_player.cpp"
    "sfx_player.cpp"
    "staticres.cpp"
    "systemstub_sdl.cpp"
    "unpack.cpp"
    "util.cpp"
    "video.cpp"
)

source_group("Sources" FILES ${RE_SRC})

set(RE_INC
    "cpc_player.h"
    "cutscene.h"
    "decode_mac.h"
    "dynlib.h"
    "file.h"
    "fs.h"
    "game.h"
    "graphics.h"
    "intern.h"
    "menu.h"
    "mixer.h"
    "mod_player.h"
    "ogg_player.h"
    "resource.h"
    "resource_aba.h"
    "resource_mac.h"
    "scaler.h"
    "screenshot.h"
    "seq_player.h"
    "sfx_player.h"
    "systemstub.h"
    "unpack.h"
    "util.h"
    "video.h"
)

source_group("Headers" FILES ${RE_INC})

add_executable(REminiscence ${RE_SRC} ${RE_INC})

find_package(SDL2 CONFIG REQUIRED)
target_link_libraries(REminiscence PRIVATE SDL2::SDL2 SDL2::SDL2main)

find_package(ZLIB REQUIRED)
target_link_libraries(REminiscence PRIVATE ZLIB::ZLIB)

target_include_directories(REminiscence PUBLIC
    "${PROJECT_BINARY_DIR}"
)

當我生成 Visual Studio 解決方案時,它還將CMakeLists.txt放在根目錄下:

在此處輸入圖像描述

問題

如果可能,如何防止 CMake 在根目錄添加CMakeLists.txt

您不能從項目中刪除CMakeLists.txt ,這是設計使然。

cmakeCMakeLists.txt作為依賴項添加到項目中。 如果即使在外部編輯器中修改它, MSBuild運行cmake. 更新項目。 您不需要運行cmake. cmake --build手動構建,當您 select構建解決方案時,Visual Studio 會為您完成。

此外,如果CMakeLists.txt在項目中,您可以直接在 Visual Studio 中輕松編輯它。

旁注:如果您希望 CMakeLists.txt 條目出現在項目根目錄之外的另一個“文件夾”中,只需將"CMakeLists.txt"條目添加到相應的source_group變量。 CMakeLists.txt 仍將是一個依賴項,但將在 Visual Studio 中的所選文件夾下列出。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM