Добавление проектов в решение Visual Studio C ++ с помощью скрипта - PullRequest
3 голосов
/ 12 октября 2010

Я обычно работаю над мультипроектными решениями в visual studio.Поскольку сами решения не хранятся в репозитории, я трачу некоторое время на добавление в различные проекты с помощью Visual Studio (из списка, который является частью «родительского» проекта).Мне интересно, смогу ли я сделать это с помощью сценария.т.е.: 1. создать решение.2 добавьте проекты к этому решению.

У меня есть дополнительное, которое мне нужно добавить к вышеупомянутому вопросу.Я могу использовать File.AddProject из окна командной строки Visual Studio (при условии, что у вас есть открытый проект).Я также могу использовать File.OpenExistingProject извне Visual Studio, используя команду devenv /. Теперь единственная недостающая часть - это как добавить существующий проект в открытый проект (решение) извне Visual Studio.

Ответы [ 2 ]

1 голос
/ 12 октября 2010

Вы должны попробовать CMake .Вот пример CMakeLists.txt, который создает библиотеку и два двоичных файла, используя эту библиотеку.После использования программы CMake вы получаете решение и 3 проекта внутри.

project(MyProject)

include_directories(${CMAKE_CURRENT_SOURCE_DIR}/common)
file(GLOB_RECURSE common_files common/*.h common/*.cpp)
add_library(commonLibrary ${common_files})

file(GLOB_RECURSE projectA_files projA/*.h projA/*.cpp)
add_executable(ProgramA ${projectA_files})
target_link_libraries(ProgramA commonLibrary)

file(GLOB_RECURSE projectB_files projB/*.h projB/*.cpp)
add_executable(ProgramB ${projectB_files})
target_link_libraries(ProgramB commonLibrary)
0 голосов
/ 13 октября 2010

Я должен признать, что я не пробовал Cmake, в основном потому, что я думал, что то, что я искал, должно быть выставлено в самой visual studio. У меня есть элементы решения. В командной строке Windows для добавления псевдонима для AddExistingProject следует командная строка, запускаемая командой devenv / commandline. Должна быть возможность написать скрипт, который использует эти элементы.

...