Portable Visual Studio 2010 и cmake
Всем добрый день,
Я пытаюсь сделать следующее:
1) Создайте переносимую версию Microsoft Visual Studio (vs2010 sp1) + SDK платформы (winsdk 7.0a).
2) Перетащите эти файлы на компьютер, запустите cmake для проекта и соберите проект
Я предполагаю, что на компьютерах установлены распространяемые файлы.net framework 4.0, VS 2010 win32/x64 в папку по умолчанию.
VS 2010 файлы:
C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7
C: \ Program Files (x86) \ Microsoft Visual Studio 10.0 \ VC
Я положил их в d:\distr\msvc100sp1
каталог.
Файлы WinSDK:
C: \ Program Files (x86) \ Microsoft SDKs \ Windows \ v7.0A
Я положил их в d:\distr\WinSDK\7.0a
каталог
Я запускаю этот скрипт перед тем, как что-либо делать - он воссоздает среду точно, если был вызван vcvars (в данном случае amd64):
@set NV_MSVC100INSTALLDIR=d:\distr\msvc100sp1
@set NV_WINSDK_70A=d:\distr\WinSDK\7.0a
@set CommandPromptType=Native
@set INCLUDE=%NV_MSVC100INSTALLDIR%\VC\INCLUDE;%NV_MSVC100INSTALLDIR%\VC\ATLMFC\INCLUDE;%NV_WINSDK_70A%\include;
@set LIB=%NV_MSVC100INSTALLDIR%\VC\LIB\amd64;%NV_MSVC100INSTALLDIR%\VC\ATLMFC\LIB\amd64;%NV_WINSDK_70A%\lib\x64;
@set LIBPATH=%NV_MSVC100INSTALLDIR%\VC\LIB\amd64;%NV_MSVC100INSTALLDIR%\VC\ATLMFC\LIB\amd64;
@set PATH=%NV_MSVC100INSTALLDIR%\VC\bin\amd64;%NV_MSVC100INSTALLDIR%\VC\VCPackages;%NV_MSVC100INSTALLDIR%\Common7\IDE;%NV_MSVC100INSTALLDIR%\Common7\Tools;%NV_WINSDK_70A%\bin\NETFX 4.0 Tools\x64;%NV_WINSDK_70A%\bin\x64;%NV_WINSDK_70A%\bin;%PATH%
@set Platform=x64
@set VCINSTALLDIR=%NV_MSVC100INSTALLDIR%\VC\
@set VSINSTALLDIR=%NV_MSVC100INSTALLDIR%\
@set WindowsSdkDir=%NV_WINSDK_70A%\
@set PROCESSOR_ARCHITECTURE=AMD64
@set VS100COMNTOOLS=%NV_MSVC100INSTALLDIR%\Common7\Tools
::framework
@set Framework35Version=v3.5
@set FrameworkDir=C:\Windows\Microsoft.NET\Framework64
@set FrameworkDIR64=C:\Windows\Microsoft.NET\Framework64
@set FrameworkVersion=v4.0.30319
@set FrameworkVersion64=v4.0.30319
@set NV_FRAMEWORK_INSTALL_DIR=%FrameworkDIR64%\%FrameworkVersion64%
@set LIBPATH=%NV_FRAMEWORK_INSTALL_DIR%;%NV_FRAMEWORK_INSTALL_DIR%\..\v3.5;%LIBPATH%
@set PATH=%NV_FRAMEWORK_INSTALL_DIR%;%NV_FRAMEWORK_INSTALL_DIR%\..\v3.5;%PATH%
Однако при запуске devenv (он находится на пути после сценария выше) я получаю эту ошибку:
Cannot find one or more components. Please reinstall the application.
Я думал, что cmake может выяснить, что делать с компилятором, но он жалуется на проверку версии компилятора:
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:446 (execute_process):
execute_process given COMMAND argument with no value.
Call Stack (most recent call first):
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:48 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCCompiler.cmake:131 (CMAKE_DETERMINE_COMPILER_ID)
CMakeLists.txt:9 (project)
The C compiler identification is unknown
CMake Error at C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:446 (execute_process):
execute_process given COMMAND argument with no value.
Call Stack (most recent call first):
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCompilerId.cmake:48 (CMAKE_DETERMINE_COMPILER_ID_VENDOR)
C:/Program Files (x86)/CMake 2.8/share/cmake-2.8/Modules/CMakeDetermineCXXCompiler.cmake:127 (CMAKE_DETERMINE_COMPILER_ID)
CMakeLists.txt:9 (project)
The CXX compiler identification is unknown
Configuring incomplete, errors occurred!
See also "d:/vs2010_test/build/CMakeFiles/CMakeOutput.log".
See also "d:/vs2010_test/build/CMakeFiles/CMakeError.log".
В выходном файле есть такая же ошибка по поводу отсутствующих компонентов.
Возможна ли желаемая вещь? Какие возможные недостающие компоненты?
То, что я хотел бы иметь, должно выполнить то, что я хочу и затем очистить машину автоматически, даже если это потребует изменений ключей реестра.
1 ответ
Благодаря комментариям я понял, что определенно много системных файлов / ключей реестра, которые запрашиваются как msbuild, так и devenv. Для меня не стоит пытаться удовлетворить эти потребности, и я постараюсь найти другие способы решения моих задач по сборке.