CMake использует файл, отличный от CMakeLists.txt

Есть ли способ указать CMake, что я хочу использовать файл, отличный от CMakeLists.txt? Кажется, я ничего не могу найти.

Проблема, с которой я столкнулся, заключается в том, что мне не разрешено проверять изменения, внесенные в CMakeLists.txt. Еще я часто переключаю ветки.

Я хочу изменить некоторые настройки сборки для своей разработки. Если я отредактирую CMakeLists.txt, git не позволит мне переключать ветки.

Если бы у меня был CMyMakeLists.txt, который мог бы использовать cmake, это решило бы эту проблему. Есть ли способ сделать это?

Что вы имеете в виду, говоря «Я хочу изменить некоторые настройки сборки для моей разработки»? Это что-то вроде CMAKE_CXX_STANDARD, BUILD_TYPE и т. д.? Или более сложные изменения? Или структура проекта / настройки проекта меняются?

Justin 30.10.2018 17:49

Связанный: cmake.org/pipermail/cmake/2007-August/016037.html

GoodDeeds 30.10.2018 17:49

@Justin Я хочу добавить разные флаги для отладки для разных файлов. Я также отключаю сборку определенных исполняемых файлов, которые уже созданы на сервере. Также вы можете настроить процесс тестирования, запустив только тест, над которым я работаю, а не все.

Mochan 30.10.2018 18:31

Если вы можете добавить флаги к каждому файлу, это легко настроить в командной строке. Чтобы отключить сборку определенных исполняемых файлов, сгенерированной системе сборки часто можно указать, чтобы она собирала только определенные цели (make only_my_target). Для запуска только определенных тестов вместо всего, ctest может сказать, какие тесты запускать

Justin 30.10.2018 18:44

@Justin Я не могу изменить файл CMakeLists.txt.

Mochan 30.10.2018 19:03

@Mochan Совершенно верно. Все, что я упомянул, можно сделать, не касаясь файла CMakeLists.txt.

Justin 30.10.2018 19:10

Если вы просто изменяете несколько настроек сборки для разработки ваш, зачем вам это проверять? Кроме того, что мешает вам создать локальную ветку и зафиксировать изменения? Не уверен, что означает «git не буду позволяет мне переключать ветки». Вы делаете локальную ветку первый, тогда фиксируете изменения.

Chris 30.10.2018 19:18

@ Джастин. Он по-прежнему создает библиотеки, зависящие от программы, которую я хочу создать. Я не хочу этого делать, просто используйте готовые. Кроме того, я не могу построить с определенным флагом оптимизации, поэтому я могу отлаживать без большого количества оптимизированных переменных. Я мог бы запустить только тот тест, который хочу, но он не работал. У нас есть немного другой сценарий потока тестирования, и я попытаюсь выяснить, как его обойти.

Mochan 30.10.2018 21:07

@Chris Мне нужны изменения для работы в моей ветке. Если я его не зарегистрирую, git не позволит мне переключать ветки без сохранения. Я могу спрятать и распаковать при каждом изменении в ветке, это добавляет много накладных расходов, так как не забывает подготовить правильные файлы и дважды проверить, что я прячу правильные файлы. Это огромное репо с множеством зависимостей.

Mochan 30.10.2018 21:11

@Mochan Сделайте свою ветку первый. Скопируйте и вставьте свои текущие изменения (файл CMakeLists.txt и любые другие файлы, которые вам нужны) где-нибудь на рабочем столе или что-то еще, а затем сбросьте все свои изменения. Перейдите к ревизии, над которой вы хотите работать. Создайте ответвление от этой ревизии. На этом этапе необходимо проверить ваше новое местное отделение. Скопируйте и вставьте свои изменения в эту новую ветку, которую вы создали. Зафиксируйте свои изменения ...

Chris 30.10.2018 21:16
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
7
11
2 106
1

Ответы 1

В итоге я создал подкаталог mymake, а затем скопировал туда файл CMakeLists.txt. Затем я изменил все ссылки на файлы, добавив к ним ..\.

Затем я внес необходимые изменения в файл cmake.

Я не мог найти способ заставить CMake сменить каталог на один шаг выше. Было сложно добавить все файлы для ..\, но на данный момент это решает проблему для меня.

Другие вопросы по теме