Изменить cmake сгенерированный каталог файлов проекта - PullRequest
0 голосов
/ 19 декабря 2018

Я не смог найти ни одного вопроса, который был бы полезен в отношении моего вопроса, поэтому вот он (или докажите, что я не прав).

Во-первых: я делаю все под Windows и собираю только для Visual Studio.
Моя ситуация: у меня есть мой основной каталог, который содержит "главные" списки CMakeLists.Итак, здесь нужно сделать вызов cmake, а он сам по себе немного:

cmake_minimum_required(VERSION 3.13.1)
project (EulerAdventureReinvented)

if (CMAKE_GENERATOR MATCHES Win64)
    set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/lib/Win64/")
    set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/lib/Win64/")
    set(EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/bin/Win64/")
else()
    set(CMAKE_LIBRARY_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/lib/Win32/")
    set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/lib/Win32/")
    set(EXECUTABLE_OUTPUT_PATH "${CMAKE_SOURCE_DIR}/bin/Win32/")
endif()

add_subdirectory(source)

Но он добавляет еще один CMakeLists в исходный каталог, который выполняет настройку для «основного» проекта.Так что он содержит вызов add_executable, и я хочу сохранить его таким.Но проблема в том, что он записывает файлы vcxproj, CMakeFiles dir в этот исходный каталог, но я хочу, чтобы они были в корневом каталоге или ... ну просто где-то еще.

Последний вопрос: Что мне нужно для этого установить?Я имею в виду, какую переменную я хочу изменить.Я искал и нашел так много, что пришел к методу проб и ошибок и даже тогда не нашел свои файлы где-то еще.

РЕДАКТИРОВАТЬ: я немного изменил название, чтобы избежать путаницы между файлами сборки и создания.Я не хочу устанавливать путь сборки, так как это уже сделано с помощью приведенного выше кода.

1 Ответ

0 голосов
/ 23 декабря 2018

В CMake 3.13.2 доступны следующие переключатели:

cmake [<options>] -S <path-to-source> -B <path-to-build>

Так что в случае, описанном выше, это будет что-то вроде:

cmake -S . -B .\build

Теперь нет переменной для установки <path-to-build>, но вы можете получить ее информацию из CMAKE_BINARY_DIR.Переменные, которые вы устанавливаете, определяют, где возникают артефакты, а не там, где создаются файлы проекта или находятся промежуточные файлы.

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