Конфигурация CMake возвращает FOREACH Неверное целое число Ошибка - PullRequest
0 голосов
/ 03 апреля 2020

Я пытаюсь компилировать этот устаревший код , но при запуске cmake .. в папке сборки я получаю сообщение об ошибке:

CMake Error at fem/tests/CMakeLists.txt:17 (FOREACH):
  FOREACH Invalid integer: 'depth'
Call Stack (most recent call first):
  fem/tests/CMakeLists.txt:29 (SUBDIRLIST)

со ссылкой на этот макрос CMake:

MACRO(SUBDIRLIST result curdir depth)
  set(glob_pattern "*")
  FOREACH(D RANGE 1 depth)
    FILE(GLOB children RELATIVE ${curdir} ${glob_pattern}) 
    FOREACH(child ${children})
      IF(IS_DIRECTORY ${curdir}/${child})
        LIST(APPEND dirlist ${child})
      ENDIF()
    ENDFOREACH()
    set(glob_pattern "${glob_pattern}/*")
  ENDFOREACH()
  SET(${result} ${dirlist})
ENDMACRO()

в этом файле , и я не смог найти ничего похожего на это в inte rnet. Буду признателен, если вы поможете мне узнать, в чем заключается проблема и как я могу ее решить.

Моя среда:

  • CMake 3.17.0
  • macOS Catalina 10.15.4

1 Ответ

1 голос
/ 03 апреля 2020

Строка:

  FOREACH(D RANGE 1 depth)

Должно быть:

  FOREACH(D RANGE 1 ${depth})

depth - это имя переменной, поэтому в этом контексте на нее следует ссылаться, используя ${depth}.

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