gig*_*gle 56 startup cmake visual-studio-project visual-studio
我正在使用CMake生成Visual Studio项目.除了一件事,一切都很好.
解决方案中的启动项目始终是ALL_BUILD.如何通过CMake将启动项目更改为我想要的实际项目?
Com*_*sMS 101
CMake现在通过VS_STARTUP_PROJECT目录属性支持版本3.6及更高版本:
cmake_minimum_required(VERSION 3.6)
project(foo)
# ...
add_executable(bar ${BAR_SOURCES})
set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} PROPERTY VS_STARTUP_PROJECT bar)
Run Code Online (Sandbox Code Playgroud)
这将设置bar为foo.sln解决方案的启动项目.
And*_*dré 21
你不能.启动项目存储在二进制文件中,该文件不是由CMake生成的.如果没有该二进制文件,visual studio将默认为解决方案文件中的第一个项目,ALL_BUILD项目始终是第一个...
更新:这个答案是"过时的",因为现在可以使用CMake 3.6.请参阅ComicSansMS的答案.
Cal*_*602 16
从Visual 2005开始,配置存储在文件名projectname.vc(x)proj.user中,它是普通的xml.
我不知道改变启动项目的方法,但你当然可以设置ALL_BUILD来运行所需的可执行文件,而不是显示愚蠢的弹出窗口:
create_default_target_launcher(
your_desired_target_name
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}/desired_path/"
# or ${CMAKE_CURRENT_BINARY_DIR}, depending on your setup
)
Run Code Online (Sandbox Code Playgroud)
这个模块可以在rpavlik的github上找到.您只需将其添加到最顶层的CMakeLists.txt中:
list(APPEND CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/external/rpavlik-cmake-modules-1c73e35") # or whichever path you put the module in.
include(CreateLaunchers)
Run Code Online (Sandbox Code Playgroud)
这里有例子.
小智 7
如果你不能允许像我这样的perl依赖,我只是为windows编写了一个名为slnStartupProject的命令行实用程序来解决这个问题.它会自动设置启动项目,如下所示:
slnStartupProject slnFilename projectName
Run Code Online (Sandbox Code Playgroud)
在使用cmake生成解决方案之后,我个人使用它来设置项目,该解决方案始终将虚拟ALL_BUILD项目设置为解决方案中的第一个项目.
源代码在github上:
https://github.com/michaKFromParis/slnStartupProject
叉子和反馈是受欢迎的.
希望这可以帮助!
| 归档时间: |
|
| 查看次数: |
14821 次 |
| 最近记录: |