Как заставить заголовок включить в cmake? - PullRequest
0 голосов
/ 27 марта 2019

Я портирую проект с Makefile на cmake.В Makefile есть CFLAG / CXXFLAG -include "SystemTest.h".Я попытался добавить это в файл набора инструментов прямо в CMAKE_C_FLAGS и CMAKE_CXX_FLAGS, но затем тестовая компиляция не удалась, потому что он не может найти SystemTest.h.

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

Вот строки, гдеЯ использую add_executable.Комментированный код - это то, что я уже пробовал:

add_executable(my_target ${SRC})
if (WIN32)
  target_link_libraries(my_target PRIVATE module_a module_b module_c module_d module_e module_f)
elseif(UNIX)
  target_link_libraries(my_target PRIVATE module_a module_b module_c module_d module_e module_f ${CURSES_LIBRARIES})
else(WIN32)
  message(FATAL_ERROR "Not supported OS.")
endif(WIN32)

# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -include SystemTest.h")
# set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -include SystemTest.h")

# add_definitions(-include SystemTest.h)

# target_compile_definitions(cherrySim_runner
#   PRIVATE $<$<COMPILE_LANGUAGE:C>:-include SystemTest.h>
#           $<$<COMPILE_LANGUAGE:CXX>:-include SystemTest.h>
# )

# target_compile_definitions(cherrySim_runner "-include SystemTest.h")

Сбой CMake / gcc при компиляции файлов из module_b с жалобами на то, что должно быть из SystemTest.h.

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