Подскажите, что нужно прописать в CMakeList, чтобы в получаемых vcproj
было следующее:
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
Здравствуйте, Vzhyk, Вы писали:
V>Подскажите, что нужно прописать в CMakeList, чтобы в получаемых vcproj V>было следующее: V>OutputDirectory="$(SolutionDir)$(ConfigurationName)" V>IntermediateDirectory="$(ConfigurationName)"
Нужно установить переменную EXECUTABLE_OUTPUT_PATH
Здравствуйте, Ytz, Вы писали:
Ytz>Здравствуйте, Vzhyk, Вы писали:
V>>Подскажите, что нужно прописать в CMakeList, чтобы в получаемых vcproj V>>было следующее: V>>OutputDirectory="$(SolutionDir)$(ConfigurationName)" V>>IntermediateDirectory="$(ConfigurationName)"
Ytz>Нужно установить переменную EXECUTABLE_OUTPUT_PATH Ytz>
На самом деле работает При сборке вместо xxx.dir будет подставлен SolutionDir и там же будет директория Debug с продуктами компиляции. Смело жмите F7 в Студии
Ytz>На самом деле работает При сборке вместо xxx.dir будет подставлен SolutionDir и там же будет директория Debug с продуктами компиляции. Смело жмите F7 в Студии
Нет. Ничего подобного. Студия собирает именно туда, куда указано в OutputDirectory.
Так вот xxx собирается Debug (как и указано в OutputDirectory="Debug" в соответсвующем vcproj)
А yyy собирается yyy/Debug (как и указано в OutputDirectory="Debug" в соответсвующем vcproj)
Причем CMake зачем-то создает еще один solution в директории yyy.
Напомню, директория yyy вложена с xxx.
В то же время VS 2005 с дефолтными установками OutputDirectory="$(SolutionDir)$(ConfigurationName)", имхо наиболее удобна под Windows. И хотелось бы уговорить CMake именно это и вписать в OutputDirectory.
Фактически есть две проблемы:
1.
CMake 2.8 под Windows у меня не реагирует ни на одну из
set (EXECUTABLE_OUTPUT_PATH SolutionDir)
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY SolutionDir)
set (RUNTIME_OUTPUT_DIRECTORY SolutionDir)
2.
Как в Cmake задать именно вот это: "$(SolutionDir)$(ConfigurationName)"
> set (CMAKE_RUNTIME_OUTPUT_DIRECTORY SolutionDir)
Не, ошибся — это работает, но нелогично:
Оно в vcproj делает следующее:
OutputDirectory="Debug"
IntermediateDirectory="yyy.dir\Debug"
OutputFile="X:\yyy\SolutionDir\Debug\yyy.dll"
ИМХО — это нелогично, логично просто написать
OutputDirectory="SolutionDir"
А еще лучше:
set (CMAKE_RUNTIME_OUTPUT_DIRECTORY "$(SolutionDir)$(ConfigurationName)")
=>
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
Или может есть какой другой путь установки OutputDirectory?
Здравствуйте, Vzhyk, Вы писали:
V>Vzhyk пишет: >> V>Похоже, что это единственный путь: V>set (CMAKE_RUNTIME_OUTPUT_DIRECTORY V>${CMAKE_SOURCE_DIR}/bin/${CMAKE_PLATFORM})
V>Но он ну очень горбат. Вот результаты этого: V>OutputDirectory="Debug" V>IntermediateDirectory="xxx.dir\Debug" V>OutputFile="X:\bin\Debug\xxx.dll"
V>Хотя логичнее было бы установить просто OutputDirectory, а все V>остальное, студия бы сделала сама.
А не студия?
CMake вроде именно для такого и делался — под несколько сред генерить проекты.
01.02.2010 17:39, blackhearted пишет: > > V>Хотя логичнее было бы установить просто OutputDirectory, а все > V>остальное, студия бы сделала сама. > > А не студия?
Это уже холивар будет. Но, имхо, как С++ IDE, VS+VA на текущий момент
самое удобное.
> CMake вроде именно для такого и делался — под несколько сред генерить > проекты.
Ну если столько различных IDE поддержали (целую толпу VS, можно же было
ограничиться nmake):
The following generators are available on this platform:
Borland Makefiles = Generates Borland makefiles.
MSYS Makefiles = Generates MSYS makefiles.
MinGW Makefiles = Generates a make file for use with
mingw32-make.
NMake Makefiles = Generates NMake makefiles.
Unix Makefiles = Generates standard UNIX makefiles.
Visual Studio 10 = Generates Visual Studio 10 project files.
Visual Studio 6 = Generates Visual Studio 6 project files.
Visual Studio 7 = Generates Visual Studio .NET 2002 project
files.
Visual Studio 7 .NET 2003 = Generates Visual Studio .NET 2003 project
files.
Visual Studio 8 2005 = Generates Visual Studio .NET 2005 project
files.
Visual Studio 8 2005 Win64 = Generates Visual Studio .NET 2005 Win64
project files.
Visual Studio 9 2008 = Generates Visual Studio 9 2008 project
files.
Visual Studio 9 2008 Win64 = Generates Visual Studio 9 2008 Win64
project
files.
Watcom WMake = Generates Watcom WMake makefiles.
CodeBlocks — MinGW Makefiles= Generates CodeBlocks project files.
CodeBlocks — NMake Makefiles= Generates CodeBlocks project files.
CodeBlocks — Unix Makefiles = Generates CodeBlocks project files.
Eclipse CDT4 — MinGW Makefiles
= Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 — NMake Makefiles
= Generates Eclipse CDT 4.0 project files.
Eclipse CDT4 — Unix Makefiles
= Generates Eclipse CDT 4.0 project files.
То почему бы уж не сделать генерацию vcproj в стиле студии.