Как скопировать файл в тот же каталог, что и файл .exe - PullRequest
1 голос
/ 10 октября 2011

Это, наверное, триваль, но пока не понял. У меня есть файл .ini в том же каталоге, что и исходный код, и я хочу, чтобы cmake скопировал этот файл inifile.ini в каталог, где создан файл .exe. Этот каталог может варьироваться в зависимости от того, делаю ли я релиз или сборку Debug, и делаю ли я сборку в исходном коде или вне исходного кода. Я зашел так далеко:

configure_file(${myapp_SOURCE_DIR}/src/myinifile.ini
               ${myapp_BINARY_DIR}/bin/${????}/myinifile.ini COPYONLY)

Но мне нужно включить bin / Debug или bin / Release в путь назначения в зависимости от типа сборки. Есть ли переменная cmake, которую я могу использовать, которая указывает на фактическую директорию, где будет создан .exe. Или каков наилучший способ сделать это.

1 Ответ

2 голосов
/ 10 октября 2011

Вы можете получить свойство LOCATION, чтобы найти выходной путь для вашей цели.Далее вы можете использовать его значение в add_custom_command:

get_target_property(exepath target_name LOCATION)
get_filename_component(outputpath "${exepath}" PATH)
add_custom_command(TARGET target_name POST_BUILD
    COMMAND "${CMAKE_COMMAND}" -E copy_if_different "${myapp_SOURCE_DIR}/src/myinifile.ini" "${outputpath}")

Этот код будет автоматически обрабатывать зависимости типа сборки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...