Russian Qt Forum

Qt => Установка, сборка, отладка, тестирование => Тема начата: SektorCT от Июль 11, 2024, 23:45



Название: Глобальная переменная в cmake для заполнения списком файлов
Отправлено: SektorCT от Июль 11, 2024, 23:45
Всем привет.

Есть главный cmake файл, в нем через add_subdirectory() я добавляю подпроекты, и в них мне надо заполнять глобальную переменную списком файлов.
После всех подпроектов мне надо с этим списком файлов работать.
Подскажите как парвильно это сделать?
Пробовал
set_property(GLOBAL PROPERTY source_list_property "${PUBLIC_HEADER}")
и
set(source_list ${source_list} ${file_path} PARENT_SCOPE)

но не поулчается.
Или я не парвильно с этми работаю.


Название: Re: Глобальная переменная в cmake для заполнения списком файлов
Отправлено: kambala от Июль 12, 2024, 11:10
вообще лучше по возможности такого избегать.

вариант с PARENT_SCOPE правильный. а что с ним не получается?


Название: Re: Глобальная переменная в cmake для заполнения списком файлов
Отправлено: SektorCT от Июль 16, 2024, 14:59
вообще лучше по возможности такого избегать.

вариант с PARENT_SCOPE правильный. а что с ним не получается?

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


Название: Re: Глобальная переменная в cmake для заполнения списком файлов
Отправлено: SektorCT от Июль 23, 2024, 20:21
решение найдено, если кому пригодится то привожу пример ниже.

Код:
set_property(GLOBAL PROPERTY HEADERS_PROPERTY) # with props

function(add_headers_props)
message(STATUS "Adding headers with property ${ARGV}")

get_property(HEADERS GLOBAL PROPERTY HEADERS_PROPERTY)
set_property(GLOBAL PROPERTY HEADERS_PROPERTY ${HEADERS} ${ARGV})
endfunction()

get_property(HEADERS_PROPERTY GLOBAL PROPERTY HEADERS_PROPERTY)

Суть такая, с начала обьявляется глобальная переменная, потом черег гетер и сетер мы работаем с получением и наполнением.
Надеюсь кому то тоже может помочь.