CMake: для каждого исходного файла один исполняемый файл - PullRequest
0 голосов
/ 05 октября 2018

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

file(GLOB_RECURSE my_c_list RELATIVE ${CMAKE_SOURCE_DIR} "src/*")
foreach(file_path ${my_c_list})
  message(${file_path})
  string( REPLACE ".c" "" name ${file_path} )
  add_executable( ${name} ${my_c_list} )
endforeach()

Структура папок следующая:

|-- CMakeLists.txt
+-- src
|   +-- Chapter 1
|        +-- 1.0.1
|                someCode.c
|        +-- 1.0.2
|                ohAFunction.c
|   +-- Chapter 2
|        +-- 2.0.1
|                lookCode.c

Эти фрагменты взяты из здесь

К сожалению, это не работает, вы не могли бы мне помочь?

Кстати, я запускаю CLion, и CLI оба не работают.

РЕДАКТИРОВАТЬ: Рабочая CMakeLists.txt

file(GLOB_RECURSE my_c_list RELATIVE ${CMAKE_SOURCE_DIR} "src/*")

foreach(file_path ${my_c_list})
 string( REPLACE ".c" "" new_name ${file_path} )
 get_filename_component(filename ${new_name} NAME)
 add_executable( ${filename} ${file_path} )
endforeach()
...