LINUX.ORG.RU

[cmake][newb] Расположение бинарного файла

 


0

2

Проект сейчас выглядит так:

.
├── build
│   ├── Debug
│   └── Release
├── CMakeLists.txt
├── doc
├── include
├── lib
└── src
    ├── CMakeLists.txt
    └── main.cpp

Собираю его таким образом:

cd build/Debug
cmake -DCMAKE_BUILD_TYPE=Debug ../../
make
И получаю бинарный файл в директории ./build/Debug/src/

можно ли как-то заставить cmake кидать бинарник из src в ./build/(Debug|Release)/?

★★★

Последнее исправление: frozenix (всего исправлений: 1)

Доки на add_executable():

By default the executable file will be created in the build tree directory corresponding to the source tree directory in which the command was invoked. See documentation of the RUNTIME_OUTPUT_DIRECTORY target property to change this location. See documentation of the OUTPUT_NAME target property to change the <name> part of the final file name.

Так что set_target_properties и устанавливай RUNTIME_OUTPUT_DIRECTORY.

Pavval ★★★★★
()
Ответ на: комментарий от Pavval

спасибо, в следующий раз буду внимательней. Еще нашел такое решение:

IF(CMAKE_BUILD_TYPE MATCHES Release)
    SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/Release)
ENDIF(CMAKE_BUILD_TYPE MATCHES Release)

IF(CMAKE_BUILD_TYPE MATCHES Debug)
    SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR}/Debug)
ENDIF(CMAKE_BUILD_TYPE MATCHES Debug)

Что предпочтительней использовать?

frozenix ★★★
() автор топика
Ответ на: комментарий от frozenix

вот так правильно

    SET(EXECUTABLE_OUTPUT_PATH ${PROJECT_BINARY_DIR})
Reset ★★★★★
()
Ответ на: комментарий от frozenix

Да, конечно. Но это имхо единственный способ культурно собрать все нужное вместе. В моем проекте по-другому почти никак. Если достаточно EXECUTABLE_OUTPUT_PATH, то с инсталлом не стоит заморачиваться.

JackyTreehorn
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.