CMake разбить PATH
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 28.12.25 20:19
Оценка:
Здравствуйте!

Хочу разделить содержимое системной переменной PATH на отдельные пути

    if (CMAKE_HOST_WIN32)
        set(UMBA_PATH_STRING "$ENV{PATH}")
        # file(TO_CMAKE_PATH "$ENV{PATH}" CMAKE_PATH_STRING)
        # execute_process(
        #     COMMAND cmd /c "echo %PATH%"
        #     OUTPUT_VARIABLE UMBA_PATH_STRING
        #     OUTPUT_STRIP_TRAILING_WHITESPACE
        # )
        message(STATUS "${UMBA_PATH_STRING}")
        # string(REPLACE ";" ";" UMBA_CMAKE_VERBOSE_PATH_LIST ${UMBA_PATH_STRING})
        string(REPLACE ";" ";" UMBA_CMAKE_VERBOSE_PATH_LIST "${UMBA_PATH_STRING}")
    else()
        set(UMBA_PATH_STRING "$ENV{PATH}")
        string(REPLACE ":" ";" UMBA_CMAKE_VERBOSE_PATH_LIST "${UMBA_PATH_STRING}")
    endif()

    message(STATUS "===== CMake PATH =====")
    # message(STATUS "\n  ${UMBA_CMAKE_VERBOSE_PATH_FORMATTED}")
    foreach(UMBA_CMAKE_VERBOSE_PATH_ITEM ${UMBA_CMAKE_VERBOSE_PATH_LIST})
    # foreach(UMBA_CMAKE_VERBOSE_PATH_ITEM IN LISTS ${UMBA_CMAKE_VERBOSE_PATH_LIST})
        message(STATUS "    ${UMBA_CMAKE_VERBOSE_PATH_ITEM}")
    endforeach()



Пробовал по разному, или плохо, или совсем бред. Дипсик постоянно путается в показаниях, он уже задолбал

По большей части разбивает на отдельные строки по ';', но не всегда.

[cmake] --     f:\umba-tools\bin
[cmake] --     C:\WINDOWS\system32
[cmake] --     C:\WINDOWS
[cmake] --     C:\WINDOWS\System32\Wbem
[cmake] --     C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\Program Files (x86)\Microsoft SQL Server\90\Tools\binn;C:\Program Files (x86)\Microsoft Visual Studio 8\Team Tools\Performance Tools
[cmake] --     C:\Program Files (x86)\Java\jre7\bin
[cmake] --     C:\Program Files (x86)\Java\jre7\bin\client
[cmake] --     C:\Program Files (x86)\Subversion\bin
[cmake] --     C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static
[cmake] --     C:\WINDOWS\System32\OpenSSH;C:\Program Files (x86)\IncrediBuild
[cmake] --     C:\Program Files (x86)\Graphviz2.38\bin
[cmake] --     C:\Python39\Scripts;C:\Python39;C:\Program Files\Eclipse Foundation\jdk-8.0.302.8-hotspot\bin


Чо за хрень?
Маньяк Робокряк колесит по городу
Re: CMake разбить PATH
От: Великий Мессия google
Дата: 28.12.25 20:23
Оценка:
Здравствуйте, Marty, Вы писали:

M>Здравствуйте!


M>Хочу разделить содержимое системной переменной PATH на отдельные пути


"$ENV{PATH}"


не надо брать в кавычки
Re[2]: CMake разбить PATH
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 28.12.25 20:38
Оценка:
Здравствуйте, Великий Мессия, Вы писали:

M>>Хочу разделить содержимое системной переменной PATH на отдельные пути


ВМ>

ВМ>"$ENV{PATH}"


ВМ>не надо брать в кавычки


Спасибо. Попробовал
set(UMBA_PATH_STRING $ENV{PATH})

вместо
set(UMBA_PATH_STRING "$ENV{PATH}")


Работает.

Вообще, без кавычек пробовал, но какие-то другие варианты, там какая-то ипанина вообще выходила

Велик и могуч язык CMake'а, чтобы ему пусто было
Маньяк Робокряк колесит по городу
Re[3]: CMake разбить PATH
От: Pzz Россия https://github.com/alexpevzner
Дата: 29.12.25 19:41
Оценка:
Здравствуйте, Marty, Вы писали:

M>Велик и могуч язык CMake'а, чтобы ему пусто было


Заметь, расширение .txt вполне характерно для текстов, написанных на великих и могучих языках
Re[3]: CMake разбить PATH
От: LuciferSaratov Россия  
Дата: 29.12.25 19:43
Оценка:
Здравствуйте, Marty, Вы писали:

M>Велик и могуч язык CMake'а, чтобы ему пусто было


Если рассудок и жизнь дороги вам, держитесь подальше от этой пародии на систему сборки.
Cmake невероятно плох, и если уж так хочется заниматься ещё и программированием скриптов сборки (что само по себе весьма сомнительная идея, ящетаю, но речь не об этом), то есть огромное количество альтернатив, каждая из которых лучше симейка. Ну premake хотя бы.
Единственная уважительная причина с ним связываться это если начальство или заказчик принуждают.
Re[4]: CMake разбить PATH
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 29.12.25 21:58
Оценка:
Здравствуйте, LuciferSaratov, Вы писали:

M>>Велик и могуч язык CMake'а, чтобы ему пусто было


LS>Если рассудок и жизнь дороги вам, держитесь подальше от этой пародии на систему сборки.

LS>Cmake невероятно плох, и если уж так хочется заниматься ещё и программированием скриптов сборки (что само по себе весьма сомнительная идея, ящетаю, но речь не об этом), то есть огромное количество альтернатив, каждая из которых лучше симейка. Ну premake хотя бы.
LS>Единственная уважительная причина с ним связываться это если начальство или заказчик принуждают.

CMake — говно, но уже почти стандарт, увы
Маньяк Робокряк колесит по городу
Re[4]: CMake разбить PATH
От: SaZ  
Дата: 30.12.25 13:25
Оценка:
Здравствуйте, LuciferSaratov, Вы писали:

LS>... Ну premake хотя бы.


Ой, пробовали его в продакшене. То ещё говно непредсказуемое.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.