Sre*_*kel 6 cmake visual-studio-2010 visual-studio
我正在生成一个带有一些项目的VS2010解决方案(目前为4个,最终将达到10-20个).我只想要其中一个建造; 其余的应该被禁用.我可以通过进入配置管理器并取消选中我不想要的方框来手动执行此操作,但显然这不是一个好的解决方案.
有什么东西我可以添加到CMakeLists.txt文件中,这个项目会导致它执行此操作吗?搜索文档,谷歌和SO没有产生任何结果.

更新:这是我的根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}})
Run Code Online (Sandbox Code Playgroud)
(bam.bat的东西是基于我在这里得到的答案:如何配置CMake以使VS解决方案使用特定的构建命令行?)
这里是"平台"项目的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})
Run Code Online (Sandbox Code Playgroud)
因此,如果您想要做的不是默认构建某些内容,则可以将其从“ALL”目标中删除(在 Visual Studio 中显示为 ALL_BUILD)。执行此操作的方法是使用目标属性EXCLUDE_FROM_ALL,或将 EXCLUDE_FROM_ALL 传递给 add_executable 和 add_library 。(自定义目标默认为 EXCLUDE_FROM_ALL,因此,要执行相反的操作,请将 ALL 添加到 add_custom_target 的参数中)。
然后,您的所有目标都会显示,但是当单击“构建解决方案”时,只会构建您想要的目标。其他可以通过右键单击它们并选择“构建”来构建,例如内置的安装项目/目标。
| 归档时间: |
|
| 查看次数: |
3478 次 |
| 最近记录: |