gpt4 book ai didi

visual-studio - 禁用 Visual Studio 项目以使用 cmake 进行构建

转载 作者:行者123 更新时间:2023-12-04 15:36:25 27 4
gpt4 key购买 nike

我正在用几个项目生成一个 VS2010 解决方案(目前有 4 个,最终将增加到 10-20 个)。我只想 build 其中一个;其余的应该被禁用。我可以通过进入配置管理器并取消选中我不想要的框来手动执行此操作,但显然这不是一个好的解决方案。

有什么我可以添加到 CMakeLists.txt 文件的项目,这将导致它这样做吗?搜索文档,google 和 SO 一无所获。

only bam projectshould be built

更新:这是我的根 CMakeLists.txt 以防万一:

cmake_minimum_required(VERSION 2.8)

add_definitions(-DCOMPILER_MSVC)
project (PDEngine)

set(LINKER_LANGUAGE CXX)

add_subdirectory (units/platform)
add_subdirectory (units/render_api)
add_subdirectory (units/memory)
add_subdirectory (units/game)

set(custom_exe "${CMAKE_CURRENT_BINARY_DIR}/units/Platform/Debug/Platform.lib2")

add_custom_command(OUTPUT ${custom_exe}
COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/local/msvc/bam.bat -j $ENV{NUMBER_OF_PROCESSORS}
DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/local/msvc/bam.bat
)
#add_custom_command(OUTPUT ${custom_exe_clean}
#COMMAND ${CMAKE_CURRENT_SOURCE_DIR}/local/msvc/bam.bat -c
#DEPENDS ${CMAKE_CURRENT_SOURCE_DIR}/local/msvc/bam.bat
#)

add_custom_target(bam ALL DEPENDS ${custom_exe})
#add_custom_target(bamclean ALL DEPENDS ${custom_exe_clean}})

( bam.bat 的内容基于我在这里得到的答案: How do I configure CMake to make the VS solution use a specific build commandline?)

这是“平台”项目的 CMakeLists.txt:
cmake_minimum_required (VERSION 2.8)
project (Platform)

set (COMPILER_MSVC 1)

include_directories(${Platform_SOURCE_DIR}/include)
file(GLOB Project_HEADERS ${Platform_SOURCE_DIR}/include/platform/*.h)
source_group("Headers" FILES ${Project_HEADERS})

add_library(Platform STATIC EXCLUDE_FROM_ALL src/*.cpp ${Project_HEADERS})

最佳答案

因此,如果您想做的不是默认构建某些内容,则可以将其从“ALL”目标(在 Visual Studio 中显示为 ALL_BUILD)中删除。您这样做的方法是使用目标属性 EXCLUDE_FROM_ALL ,或通过将 EXCLUDE_FROM_ALL 传递给 add_executable 和 add_library。 (自定义目标默认为 EXCLUDE_FROM_ALL,因此相反,您将 ALL 添加到 add_custom_target 的参数中)。

然后,您的所有目标都会显示出来,但是当单击“构建解决方案”时,只会构建您想要的目标。其他的可以通过右键单击它们并选择“构建”来构建,例如内置的 INSTALL 项目/目标。

关于visual-studio - 禁用 Visual Studio 项目以使用 cmake 进行构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8106428/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com